Why should every programmer learn C?


There are advantages to learning C first over more high-level programming languages (like C++ and Python). When you work with languages like Java, C#, and even Python, you immediately start moving away from learning the fundamentals of a programming language and you start learning associated libraries and frameworks. But with C you get a few library calls, you stay focused on the semantics of the language longer, and C often forces you to think harder and deeper about what’s happening under the hood.

Many programmers are frustrated with and leaning away toward the C/C++ programming languages because ....
  1. Many people joined the programming world by learning C or C++, but it’s rare for them to keep learning and mastering these two languages well because they get frustrated in handling the low-level programming elements such as pointers, the memory storage model, address alignment, templates expansion, multi-thread data races, and so on. If these elements are not handled properly, the app will have a high probability of crashing, which will frustrate the new programmer.

  2. Nowadays we have many advanced programming languages like Java, C#, Python, JavaScript, etc for application development and it seems insane if someone wanted to develop a Web application or back-end service in pure C/C++. The common application areas have been taken over by more advanced programming languages.

Why should we still learn C/C++?
1. Master other advanced programming languages faster.
2. Bring performance.
3. Understand the fundamental computer theories well.
4. C/C++ powers the world.