Python Training by 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.


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.





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.


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.


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.

<strong><em>Improve Your Python</em></strong> with a fresh 🐍 <strong>Python Trick</strong> 💌 every couple of days

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.

Related Articles:
  • How to become a better software developer – A while ago I gave a presentation at Mobify’s monthly Engineering Meeting where I spoke about various tactics that can help you become the best software developer you can be. I figured this may be useful to other folks as well and decided to share it in a blog post.
  • What books should I read to move past the beginner stage in Python? – Recommendations for intermediate-level Python books that help you get past the basics so you can start working on small projects.
  • Why Learn Python? Here Are 8 Data-Driven Reasons – Is Python worth learning? We’ve interviewed experts and surveyed the job market to identify the key reasons why you should learn Python today.
  • Functional linked lists in Python – Linked lists are fundamental data structures that every programmer should know. This article explains how to implement a simple linked list data type in Python using a functional programming style.
  • Keep journals to become a better developer – I keep two kinds of journals during my day to day work that I’d like to tell you about. They help me stay organized and motivate me to improve my skills as a developer.
Latest Articles:
← Browse All Articles