10 reasons.. a response:

Beatnik on 2006-11-29T12:26:12

There is a short list of reasons why every programmer should learn C. Since there is no comments possible there, I carbon copy the reasons + my view on some of them:

Every programmer should learn C during their programming career. Its benefits are to numerous to ignore. Not only will it open many more job opportunities, but it will teach you more about computers as a whole. 

1) C is lower level then other programming languages (C++, Java). Programming at a lower level allows you to further your understanding of computers, as a whole.
Ofcourse, Assembler goes even lower than C and Assembler has in fact tought me more about computers than C.
2) Device drivers and operating systems are written exclusively in C. Now, you may never write a device driver or an operating system, but what if you are ever required to modify one? 
When was the last time you wrote or even modified a device driver?? Honestly!
3) What if you ever want to get a job programming microcontrollers? They are programmed in C. Are you going to limit your possible list of jobs because you didn't want to learn a new language?
99.9% of the programming jobs ISN'T for microcontrollers.. plus, programming microcontrollers requires a lot more than C knowledge.
4) C programs are smaller and faster then any other program created in a different language. Sometimes your program needs that speed boost that only C can give it. 
True.. although you could also just go for assembler, if you ignore the fact that you're locked onto a single CPU platform.
5) If you have learned C, you can learn any modern programming language. The reason behind this is that all modern programming languages are based on C (Java, C++, C#, etc). 
Perl, Ruby, Python, PHP?? They all have SOMETHING from C I'm sure.. If you're a good programmer, switching to a different (well designed) programming language shouldn't be too hard. You already think in variables and statements. All you need to fill in is the syntax.
6) Because C has been around for many years, it has a large community and collective code base. This allows you to quickly and efficiently implement new algorithms or functions that have been programmed before. 
True.. although there are still older languages. There is no centralized repository for C code (like CPAN)..
7) C is the language of the Open Source community. The Open Source poster child, Linux, was coded in C. If you know C, you can participate in and contribute to numerous Open Source communities like Source Forge [sic]. 
True.. but tons of the projects at SF are in different programming languages. I'd have to look it up but my fair guess is that while C is used a lot, focussing only on C isn't such a good idea.
8) C is the only language that teaches you what pointers really are. C# and Java skip the subject completely. It is pointers that give C its power. 
Every decent programming language has something that comes close to pointers. They even exist in Assembler (although not as a data type per se). It's all just a different way to access memory.

9) C is still the most commonly required language for programming jobs. It is well worth your time to get C under your belt. 
True.

10) Anything that has a microprocessor in it has support for C. From your microwave to your cell phone, C powers technology. 
Not necessarily. Someone still has to develop a C compiler that generates bytecode for these microcontroller. In the end, the actual bytecode itself is the ultimate way of getting stuff done of exotic processors. The same thing counts for perl (although you would need a perl interpreter on the microcontroller.. and that's written (mostly) in C).

I admit that C has an enormous impact on the development world in general but quite a few of the items above are just too biased and vague (without examples).


Let's C...

DAxelrod on 2006-11-30T02:24:32

I started writing my response in your comments, but it got long enough that I figured it should be its own journal entry.