We have a lot of newbies on the forum these days. Again and again we are asked “What are some good books for language _______?” We all have our favorites and some books lean towards a certain learning style. So one programmer is going to like a particular book more than another programmer might. But besides that little glitch in perspective, there are some books that are generally accepted as “good books” for a particular language. I will mention a few that I have found very insightful and also a great reference. The must haves for those starting their own programming book library… we talk about them right here on the Programming Underground!
So as many of you may know I have a vast knowledge in the programming world. I love the stuff and so as you can imagine I also read one heck of a lot. While my library is probably not as big as some other programmers you find here, mix my great books with the years of experience and you can cover quite a bit of ground. Below is a list of languages I specialize in and some of the books I have found useful in exploring the language. Some are beginner books I find great for those new to the language and others are complete reference books (I will mark which are which). I conclude with a list of books that are great “theory” books and can help you become a better programmer.
Lets get started!
The C++ Programming Language: Special Edition (3rd Edition) by Bjarne Stroustrup – Who can beat a book by the author of C++? This book is a bit on the heavy technical side but has tons of examples to illustrate several points. They cover all the bases from string manipulation to pointers to functions. It is a hard cover book too which is often a rare thing in computer books these days. (Recommended reference book, intermediate to advance programmers)
C++ How to Program (6th Edition) (Paperback) – I am a HUGE fan of Deitel books of all languages and you will find many of them referenced in this list. They are thick books but that is because they have a ton of examples and some of them even have projects and questions to work on at the end of chapters. They are bit on the pricey side but they often go on sale. (Recommended book for beginners through intermediate programmers)
Sams Teach Yourself C++ in 21 Days (5th Edition) (Paperback) – Jesse Liberty is a good author and has made many great programming books. For the absolute beginner I love the Sams Teach Yourself series of books. They are often straight forward, show plenty of examples and can get you up and running quickly. These books will be a bit simplistic for advanced programmers and for those of you who have specific questions which these books “glaze” over. But they are great for beginners and highly recommended since they often include Q&A questions and such. (Recommended book for beginners, not so much for intermediate or advanced)
C++: The Complete Reference, 4th Edition (Paperback) – This is a complete reference book and a must for anyone who wants to do C++. It has all the definitions of functions and such along with tidbits on how to use them. Not so much a book for reading, but one for pure reference lookups. (Recommended for all programmers from beginner to advanced).
Illustrated C# 2008 (Windows.Net) (Paperback) – C# is my favorite language and so I look over a ton of C# books all the time. This book offers a little something the others don’t, simple diagrams explaining the concepts. The “illustrated” part of this book is what makes it quite the gem. It covers some of the best parts of the language and then puts it into very easy to understand diagrams that make it appear so simple. A definite book to check out! (Recommended for beginners through advanced)
Head First C# (Brain-Friendly Guides) (Paperback) – A heads first book that is for the visual learners. This is a better one than some of the other head first books out there and attempts to put things into a more illustrated and funny context. Its good but never my particular cup of tea. Doesn’t mean it isn’t a good book! Read some of it in the bookstore and then decide if it is going to fit your learning style or not. (Recommended for beginners through intermediate)
Beginning Microsoft Visual C# 2008 (Wrox Beginning Guides) (Paperback) – Some programmers really knock Wrox and I too find them a hit and miss sometimes but the thing that makes them especially attractive is the price. They are often fairly cheap and if you find one that is a hit, it will be definitely worth more than what you paid for it. I think this book is one of those hits. I have a lot of wrox books in my collection and they cover a variety of topics but when it comes to C# they can be great. This is the beginners guide version so perfect for beginners. (Recommended for beginners to intermediate)
C# 3.0 Design Patterns (Paperback) – Interested in C# design patterns? This book is awesome for it. Judith Bishop does a fantastic job at covering some of the great design patterns out there and shows you how to implement some of them in C#. Due to this book being focused on C# it isn’t something to dive into until you are at least an intermediate level C# developer. She doesn’t spend much time on the syntax and instead expects you to know a enough to get the pattern’s idea. Definitely a book to be hooked up with. (Recommended intermediate to advanced)
Sams Teach Yourself Visual Basic 2008 in 24 Hours: Complete Starter Kit – Another Sams Teach Yourself book that certainly helps the beginner get up on their feet with the language. Great for those VB programmers that might have taken the language years ago as well and need a refresher. As with all the Sams Teach Yourself books, this gets you from beginner to intermediate in a decent amount of time. (Recommended beginner through intermediate)
Beginning Microsoft Visual Basic 2008 (Wrox Beginning Guides) (Paperback) – Another wrox book that is on the fairly cheap side but gets you up and running with the language. As with most wrox books they are not going to be exactly tailored to the advanced user but beginners will find the nice simplistic language a little more digestible.
Visual Basic 2008 How to Program (How to Program (Deitel)) – And of course there is Deitel again. I personally don’t have this book but I have never seen a Deitel book I didn’t like. If you are going to learn a new language or even work your way up to advanced, these are definitely some books you want to look at. They have tons of coloring, examples, some have Q&A and much more. (Recommended beginners through advanced)
Peer-to-Peer with VB.NET – Matthew McDonald takes you through the world of Peer to peer programming with VB.NET. This books is an ok book and one of only a handful out there that even covers the topic. It shows you how to make little chat programs, servers/client architectures etc. It is no C++ socket programming style program and that can be a good/bad thing. It covers remoting in .NET as well as shows you how to build a messenger style program. I through it in the list for those who might be interesting in doing something like this and already know VB as a language. (Recommended intermediate to advanced).
Java How to Program, 7th Edition (Paperback) – Another Deitel book for you. I love this book and it covers everything from basic Java programs to GUI to things like working with Google Maps and other APIs. Again a bit on the pricey side but one of those books that will take you from beginner to intermediate in just weeks. Then after you are done reading through this brick of a book, you can use it for reference material. (Recommended for beginners through intermediate)
Java Pocket Guide (Pocket Guides) (Paperback) – Pocket guides are always great for those languages that are case sensitive and require a bit more in the way of parameters. This is certainly a good handy book to have, doesn’t cost much, and excellent reference for those who are always wondering “What parameters does that function take again?” Nice for those java programmers that know the function they need, but need the details on how to use it. (Recommend for all programmers)
Head First Java, 2nd Edition (Paperback) – These head first books are very graphical and great for “visual learners”. They make learning a language fun and entertaining while giving you some of the building blocks. I am not quite a visual learner and find all the pictures a bit distracting, but I do see where they are going with the topics and they do cover a bit of ground. Still I do like the way they look and how they present information. If you are someone who is not quite a geeky programmer but need to do a bit of programming for another field they might be for you. (Recommended for beginners to intermediate)
Programming Ruby: The Pragmatic Programmers’ Guide, Second Edition – The pick axe book! It is named that because of the pick axe on the cover. It is one of the most definitive guides out there today on the language. It should be the core of what you have for Ruby and then you can get some of the other books to help fill out the more specific areas.
Learning Ruby (Paperback) – This book doesn’t get enough attention on Amazon but it is great for beginners. I got this book first to see if I wanted to learn the language and after reading it I definitely wanted to know more so went out and got the pick axe book which covered everything. This gives you a taste for the language without diving into Rails (which most ruby is using for web application development these days). Great for beginners. (Recommended for beginners to intermediate)
Agile Web Development with Rails, 2nd Edition (Paperback) – Then when you want to go into using Rails, a solid book is this one. This book is usually bought with the pick axe book and helps explore development with rails using an agile methodology approach. With so many outstanding reviews, all those programmers can’t be wrong! If you are looking to get into web development using the Rails stack then this book is a must have. (Recommended beginner through advanced but pick axe book is recommended first before this)
Programming PHP (Paperback) – I love my PHP and it is my favorite language for web development. This book is a nice solid book for intermediate programmers who know a bit about programming but want to do all the neat stuff like HTTP sessions, database connectivity to MySQL and Oracle, and XML parsing. It is a good book to check out. Perhaps you will pick it up, perhaps you won’t. (Recommended for intermediate to advanced)
PHP 5 in Practice (Developer’s Library) (Paperback) – This is a FANTASTIC book for PHP recipes. It covers all the little tidbits you would want to know about manipulating strings, time between dates, how to do forms handling and more. Definitely something you should pick up if you are a PHP intermediate user at least. I use it for reference mainly and certainly has some great things that you will find useful for years to come. (Recommended intermediate through advanced)
PHP 5: Your visual blueprint for creating open source, server-side content (Paperback) – I really like this little visual blueprint books for beginners. They often show you a standard couple steps and then provide little screenshots that walk you through it. They are great for beginners and can get you up and running with installing PHP on your machine and working with some of the basic features. Good book for extra reading material especially if you are new. (Recommended for beginners)
PHP and MySQL Web Development (4th Edition) (Developer’s Library) (Paperback) – Phenomenal book for using PHP with MySQL web development. It is a classic that certainly will help you learn much of what is out there when it comes to website database development between PHP and MySQL. Good compliment book to another core PHP reference book and a solid PHP theory book. (Recommended intermediate through advanced)
General Programming and Design
Code Complete: A Practical Handbook of Software Construction (Paperback) – My favorite book of the entire library. This book is a bit older than the others, but the theory it teaches you are so useful and timeless that they even apply to languages of the future. They cover examples in C/C++/Java/VB/PHP etc and even run time tests against one another. Steve McConnell shows you several standards in the industry as well as how you can make any code better. No wonder this book is always rated really high and a must have for any programmer despite language. I can’t recommend this book enough. (Recommended from beginner through advanced)
The Pragmatic Programmer: From Journeyman to Master (Paperback) – This book is in the same lines as Code Complete but not as solid. Definitely a fantastic read and certainly a book I strongly recommend for general programming theory. It is tailored more for the intermediate programmer I find but some beginners may find it useful as well. It isn’t a super expensive book or anything so if you see it, pick it up and look forward to a nice read on a long car trip or plane ride. (Recommended intermediate through advanced)
So these are some of the books I recommend and have in my very own library. They have served me well and I am sure they will do the same for you. When you go looking for books, pay attention to publisher as much as topic. If you find a few books that are from a certain publisher you may like their other books since authors typically stay with one publisher and create several books with the same style. In my recommendations above you will notice a few publishers I like (Deitel, Wrox, Sams Teach Yourself, Developers Library, Apress being a few).
My recommendations above only link to Amazon.com to give you an idea of the book’s look, ISBN, authors etc. But you can certainly find these books at many bookstores near you. In Canada you can find many of these books at Chapters. In the US you can also try Barnes and Noble. They are always found in the computer book section which is typically off in the back of the store.
Hope you enjoy them and thanks for reading! 🙂