C in a Nutshell

by Peter Prinz, Tony Crawford
Paperback: 618 pages
Publisher: O’Reilly Media, Inc.; 1 edition (December 1, 2005)
ISBN: 0596006977

While this book does include a small introduction to the C Programming language, it’s better suited as a 2nd C book. This book provides tips, techniques, examples, and practical advice that will allow advanced developers to maximize their capabilities. The book is divided into three parts. The first describes the C language in the strict sense of the term; the second describes the standard library, and the third describes the process of compiling and testing programs with the tools in the popular GNU software collection. C in a Nutshell is the perfect companion to K&R, and destined to be the most reached-for reference on your desk.

The C Programming Language

Brian W. Kernighan & Dennis Ritchie
Paperback: 274 pages
Publisher: Prentice Hall PTR; 2 edition (March 22, 1988)
ISBN: 0131103628

This is the second edition of the original Kernighan & Ritchie (widely known as K&R) text. This book is commonly referred to as the New Testament as it includes the modifications incorporated by the ANSI standard, while retaining the nature of the 1st edition. This book assumes that the reader has some basic programming knowledge. So if you’re just starting to program and C is the first language, this might not be the ideal book. This is one of THE BEST books on C and a must have, especially if you’re starting your own little programming library.

Programming in C (3rd Edition) by Stephen Kochan

Paperback: 576 pages
Publisher: Sams; 3 edition (July 8, 2004)
ISBN: 0672326663

This book by Steve Kochan is absolutely the best book for anyone starting out programming in C. This is an excellent introductory text with frequent examples and good text. This book makes no assumptions about the particular computer system or operating system on which the C language is implemented. This books is written for novices and experienced programmers alike. I love this book as the comprehensive teach by examples book can help you master the unique features of the C language. I am a huge fan of Steve’s writings and own every single copy of his books. In fact, I learned programming in C in the early 90’s using the first edition of this book. Steve sent me an email a few weeks ago to let me know that the 3rd edition of the book had shipped. He ended up mailing me a signed copy of the book and I was pleasantly surprised to have my name endorsing the book on the back cover. I haven’t written any C code in the last 8 years but it was still a lot of fun to read through the book and take a trip down memory lane. Just like the other editions of this book, this book does not disappoint. I love the clear, concise writing style that uses examples to teach new concepts. I still believe that this is the best tutorial for anyone that is starting out programming in C. I wish Steve would get into Java, as I would love to see a Java book of the same caliber. Great job Steve and I think everyone programming in C should own this must-read book.

Expert C Programming: Deep C Secrets

Paperback: 384 pages
Publisher: Prentice Hall PTR; 1st edition (June 14, 1994)
ISBN: 0131774298

Peter has written one of the greatest books to hit the computer book stands in a long time! This is not your typical C book, but is rather a fun book to read. As I told Peter, most C programming texts are really boring as all they do is describe the functions, give a abstract example and then move onto something different. This book is chock full of real world C stories and folklore, including a story about the C bug that brought down the AT&T network. I found the tongue-in-cheek attitude and real world examples/stories very, very interesting. Run, don’t walk, down to your local store and buy this book. I really really loved this book, and I read most of it in one sitting. There is also a great introduction to C++ for C programmers that will get you started with C++ and Object-Oriented programming. This book is not for beginners, but is a great second book on C.

Expert C Programming is also ideal for those C programmers who want to move to C++. According to the author, the book puts the “fun” back in “functions” 🙂

PS: I’m a big fan for Peter’s book and if you’re a Java programmer, I would recommend buying any of his books. Peter’s web site is where he maintains the wonderful Java FAQ. His newest Java book is Just Java 2 (6th edition). Other books from Peter van der Linden are here.

The Waite Group’s Microsoft C Bible by Nabajyoti Barkakati

Paperback: 1084 pages
Publisher: Sams; 2nd edition (November, 1990)
ISBN: 0672227363

This book is a must for every programmer, especially those who program in the DOS environment. The Bible organizes and simplifies the information contained in Microsoft’s C library. Each function page gives the purpose, syntax, example call, includes, common uses, returns and examples. The book also has compatibility check boxes, so you can be sure your program compiles with the Microsoft C v5.0-7.0, Microsoft Quick C, Borland Turbo C and UNIX system V compilers.

The C++ Programming Language (Special 3rd Edition)
Hardcover: 911 pages
Publisher: Addison-Wesley Professional; 3 edition (February 15, 2000)
ISBN: 0201700735

Bjarne Stroustrup is the designer of C++ and has written many great books on C++. This book is divided into three parts: The first part provides a tutorial introduction to C++. The second part presents a discussion of design and software development issues arising in connection with the use of C++ and the third part is a complete reference manual. With the popularity of C++, several independent distributions of C++ have come forward, but the book discusses ‘pure C++;’ that is, no implementation dependent extensions are used. I have been programming in C++ for a while and yet found this book very helpful. One of the best way to learn a programming language is by writing small programs relevant to the item you study. There are exercises at the end of each chapter to test/apply what you learned in that particular chapter. This wasn’t the book I used to learn C++ and I only recently got it from DEC [DEC ships this book with their C++ compiler in lieu of real documentation :)], but I wish I had gotten it sooner. This is really a great book and worth every penny.

C++ Primer (4th Edition) by Stanley B. Lippman

Paperback: 912 pages
Publisher: Addison-Wesley Professional; 4 edition (February 14, 2005)
ISBN: 0201721481

The C++ Primer is a great book and will make learning C++ a joy. This really is one of the best books C++ book out there, but it assumes a lot of familiarity with programming concepts and a proficiency in C. Everyone I know who uses C++ recommends this book very highly. The new material in this latest edition is excellent for programmers who want to get the most out of new and advanced features in the language. If you are interested in learning more about Object Oriented Program, you might consider buying Applying UML and Patterns : An Introduction to Object-Oriented Analysis and Design and Iterative Development by Craig Larman and The Object Primer by Scott W. Ambler.

C++ FAQs (2nd Edition) by Marshall P. Cline

Paperback: 624 pages
Publisher: Addison-Wesley Professional; 2 edition (December 11, 1998)
ISBN: 0201309831

When I first heard about the book, it thought it would just be a reprint of the electronic version of the FAQ, but I was pleasantly surprised when I got my hands on the book (Thanks Deborah) This is no mere reprint. This is a great great book that contains answers to about 500 questions on programming, design, analysis and testing. This book is not for beginners, but for programmers who have figured out the syntax of the language, and are looking to implement them. If you have questions like “What is a class invariant?”, “How should I use exceptions?”, “What happens when a destructor is executed?”, then this is the book for you.

This is a very practical book that contains answers to some real-world programming questions that will really help anyone involved with software development. I just wish I had this book around when I was taking my C++ classes. Unlike other books, this book contains about 200 complete program rather than code snippets that leave you guessing about the implementation. This book is a definite gem and should be in every single programmers library. Go out and buy 2 copies of this book: One for the office and one for the nightstand at home.