DEV Community

Bekhruz Niyazov
Bekhruz Niyazov

Posted on

Why I recommend first learning C, not Python

Whenever a beginner asks me what is the best programming language to start with I always am saying: "C". Here is why.

Reason 1. C is more low level

C is a low level language, unlike Python or JavaScript. What that means is that it is much closer to Assembly than pretty much any other language. Because of that, you often need to do a lot of memory management and write a lot more algorithms than in other languages. Thanks to that, rather than memorizing a bunch of functions and methods, a beginner will learn how to actually write them. That will help them learn how to write algorithms a lot faster than it would if they would learn some other language.

Reason 2. C is more complex

Undoubtedly, C code is harder to write, harder to read and even harder to set up than Python code. On one hand that's kinda bad because a beginner may eventually give up after failing to do something, but on the other hand after mastering C they won't have to really learn any other programming language. They'll understand how everything works and all they will need to do to master another programming language will be to learn the syntax. Which means, that although learning C may take quite some time, after doing this it'll be really easy and fast to learn any other programming language. Meanwhile, if a beginner will learn a high level language first, it'll be hard for them to learn anything as low level as C.

Reason 3. C is faster

After learning a high level language like Python a beginner will probably stick to it and continue developing applications using that language. However, there is a major downside of Python and other interpreted languages - they are a lot slower. However, after learning C a beginner will have two choices:

  • Continue using C/languages similar to C for development
  • Quickly learn some high level language and use it instead

So, if speed and performance matters to them then they can just go ahead and start the development. And if it doesn't, then they can learn a language like Python (that won't take much time because it is a lot easier) and start development with it instead.

Thus, C is giving the beginner more choice, which of course is a good thing.


So, these were my 3 reasons on why I always am recommending learning C as the first language. Learning C gives the beginner a solid base, thanks to which it will be easier to advance in their programming career.

Leave a comment if you disagree with me - I would love to hear opinion of other people.

Thanks for reading!

Discussion (0)