Why am I passionate about this?

My first computer was an early IBM PC back when all my friends had Commodores they used for gaming. Not being able to share their games meant I had to do something else, so I read the Introduction to Basic book that came in the box. I’ve been coding, reading about coding, writing about coding, teaching about coding, and talking about coding ever since. The world of technology moves so fast that it is hard to keep up. If you’ve taken one of my courses or listened to The Real Python Podcast, I hope you’ve heard about my passion for the topic. 


I wrote

Django in Action

By Christopher Trudeau,

Book cover of Django in Action

What is my book about?

Django is an all-encompassing web framework for Python programmers. It includes URL-to-page mapping, HTML templating, a database abstraction layer, and…

Shepherd is reader supported. When you buy books, we may earn an affiliate commission.

The books I picked & why

Book cover of Automate the Boring Stuff with Python: Practical Programming for Total Beginners

Christopher Trudeau Why did I love this book?

When I work with students new to programming I often find they struggle with translating the toy problems in exercises to actually doing something in the real world.

I love this book and frequently recommend it to new programmers because it is centered around problems. Coding should be about making your life easier. At the beginning, the problems are small, but by the end, you’re learning about email, PDFs, and GUIs.

Sweigart has a great voice, and reading this feels like being guided by a friend rather than yet another coding textbook.

By Al Sweigart,

Why should I read it?

1 author picked Automate the Boring Stuff with Python as one of their favorite books, and they share why you should read it.

What is this book about?

In this second edition of Automate the Boring Stuff with Python, you'll learn the basics of programming in Python, the fastest growing programming language today, before moving on to create Python programs that effortlessly perform useful and impressive feats of automation. This updated edition is full of step-by-step instructions that walk through each programme. Practice projects at the end of each chapter challenge you to improve those programmes and use your newfound skills to automate similar tasks.


Book cover of A Philosophy of Software Design

Christopher Trudeau Why did I love this book?

I knew how to code when I finished school, or at least I thought I did. What I didn’t know was how to think about programs and how to structure the bigger picture. Over time and with practice, I learned how to think about design, but the journey was fraught and painful. I wish I had this book when I started out.

Coming to the book later in my career, I may have intuitively known a lot of what Ousterhout covers, but I’ve never seen it put so elegantly. I found myself nodding along and now often point coders at this little treasure.

By John K. Ousterhout,

Why should I read it?

1 author picked A Philosophy of Software Design as one of their favorite books, and they share why you should read it.

What is this book about?

This book addresses the topic of software design: how to decompose complex software systems into modules (such as classes and methods) that can be implemented relatively independently. The book first introduces the fundamental problem in software design, which is managing complexity. It then discusses philosophical issues about how to approach the software design process and it presents a collection of design principles to apply during software design. The book also introduces a set of red flags that identify design problems. You can apply the ideas in this book to minimize the complexity of large software systems, so that you can…


Book cover of Refactoring Databases: Evolutionary Database Design

Christopher Trudeau Why did I love this book?

When helping software organizations be nimbler, I tend to stress two things: release more frequently and automate everything. Over the years, I’ve frequently got pushback from the database folks. Most DBAs and Data Architects are taught a very top-down approach and want all information upfront before creating a single table.

This book teaches how to apply abstraction layers that are common in programming but not as common in database design. The book showed me how to use versioned views to control the coding interface and upended my overall approach to designing databases.

By Scott W. Ambler, Pramod J. Sadalage,

Why should I read it?

1 author picked Refactoring Databases as one of their favorite books, and they share why you should read it.

What is this book about?

Refactoring has proven its value in a wide range of development projects-helping software professionals improve system designs, maintainability, extensibility, and performance. Now, for the first time, leading agile methodologist Scott Ambler and renowned consultant Pramodkumar Sadalage introduce powerful refactoring techniques specifically designed for database systems.

Ambler and Sadalage demonstrate how small changes to table structures, data, stored procedures, and triggers can significantly enhance virtually any database design-without changing semantics. You'll learn how to evolve database schemas in step with source code-and become far more effective in projects relying on iterative, agile methodologies.

This comprehensive guide and reference helps you overcome…


Book cover of The C Programming Language

Christopher Trudeau Why did I love this book?

I learned my first programming language as a kid, and Basic always felt like a beginner’s language. It wasn’t until I started writing C that I felt in control of the machine. This book is a classic and was on every C-programmer’s shelf in the 80s and 90s. It isn’t the easiest read but is remarkably comprehensive for a relatively thin volume. The fact that it has been in print for over 30 years tells you something about its staying power.

Nowadays, I tend to code in higher level languages, but every once and a while I dip down, getting closer to the bare metal, and brush this baby off. It is probably one of my most well-worn books.

By Brian Kernighan, Dennis Ritchie,

Why should I read it?

4 authors picked The C Programming Language as one of their favorite books, and they share why you should read it.

What is this book about?

This edition describes C as defined by the ANSI standard. This book is meant to help the reader learn how to program in C. The book assumes some familiarity with basic programming concepts like variables, assignment statements, loops, and functions. A novice programmer should be able to read along and pick up the language.


Book cover of Open Source Licensing: Software Freedom and Intellectual Property Law

Christopher Trudeau Why did I love this book?

Most of the code I write and use is open source. As a programmer, it is easy to think “open source means free.” I didn’t think much about it until one of the companies I worked at got acquired, and we had to audit our licenses.

The big company that bought us was very particular about which licenses were compatible with their needs. That was when I realized I needed to understand this stuff better. Rosen does a great job of teaching what is otherwise legalese in plain-spoken, easy-to-understand language. This book taught me why I choose the licenses I do rather than picking blindly.

By Lawrence Rosen,

Why should I read it?

1 author picked Open Source Licensing as one of their favorite books, and they share why you should read it.

What is this book about?

"I have studied Rosen's book in detail and am impressed with its scope and content. I strongly recommend it to anybody interested in the current controversies surrounding open source licensing."
-John Terpstra, Samba.org; cofounder, Samba-Team"Linux and open source software have forever altered the computing landscape. The important conversations no longer revolve around the technology but rather the business and legal issues. Rosen's book is must reading for anyone using or providing open source solutions."
-Stuart Open Source Development LabsA Complete Guide to the Law of Open Source for Developers, Managers, and Lawyers

Now that open source software is blossoming around…


Explore my book 😀

Django in Action

By Christopher Trudeau,

Book cover of Django in Action

What is my book about?

Django is an all-encompassing web framework for Python programmers. It includes URL-to-page mapping, HTML templating, a database abstraction layer, and much more. My book is split into three parts. Part 1 covers Django's core functionality. Part 2 adds multi-user site capabilities to your repertoire, and part 3 tours various third-party libraries that take your Django site to the next level.

This book uses a single project throughout. You’ll learn the framework by coding a real site, including authentication, multi-users, uploads, APIs, HTMX, the Django Admin, management commands, and much more. Each chapter includes exercises to test your knowledge, and sample answers and code are available online.

5 book lists we think you will like!

Interested in python, software, and law?

Python 30 books
Software 61 books
Law 172 books