In the style of Where should a veteran C programmer start in order to master Java?, I ask you the reverse question. I have a lot of experience in Java and programming in general, but I'd like to pick up some C (for some projects I'm interested in hacking). Is there a "quick and dirty" guide tailored for people with a previous CS background? I'd prefer free online resources but appreciate any suggestions.
Quite a while ago, Joel Spolsky declared that C programming was critical for all software developers. In that article, he references the Kernighan and Ritchie book, which is the accepted all time classic C book. However, having taught C programming using that book, it's something of a drag for the casual student.
That said, if you're already experienced in Java, that isn't you.
Even so, it's a book that's worth reading. If nothing else, I'd look for it at the library.
This tutorial is a bit dated (especially when compared to ANSI C) but, if you're looking for the fastest brush-up on syntax, it's not terrible.
Given a little basic syntax (which will be very familiar to you), you should be able to go straight to the C libraries. That's where most of the actual functionality that you're going to need will be anyway. I think that you'll find that most of the material required to "master" C will actually be in those supporting libraries.
For completeness, in case you need an actual compiler:
In my day job, my development environment is split between Linux (Fedora 14) and Windows 7. In both cases, I use gcc on the occasion when I need to write C code. While gcc is an accepted standard in the Fedora install, on the Windows side you'll want either MinGW or Cygwin, either of which can give you gcc.
If I was still teaching C programming, I would recommend some combination of the above for the advanced self-directed students.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With