Favorite Technical and Programming Books
by Justin Michalicek on Sept. 24, 2024, 7:12 p.m. UTCThis is just a list of programming and programming adjacent technical books which I have found useful throughout my career. This is a work in progress and will continue to grow as I either read new books or add books I have already read and regularly recommend to people, but just didn't put on the list yet.
Django
- Two Scoops of Django
The original link seems to be broken, but I'm hoping it's only temporary. I have updated the main link for now.
This is a great book at going beyond the basics of Django covering ways to set up projects, high quality packages to solve common problems, and other patterns. I use most of the things brought up in this book in my personal projects and work projects at Mobelux, and even the ones which I don't use exactly, I do something very similar. Some come from reading this book, others we came up with on our own over years of building Django projects and it's always a source of pride and relief when I see the idea backed up here. - Speed Up Your Django Tests
Adam Johnson is brilliant. He is a constant source of inspiration and information on Django specific topics and software development in general. His other books are on my "to read" list. His blog is full of incredibly useful information.
Python
- Effective Python: 90 Specific Ways to Write Better Python
This is basically a bunch of Python specific techniques for writing maintainable and Pythonic code and the reason why they are better than the alternatives. While the book is Python specific, the rationale behind each item in this book is applicable to every programming language. - Fluent Python
Another book specifically about how to write clean, maintainable, Pythonic code but again with rationale behind each suggestion which should be considered when writing in any language.
General Programming
- Programming Pearls
- Seven Languages in Seven Weeks
A series of short projects highlighting key features of seven programming languages which distinguish them from others in terms of usefulness. This starts out very object oriented and moves towards functional programming. At this point it will be a bit dated and some of the languages will have new features which didn't exist at the time which may change the way you'd solve a problem with them. - SQL Antipatterns: Avoiding the Pitfalls of Database Programming
In our highly web based world, many developers work with databases on a daily basis and yet know little about them due to the abstractions modern frameworks provide. This books provides an interesting look at data storage and retrieval problems in databases and the antipatterns frequently used to solve them, and better solutions to the problem. It also goes beyond most writing about antipatterns and explains when the so-called antipattern may actually be the best solution. - https://trunkbaseddevelopment.com/
Not a book or a blog, so I'm putting it here. This covers the rules and minor variations which can be useful for using Trunk Based Development to safely speed up your development workflow and remove many friction points in the development process.
Other
- The Staff Engineer's Path
This is aimed at helping Staff+ engineers and those nearing that level find their path, but honestly, most of the advice is great for anyone wanting to excel and figure out how what kind of behaviors and skills may be useful in the long run for their technical career. - The DevOps Handbook
This books covers a lot of the what and why of DevOps which can be good for anyone who knows the term, but not much about it. Much of it seemed to be aimed at convincing non-technical staff why this approach works well and that it's a process which the entire company must embrace, not just the developers. From that standpoint, it is a great book for project managers and other non-technical staff as well.
The biggest downsides to me is that there is a lot of what and why, but not much about the how, the tools available, etc. Of course, the tools change so fast that recommending them could be pointless. It also does separate DevOps staff from developers more than I like. This is likely because much of it is aimed at convincing organizations with very strict separation of ops and development combined with my background in primary small companies where developers were also the ops team out of necessity.
Blogs, Newsletters, and Mailing Lists
These are more general and could be anything tech related and tend to cover a wide variety of topics.
- Adam Johnson
- Simon Willison
One of the co-creators of Django. He inspired my short-lived attempt at a weeknotes blog posting and was a genuinely nice guy in our limited Twitter interactions. - Carlton Gibson
Author of django-filter and like Simon Willison, a super nice guy from my limited twitter interactions with him. Pretty sure I got to chat with them both through the same series of tweets. - Django News
- Django Chat podcast
- Pointer
To Read
These are books I have not yet read, but are on my list. They could fit any of the other categories
- Boost Your Django DX
- Boost Your Git DX
- Python Distilled I once asked the author, David Beazley, why he went with a Martini (which are gross) instead of something whiskey based on the cover. He told me that the Martini let him include a sword. I don't need any more convincing than that.
- Django For Beginners I mostly want to read this to be sure it's good to recommend to actual beginners. It is certainly written by someone who knows how to use Django and seems well regarded by other developers and authors I look to for good information.
- Django For Professionals from the same author as Django For Beginners, but aimed at experienced Django developers.