I don't know C. And why should I learn it?
- by Stephen
My first programming language was PHP (gasp). After that I started working with JavaScript. I've recently done work in C#.
I've never once looked at low or mid level languages like C.
The general consensus in the programming-community-at-large is that "a programmer who hasn't learned something like C, frankly, just can't handle programming concepts like pointers, data types, passing values by reference, etc."
I do not agree. I argue that:
Because high level languages are easily accessible, more "non-programmers" dive in and make a mess, and
In order to really get anything done in a high level language, one needs to understand the same similar concepts that most proponents of "learn-low-level-first" evangelize about.
Some people need to know C. Those people have jobs that require them to write low to mid-level code. I'm sure C is awesome. I'm sure there are a few bad programmers who know C.
My question is, why the bias? As a good, honest, hungry programmer, if I had to learn C (for some unforeseen reason), I would learn C. Considering the multitude of languages out there, shouldn't good programmers focus on learning what advances us? Shouldn't we learn what interests us? Should we not utilize our finite time moving forward? Why do some programmers disagree with this?
I believe that striving for excellence in what you do is the fundamental deterministic trait between good programmers and bad ones.
Does anyone have any real world examples of how something written in a high level language--say Java, Pascal, PHP, or Javascript--truely benefitted from a prior knowledge of C? Examples would be most appreciated.
(revised to better coincide with the six guidelines.)