These are my “must read” programming books. They are universally applicable: you’ll benefit from reading them regardless of the kind of programming you do. And the knowledge in these books will remain relevant throughout your career.

(As an Amazon Associate I earn from qualifying purchases.)

Career

The first thing you have to figure out, if you haven’t done so already, is what kind of career you want and how to get it. This book will help. Actually, it will help anyone get more satisfaction out of their career.

Learn how to learn

Learning new skills is hard. Change is hard. So why not learn how to make new behaviors stick and learning new things easier? These books will help.

Personal effectiveness

The first three books below are all slightly different takes on the same advice. No matter what your profession or education or task, effective people tend to share a similar mindset and employ similar techniques. Read the book that resonates with you the most.

Checklists can be a game changer. I’ve got tons of them and you should too.

Programming effectiveness

Once you’ve mastered personal effectiveness, it’s time to learn how to be an effective software developer.

Writing code

I still meet programmers who haven’t read these classics. What are you waiting for?

Software engineering

Despite what most people believe, software engineering does have a body of knowledge backed by research. Don’t go against the research and expect your project to turn out okay–it probably won’t.

Leadership

Leadership is a mindset and a set of skills, not a title or position. Anybody can be a leader. As your career progresses and you gain responsibilities, you need to sharpen your leadership skills.

Project management

Just because you’re a good coder and you’ve been around for a while, it doesn’t mean you can run a project. Avoid all the beginner mistakes by reading these books.

Advanced project management

Once you’ve got the basics down and your projects are no longer raging garbage fires, consider learning the advanced project management techniques described in the following books.

Unit testing

If you’re not unit testing yet, what’s stopping you? These books will get you started.

Data analysis and statistics

You need data analysis skills to measure your results. Many programmers lack the statistics knowledge and the skills required to correctly apply statistical tests to data and come up with sound conclusions. These books will help.

Any introductory book on statistics. The following books are much better than the textbooks I read in university:
* Statistics For Dummies (paid link) – Deborah Rumsey
* Statistics II for Dummies (paid link) – Deborah Rumsey

User interface/user experience

Most programmers don’t pay enough attention to user interfaces and user experience. These books are written for programmers and they’ll teach you everything you need to know.

Wrapping up

So that’s my list of “must read” programming books. There’s enough material here to keep you busy for a couple of years so please don’t think you should read all these books immediately. We already have enough problems with unrealistic expectations in our profession and I don’t want to add to them.

The important point is to take as much time as you need to learn a new skill that’s important to you. Don’t just skim through all these books so you can check them off some list.

I almost certainly missed some really great books. Feel free to send more “must read” book suggestions.