10 Must-Read Books For All Programmers
The road from newbie to professional developer can be long and bumpy. Here are 10 books (plus a few more) that can help guide you on the journey to success.
![](https://eu-images.contentstack.com/v3/assets/blt69509c9116440be8/blta718883b4bbbdacd/64cb3a5a45d19ee27565b9af/Image_1_resized.png?width=700&auto=webp&quality=80&disable=upscale)
What is programming? Is it an art? How about a craft? I know, it's a profession, right? If your answer is that it is (or at least, can be) all of these, then it's likely that you're interested in writing computer programs for more than just an income. If you want to be a programmer who gets better with time, then there are books that can help you.
I know that reading a book is an archaic activity, but I'm OK with that. There are a lot of archaic activities that still produce good results and in the case of the books on this list, the results can be very good, indeed. The good results I'm talking about have to do with becoming a better programmer -- and I'm defining that as being better at creating better code, being better at getting a job as a programmer, and being better at ultimately becoming someone who can lead teams of programmers.
Now, there are a couple of things you need to know about this list. The first is that it's my list. I asked for suggestions from several folks (and I've given a couple of people credit for their responses) but this doesn't come from a fancy survey or any scientific process at all. These are books that, in my more than 30 years of writing code, managing teams of developers and testers, and running testing labs and operations for four publications, I think people who want to be better programmers should be reading.
[See Top Programming Languages That Will Future-Proof Your Portfolio.]
The next thing to know is that I could have gone on with the list for several more entries. Three books, in particular, didn't make the list, because I thought they were just a little too esoteric, but they had a huge impact on me. I'll share those three with you if you make it to the final part of the article. As it is, there are 14 books here, but they fit into 10 nice packages, and it's my list. So there.
Finally, the order of the entries doesn't indicate any sort of ranking, though the first book (or set of books) is what I consider the foundation document for modern programming. After that, feel free to assign any ranking you'd like.
Although it's my list, I'd love to know about yours. Which book or books do you recommend to up-and-coming programmers or for seasoned coders? Which book or books had a major impact on your career? I'd love to know what the books are, and what impact they had. If there's enough interest, we might even look at putting together a reading list and some sort of group discussion.
Happy reading.
When you talk about modern computer programming, you won't get far before quoting, talking about, or riffing on Donald E. Knuth and The Art of Computer Programming. Knuth provided basic definitions for many of the terms and concepts we use in computer programming, and even those who ultimately disagreed with him have tended to define their ideas in opposition to his, rather than in a vacuum.
Now, there's nothing about this four-volume set that's light reading or easy going. It's a serious wade through complex ideas, though there are a fair number of jokes and witticisms in its 3,000+ pages. There's something else you should know: It's not finished. Knuth started writing it in 1962 and he's still working on it. I suspect that George R.R. Martin is using Knuth as a writing model.
When you open a book with a title like The Pragmatic Programmer, you're not likely looking for esoteric principles of computer science. And that's a good thing because Andrew Hunt and David Thomas wrote a book that is all about how to do the job of computer programming, and do it well.
This isn't a brand-new book, so there are pieces of technology mentioned that are a bit out of date. But the principles they discuss for everything from design, to testing, to ethics are sound, and the examples they give rock-solid. That is a small fraction of the book's length, but it is one that you're likely to make notes in and attach sticky-notes to as you customize it into a reference work returned to again and again.
One of the best ways to learn pretty much anything is to talk with those who are already masters of the craft. That's what Peter Seibel did in Coders at Work and the result is a book that contains a lot of wisdom if you're willing to dig just a bit to find it.
The 15 interviews that make up the book start with a common question and then follow a pattern. In the answers you'll find thoughts on everything from learning software development techniques to which editor is best. There's some disagreement (as there must be in a project like this), but the overall result is a wealth of information for those who take programming seriously.
This is this kind of book you shove into your bag to read at coffee shops and on mass transit. You can get lost hearing the voices of experts, finding some to agree with and some to rail against. Once again, keep pencil and sticky notes handy. You'll need them.
Robert C. Martin has written several books, but two of them go together nicely for the purposes of this list. Clean Code: A Handbook of Agile Software Craftsmanship is all about what it takes to create code that is functional, elegant, and reliable. The Clean Coder: A Code of Conduct for Professional Programmers takes on the issue of how to be a top-notch member of a good development team. Taken together, they make up a handbook for how to be the kind of software developer just about every manager wants on the team.
But note before picking up either one of these books, they are relentlessly agile. If you live, work, and always want to work in a waterfall world, then you're going to have some trouble with the prescriptions about how to structure work and build teams. That said, I don't think there are very many companies out there right now that aren't moving to agile for at least some of their project teams. If you want to be a great part of the software development future, these two books deserve a spot on your shelf, or space in your e-book reader.
As you may know, this is not a new book. If you're just getting started as a programmer, the odds are good that your managers read this book when they were starting out. It's possible their managers read the book early in their careers, too. Programming Pearls was taken from a series of columns in the Communications of the ACM in the mid-80s. This year marks the 30th anniversary of the original edition. Fortunately, creative thinking about challenging problems is still very much in demand, so this book can still teach us a lot -- and provide a great topic of discussion when sitting around a table with "more experienced" technical professionals.
When I was thinking about this list, I knew that design should be part of the library, so I called my son, the game designer. As we were talking about what I was doing with the list, Daniel pointed out that Jesse Schell's The Art of Game Design provides a set of more than 100 "lenses" through which a designer can look at a game, or any human interaction problem.
Sometimes, taking a look at a problem from a different perspective can pay huge dividends. There are a number of classic books on this list, and I don't want to make it something out of a museum. Pick up this book if you're interested in having your assumptions challenged, but don't be tricked into thinking that the book itself (or the accompanying card deck) is, in itself, a game. This is a professional book that will lead you into some very deep questions about humans and their interactions with electronic systems.
When it comes to books about designing for Web-based applications, it's hard to get better, or more popular, than Steve Krug's Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability. Now in its third edition, this book is a must if you think you might ever be charged with leading a Web application project.
Sixteen years after the book first appeared, parts of Don't Make Me Think might seem obvious, but it's good to have everything put down in one place in simple, straightforward language. Many of the principles in the book are applicable to Web applications that appear on any device, so keep this book in mind if you're also charged with mobile projects.
At some point in becoming a professional programmer, you have to get a job. When that day arrives (or when it's time to get a better job, Cracking the Coding Interview, 6th Edition: 189 Programming Questions and Solutions by Gayle Laakmann McDowell could be the best investment you make. This book doesn't just give you the sort of tips that many facile books provide, but instead walks you through actual questions and preferred answers. Think of this as a GRE study guide for someone who wants a job in software development.
On the other side, if you're new to the business of being a software development manager and are worried about how to conduct a good interview, this book is a wealth of questions that can help you figure out your process. You'll have to decide whether her answers match your own preferred responses, but it's great to have a starting point.
-
About the Author(s)
You May Also Like