Dan Bader

Software engineer reading list: My favourite books about programming

Reading books is one of the best ways to improve your craftsmanship and to become a better software developer. This is a continuously updated list with my favourite programming books, sorted by topic. I link to the ebook version where possible but most books should be available made from dead trees as well.

Architecture & System Design

How to build reliable software that works well.

Craftsmanship

Books about best practices, code quality and professionalism. Every single one of these books is fantastic and I got so much out of them. If you don’t know which area to focus on first then start here.

Programming Languages

Books about specific programming languages that I enjoyed. There’s often free resources available online but sometimes it’s nice to just buy a book that takes you through many aspects of a language. Some of these books are great reads even if you’re not interested in the language specifically, as they teach you important universal concepts.

Haskell

JavaScript

Python

Scala

Interviews & Hiring

These books work both ways. If you’re trying to be hired as an engineer or hiring others then you can learn a lot from them.

Leadership & Managing developers

These are useful even if you’re not in a leadership position. They’ll help you understand your manager better and will make you a more effective communicator.

CompSci fundamentals, algorithms, and math

This stuff is important. Languages and frameworks come and go but the foundations remain largely static. Re-visit these every once in a while.

Postmortems

The best software engineering war stories around. I get inspired by reading about successful or failed software projects that others have worked on. These books let you learn from the experiences and careers of some of the best people in the field.

Writing

Being able to communicate succinctly in writing is often more important than raw technical ability. Especially if you want to convince others. These books have helped me to structure my thinking and improved my English. Especially if English is your second language like it is for me this is an area you should focus on.

πŸŽ“ Grow your career with your own programming blog: I'm working on a course that'll teach how to build and grow your own programming blog from scratch, using Python. Β» Click here to learn more

Improve Your Python with a fresh 🐍 Python Trick πŸ’Œ every couple of days

πŸ”’ No spam ever. Unsubscribe any time.

This article was filed under: books, career, craftsmanship, programming, and python.

Read next: ← More articles