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