Live data from Hacker News

Can you take programmers seriously if they don't know C?

news.ycombinator.com

1–10 of 15 posts

Can you take programmers seriously if they don't know C?

#1
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?

Re: Can you take programmers seriously if they don't know C?

#2
I'm not sure I can take someone seriously as a programmer if all they know for operating systems are Windows, Mac OS and flavors of UNIX/LINUX.

Seriously though, C is a good language but for back to basics you are talking assembly language at least. Preferably several assemply langages.

Re: Can you take programmers seriously if they don't know C?

#5
post #4

Furthermore, do you know anyone who doesn't know C but is still excellent at coding/computer-science? I think this guy somehow did OK, even without knowing C: http://en.wikipedia.org/wiki/John_McCarthy_(computer_scienti...

Ah yes... The inventor of LISP.

Re: Can you take programmers seriously if they don't know C?

#6
post #4

Furthermore, do you know anyone who doesn't know C but is still excellent at coding/computer-science? I think this guy somehow did OK, even without knowing C: http://en.wikipedia.org/wiki/John_McCarthy_(computer_scienti...

Bah! Sounds like a typical academic. http://blog.fogus.me/2011/04/07/academics-vs-the-real-world/

Re: Can you take programmers seriously if they don't know C?

#8
Last place I worked had a guy who viewed C as the enemy and would not code in anything put Fortran - it was a production system running a totaliser.

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.

Re: Can you take programmers seriously if they don't know C?

#9
That depends: if they will need to write C code, then of course, they need to know the language. But if all they're gonna do is write Haskell, Erlang or Lisp, what's the point of knowing C?

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.

Re: Can you take programmers seriously if they don't know C?

#10
I think this question smacks of elitism and in-group bias. For projects that require C, not knowing C is obviously a deal breaker. But most projects do not require C, and usually "understanding computers on a far deeper level" is much less valuable than being able to properly and elegantly build on top of existing systems/frameworks and leaving useful code in your wake, regardless of language. Due to the massive adoption of the Linux and Windows kernels as a basis for almost everything else done in computing, there will be a pretty major correlation effect between those who are good programmers and those who know C. Since many in the computing field share your sentiment, it drives others to "prove themselves" by making sure to learn C. Also, C is taught in CS classes. But all of this does not mean that knowing C is a precursor to being a good programmer- it's just a correlated effect.

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)

Post reply on HN