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

If you're teaching them to write an assembler, then it may be worth teaching them C, as a fairly basic language with a straightforward/naive mapping to assembly. But for basically any other context in which you'd be teaching first-year CS students a language, C is not an ideal language to learn as a beginner. Teaching C to first-year CS students just for the heck of it is like teaching medieval alchemy to first-year chemistry students.
 help



I think I heard this in some cppcon video, from uni teacher who had to make students know both C and Python, so he experimented for several years

learning Python first is same difficulty as learning C first (because main problem is the whole concept of programming)

and learning C after Python is harder than learning Python after C (because of pointers)


Learning C after Python made me actually understand Python semantics. Python also has pointers, you just don't get to control them.

Absolutely, it's not their first language. In our curriculum C programming is part of the Operating Systems course and comes after Computer Architecture where they see assembly. So its purpose is to be low level to understand what's under the hood. To learn programming itself they use other languages (currently Java, for better or worse, but I don't have voice on that choice).

C is the best language to learn as a beginner.

At no point in human history has C been the best language for beginners. C was, like Javascript, hacked together in a weekend by someone who wished they could be using a better language. It was burdened with flaws from the outset and considered archaic in its design almost immediately. The best thing that can be said about the design of C is that it's at least a structured programming language, which is damning with faint praise.

> C was, like Javascript, hacked together in a weekend by someone who wished they could be using a better language.

Citation needed. C was evolved from B as part of the development of a popular OS. It did take a lot more time and consideration than a weekend.




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

Search: