Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

That's an argument for learning C, but not for learning C as a first language. Studying assembler or chip design or even particle physics will also help you understand what the computer is 'actually doing', but it doesn't mean that's the best place to start learning how to program.


I didn't claim that C was the best language for learning how to program.

John Resig's article above is about "teaching Computer Science" rather than teaching students how to program. These are very different things.

That's why I recommended C - because it is very much a language that will teach the theory about how computers work.

I agree that there are other languages better suited for learning how to program.


Ok, I see your point. But perhaps one can learn Computer Science much more efficiently after already knowing how to program? It doesn't seem likely that you'll be very open to learning data structure design and asymptotic complexity when you're still wrestling with for loop syntax, the difference between assignment and reference, what the hell recursion is, etc. You have to learn to walk before you can learn to run, and while jumping in the deep end may work for some, I'd guess most would find a more programmer-friendly introductory language a quicker path to comprehending basic CS concepts and would subsequently be in a much stronger position to tackle C.


To quote Dijkstra: "Computer science is no more about computers than astronomy is about telescopes."

While learning how computers work has its place in computer science, I think computation and manipulating information are better teached on a language where you can concentrate on those concepts instead of secondary issues such as memory management.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: