I’ve been wanting to learn a major programming language for years now but I’ve always been too busy with other projects. I’ve decided that now is the time to start learning. To that end I picked up an introductory book on C called Head First C. I also decided to look for a few other good books and ask some developers what they would recommend.
I asked Kyle Isom, an experienced C programmer, if he had any recommendations. He suggested a few more good resources. The gold standard for C books is The C Programming Language by Kernighan and Ritchie. This is often abbreviated as C by KNR. Another excellent introduction was put out by Stanford in the form of a 45 page document called Essential C.
Some more advanced books which are excellent are Advanced Programming in the UNIX Environment and The Linux Programming Interface often abbreviated as TLPI. I had already purchased TLPI based on the recommendation of Mitch Haile, another experienced developer. The author of TLPI, Michael Kerrisk, contacted me on Twitter after I discussed the book with Mitch. Michael is very, very nice and I appreciated his comments and suggestions.
Kyle’s final recommendation was the ever useful C Pocket Reference. My intention in this process of learning C is to do some OpenBSD development. I will be documenting this process here all along the way.