Can you take programmers seriously if they don't know C?
I know it is an arrogant thought. But I myself have trouble regarding someone in the computing field as knowledgeable or 'good enough' if they do not know C .
C was my first language and is still my favorite. Those who know it understand computers on a far deeper level than those who stick to all high-level languages.
I would go a step farther and say that I wouldn't hire someone to work for me if they were not sufficient in C. Maybe this is just because I am mostly a low-level junkie...
Any one else feel this way? Furthermore, do you know anyone who doesn't know C but is still excellent at coding/computer-science?
14 comments
[ 5.9 ms ] story [ 44.4 ms ] threadSeriously though, C is a good language but for back to basics you are talking assembly language at least. Preferably several assemply langages.
I think this guy somehow did OK, even without knowing C: http://en.wikipedia.org/wiki/John_McCarthy_(computer_scienti...
However it's a silly assertion. Unless you need someone to program micro-controllers, devise codecs, do low level memory management etc. etc. understanding C is hardly going to be a mandatory requirement. If you're running a software company building web apps I'd much rather have someone that understands user interfaces and codes in a productive language - C expertise is superfluous.
I have worked professionally with C myself and studied it at uni. However you won't see me volunteering for C work. It's painful to go back to C after C#, Ruby etc.
I do know a lot of people, who are excellent programmers, but their C is read-only at best, because their language of choice has been something else.
I see nothing wrong with that. A good programmer usually doesn't think in a language context anyway, he translates his thoughts to a language, yes, but when designing, he thinks a few levels above the language. Thus, the lack of C knowledge does not, in my opinion, does not mean one's insufficiently skilled. Nor does good knowledge of C mean one's a good programmer.
I've also met with people who were excellent C coders: they could code down whatever they were told to, blazingly fast, using every trick the language had to offer. But they couldn't design their way out of a paper bag, because they lacked vision: they could only think in C, and not beyond that. They couldn't see the bigger picture.
The ability to build massive (and interesting) projects on high-level languages is growing sharply, and the reasons people would have learned C in the first place are shrinking, since there is plenty to work on without even caring about C. I hope the continued proliferation of quality high-level libraries and frameworks spurs a gradual decline of the divisive and self-congratulatory mindset demonstrated here, since it is not knowing C that makes programmers good. It is the ability to get things done right with whatever language(s) they need to.
(I know C)
:%s/C/Lisp,Haskell,OCaml or Erlang/g
It all depends on what you want. And yes, I know a few excellent computer scientists who don't "know" C.
Know the tools for your trade. Nothing more, nothing less.
You don't? How parochial. I recommend tht you study a good functional language for a while. It helped me understand coding on a "far deeper level".
Or rather, a designer is not a good designer if he doesn't have the human anatomy memorized, and no UI specialist is a good UI specialist if s/he's not a good designer. So let's all us who make web forms, go and study human anatomy for 2 years.