I am an engineering student who, during my first year at university, started learning Python as a hobby using a variety of online resources. Since then, I’ve found that the programming language has come in handy many times when there is something to automate or a large amount of data to work with. My key takeaway has been that, by applying my Python knowledge through actual projects, concepts learned through following tutorials have become solidified in my brain.
I would say that this benefit of learning by doing is what makes The Big Book of Small Python Projects valuable, and I think this is the kind of thing that could have accelerated my learning as a beginner to programming. Sweigart provides 81 projects of varying complexity and size, but which are all well-suited for a learner who has gotten through a series of beginner tutorials in Python and is wondering what to do next.
Each project starts off by introducing the objective and showing the output. Then, Sweigart dives into the code while providing explanations for the algorithms, functions, and modules that make it work. You are encouraged to type out the program yourself and make changes to see how the output is affected. I found that these mini-experiments incorporated into each project were effective checks for understanding, and I can imagine that someone newer to programming would gain a lot of intuition through exploring these exercises. The project topics are engaging and often very amusing — I enjoyed creating an animation of a DNA molecule and replicating the infamous bouncing DVD logo. Those who are interested in games have the opportunity to recreate classics like the Tower of Hanoi, 2048, and Blackjack. Readers can even be exposed to topics across cryptography and mathematics, which could either enhance an existing passion or pave way for a new one. To keep things simple, all of the programs use the terminal to see the output; I was amazed at how far you can go with just this, and I was exposed to some interesting terminal-based Python modules that I will add to my toolbox going forward.
The best way to make use of this book is to glance through the table of contents (or the list of projects sorted by topic in the appendix) and try out what interests you most. Jumping around and seeing how Python can be used to do things that make you excited is a great motivator for coming back and learning more.
If you’re the type of learner who is willing to take the time to deeply understand how programs work, then you will benefit greatly from the creative array of projects presented in this book. I think one thing missing from this resource is the opportunity to have the learner take a problem statement and work through designing a program that meets the criteria on their own. Along the way, they could be guided by hints that suggest an algorithm structure or related Python modules. A sample answer key could be provided at the back or on the book’s website, with an emphasis on trying to solve the problem independently first. Sweigart’s 81 programs provide elegant solutions that teach ways to break down a problem — I think eager learners would be excited to try their hand at some projects which challenge them to arrive at a solution themselves.
If you are a complete beginner, I can highly recommend first working through some or all of Sweigart’s “Automate the Boring Stuff with Python” or Eric Matthes’ “Python Crash Course” — two fantastic introductions to the building-block concepts from No Starch Press. The Big Book of Small Python Projects is an excellent resource that gives advancing Python beginners a collection of interesting ways to apply their understanding of programming concepts and draw inspiration for projects of their own.









