Or, Why C is The Worst Language To Teach Beginners In
- To actually do anything useful, you have to teach them pointers— and even seasoned programmers have a hard time with pointers;
- There is no real string library, and strings are not real first-order types (i.e.
char *
is simply an array of characters, and you should really remember that); - Teaching C to beginners will keep such bugs as memory leaks and buffer overflows alive, and cause even more problems for future generations of users;
- C is quite low-level, and unless you have a firm grip on data structures and how they are used, learning C won't help.
- Worse, thinking in C forces you to think at such a low level, you won't really learn how to think in terms of the problem space
There are probably more things wrong with C as a beginner's language, but I'd rather you use Google. This is most definitively not an exhaustive list
Previously: Announcement: Software Freedom Day Online Meeting