Why C programming is still worth learning

In 2016, C was the 9th most active language on GitHub with 202,000 pull requests per year. Compare that to the three main languages: JavaScript with 1,604,000 pull requests, Java with 763,000 pull requests, and Python with 744 pull requests. Ruby, PHP, C ++, and CSS also beat C.

At first glance, it seems like C has been left in the dust by newer, fresher, more exciting languages ​​- C is After all, 45 years - but GitHub isn't the most accurate picture. What is git Why should you use version control if you are a developer? What is git Why should you use version control? If you're a developer With web developers, we mostly work on local development sites and then just upload everything when we're done. This is fine if it's just you and the changes are small ... Read More GitHub has one enormously Inclination to open source and trendiness.

C is not a dead language. Actually, IEEE spectrum In 2017, it was voted the top 2 language ahead of Java, C # and JavaScript. If you were to study C this year, this would be it Not be a waste of time or energy. Here are five reasons why.

1. A deeper understanding of computers

You may have heard that C is a "lower level language." As part of programming, the “level” describes how close you are to the computer's native instruction set. The lower the level, the closer you are to writing the machine code. The higher the level, the more abstraction the language performs to keep you from writing machine code.

C is a minor language with some abstraction. You can write code that is pretty close to the hardware and manipulate memory directly. In a high-level language like Java, the language processes the memory itself through a garbage collector.

While this is part of C, which makes C difficult to learn, it is also why C programmers tend to better balance how computers work. To write good C code, you have to think like a computer thinks: memory management, input / output streams, byte order, etc.

While there are language levels lower than C (e.g. Assembly), C is about as low as you want it to be. It retains most of the power and control over subordinate languages ​​but is abstracted just enough for human readable code that won't make you tear your eyeballs out.

2. Pick up other languages ​​more easily

Some programmers like to say, "Once you master a programming language, you know all of them." While it's an encouraging feeling, it's not entirely true - unless you learn C.

The thing is, switching from one language to another is most smooth when you step into abstraction. Moving from a lower language like C to a higher language like Python is pretty easy because Python holds your hand more. But from Python to C? Not so easy.

Or consider another example. C # is now a popular native language for newbies, especially those looking to get into game development (as the popular Unity engine uses C # 5 free game development software tools to create their own games. 5 free game development software tools to create their own Creating Games Here are the best free game development software and tools to help you create your dream game today. Learn more. Although the C # language is highly abstracted and easier to use, newbies often get confused because they don't understand what is abstracted.

By learning C, you are essentially learning the basics of modern programming. If you really understand C then you can use any other language as almost every modern language is higher than C.

3. Better recognition of other languages

The low level of C comes at a cost: complexity and boredom.

Think of yourself as making a ham sandwich. In a higher language, you can use a makeSandwich ("ham") method that creates a ready-to-eat sandwich. In C, you'd have to write your own makeSandwich () function that gathers and prepares all the necessary ingredients, puts the sandwich together, and then resets everything.

For one, being able to control every aspect of your sandwich is great. You can even write a faster makeSandwich () that skips certain steps that you don't care. But sometimes you just want someone to make a sandwich, and the food prepared for you often tastes better than what you made yourself.

Most modern languages ​​were born in response to shortcomings in another language: C ++ as the answer to C, Java as the answer to C ++, C # as the answer to Java, etc. As you learn C, you can better understand why certain languages ​​are designed the way they are, and better appreciate the convenience of higher-level languages.

4. Unconventional projects and applications

Most modern programming languages ​​are used for the same three things: business applications, web and mobile applications, and data analysis.

Advanced language skills are great for this as you don't need to delve into the details of the computer architecture. Instead, there are fast development cycles and a robust hand position - two of the main advantages of using a high-level language.

But if you want to develop software that is directly tied to the hardware, you need a lower level language - and C is the most commonly used. Notable applications include operating systems, programming languages ​​and compilers, embedded systems, game engines, etc.

For example, the Linux kernel is written in C and assembly. Popular languages ​​like Python, PHP, Perl, and Ruby are implemented in C. Did you know that C is also written in C? And since many embedded systems have strict resource limits, C is often the language of choice because it has little overhead.

5. Improve your job opportunities

There are two ways to guarantee a job in the software industry:

  1. Specialize in positions with high demand.
  2. Specialize in positions with little supply.

High Demand Positions 10 Computer Programming Jobs That Are In Demand Now 10 Computer Programming Jobs That In Demand Now Since programming a programming job can be difficult in the current landscape, focus on one of the following concentrations to improve your chances of success. Read More are trending languages ​​that can be used in several areas: JavaScript, Python, and Java are the best examples. Low delivery positions tend to involve archaic languages, legacy systems, and less flashy projects. C is popular, but C programmers are dwindling.

Since Most Coding Boot Camps Beginner Coding Boot Camp: Should You Get One? Coding Boot Camp For Beginners: Should You Take One? Extensive coding boot camps offer an introduction to the coding space. Find out what they are, what you will learn, and if it is right for your coding journey! Read More Instead, you can differentiate yourself by learning C. This can open up many job opportunities that are not available in high-level languages.

Getting started with C

C isn't easy to learn, especially if it's your first programming language. For this reason, we recommend that you read these three articles before you dive in: questions to ask yourself before learning how to code, how to learn to code without the stress, and tricks for mastering a new programming language. 7 useful tricks for learning a new programming language. 7 Useful Tricks for Mastering a New Programming Language It's okay to be overwhelmed while learning code. You will likely forget about things as quickly as you learn them. These tips will help you retain all of this new information better. Continue reading .

However, if you are serious about studying C then by all means start with C programming language, 2nd edition (often referred to as "K&R"). Basically it is the C programming bible. It's pretty old, but everything in it still applies to C. When you're done, you can find out about the changes in language versions C89, C99, and C11.

If you can't afford this book, start with The C-book. It is no longer available in print but is fully available online in HTML.

What do you think? Is C out of date and useless, or should new programmers learn it before they discover more modern languages? Let us know your thoughts below!