Choosing a textbook for learning Python
March 17, 2026
I go through crazy phases. I get obsessed about some subject and go all in on exploring it, then get frustrated, burn out, and don’t revisit it for many months or years.
After my latest deep dive into web development with TypeScript and React, which was supposed to help me land a job as a software developer but didn’t, I wanted nothing to do with programming or computers for a while. Until now. It’s only been about… six months.
But now I want to tinker and learn again. I’m suddenly interested in learning mechanical engineering, (pre)calculus, and… Python, because Python complements engineering, math, and science perfectly. And it just feels “sciency”. Also, Project Hail Mary will be released in cinemas tomorrow, so it feels appropriate to put on a metaphorical lab coat and science the $#!7 out of… beginner mini projects like plotting basic mathematical functions and pie-charting my spendings.
I feel like a kid with Lego blocks, anew excited to build stuff. So now all I need to get started is a good book. I really enjoy learning from real, physical books. Something science-oriented with interesting, realistic problems to solve. Something not too basic because I already know some programming, but something not too difficult either because I used to resent math in high-school, didn’t touch it in college, and by extension am completely useless at it.
I am publishing my thought process in case somebody else out there might find it useful.
Selection criteria
- The book must be fairly recent. I think anything published before 2016 might be problematic due to outdated code syntax, changes in library APIs, evolved practices, missing resources, etc. How did I get the figure 2016? I just rewound back by 10 years from now. Very scientific.
- The book should introduce Python syntax without spending too much time explaining basic programming concepts like what a for-loop or a function is. It should move to more interesting information fairly quickly.
- The book should feature math and science that are not too advanced so that I can still follow along with some effort. I am sure some books are so advanced that I simply won’t have the STEM background necessary to understand them.
- The book should provide, as much as possible, problem sets and projects that simulate realistic problems that an engineer or a scientist might encounter in their daily life. Things like web scraping, databases, web APIs, testing, optimization, data visualization, graphics, math, simulation, timezones and locales, unit conversion, robotics, sensors, string manipulation, etc. I am not necessarily interested in building a computer game, unless it’s an interactive simulation, like landing a lunar module and the GUI is the lunar module’s console à-la Apollo 13!
- The book should be reasonably priced.
- The book should provide explanations that are thorough and do not leave the reader hanging. This means it needs to explain, as much as possible, little things that an experienced programmer might take for granted but a beginner might be confused about.
- Bonus points if the book is not in its first edition (less errors, proven track record), is written by a reputable author, and is published by a reputable publisher.
These criteria are very specific and hard to meet (and evaluate without having actually worked through the book in question). So these criteria are more like wishlist items than strict requirements. Maybe they will serve as useful guides for evaluating the chosen book’s quality and effectiveness once I’ve read it.
Book candidates
Here are the book candidates after several Google searches and ChatGPT prompts. Lower in the post you will find my arguments for and against each book, and ultimately the choice I made.
Sorted by date, with most recently published books on top. The prices are for new paperbacks (if available), taken from Amazon.fr on 2026-03-17, unless noted otherwise. Please support local and independent bookshops! It’s also a really good idea to visit author websites because sometimes authors distribute their books for free under open licenses.
- Problem Solving with Python: Using Computational Thinking in Everyday Life by Michael D. Smith, 2026, The MIT Press, 432 pp., €59.08
- It’s from MIT. It’s just been published. The author teaches a class at Harvard. Problems are drawn from real-life scenarios. Progressive increase in difficulty in three acts. Sounds great on paper!
- Automate the Boring Stuff with Python: Practical Programming for Total Beginners, 3rd edition by Al Sweigart, 2025, No Starch Press, 672 pp., €33.84
- This book has a great reputation and is often recommended on the internet. While the title says that it’s for total beginners, the table of contents entices with useful projects like working with Excel spreadsheets, databases, files, text manipulation, and more. It’s recent, in its 3rd edition, and appears to be a great candidate for learning to do useful things with Python.
- Effective Python: 125 Specific Ways to Write Better Python by Brett Slatkin, 2025, Addison Wesley, 672pp., €58.91
- This books sounds like a priceless resources for Python programmers with some experience who want to master the language and understand its quirks. Not something I would be able to appreciate now, having never used Python, but definitely a resource to consider at a later time.
- Introduction to Engineering and Scientific Computing with Python by David E. Clough and Steven C. Chapra, 2025, CRC Press, 420pp., €64.47
- The blurb sounds great, but I think my math knowledge is not going to be enough to appreciate this book.
- Python for Engineering and Scientific Computing by Veit Steinkamp, 2025, Rheinwerk Computing, 511 pp., €54.88
- I really wanted to get this book. That it pulls examples from various disciplines of engineering really appealed to me. However, while examining previews on Amazon and the publisher’s website, I noticed that I was often confused by the book’s structure and the hit-or-miss explanations.
- Python for Excel Users: Know Excel? You Can Learn Python by Tracy Stephens, 2025, No Starch Press, 344 pp., €43.02
- I really like the premise of this book, especially because this year I have been trying to visualize my personal finances using spreadsheets. Leveraging Python for this job would be interesting. Bookmarking for later, but going to look for something a but more general to start with.
- Python for Mathematics by Vincent Knight, 2025, CRC Press, 268 pp., €60.86
- Python Programming for Engineers and Scientists, 2025, Cengage, €52.95 (publisher price)
- This book has no listed authors and is in its first edition. Something about it just doesn’t feel right to me.
- Introduction to Python for Science and Engineering, 2nd edition by David J. Pine, 2024, CRC Press, 444 pp., €62.31
- Think Python: How to Think Like a Computer Scientist, 3rd edition by Allen B. Downey, 2024, O’Reilly Media, 325 pp., €39.86
- Modeling and Simulation in Python: An Introduction for Scientists and Engineers by Allen B. Downey, 2023, No Starch Press, 280 pp., €35.55
- This looks very interesting. Dives right into interesting scenarios to model. Seems to teach Python on an as-needed basis as you work on solving specific data science problems.
- Fluent Python: Clear, Concise, and Effective Programming, 2nd edition by Luciano Romalho, 2022, O’Reilly Media, 1012 pp., €64.43
- At 1012 pages, this monster is likely a complete language reference, similar perhaps to what JavaScript: The Definitive Guide is to JavaScript. But I am looking for something more manageable and structured.
- Python for Data Science: A Hands-On Introduction by Yuli Vasiliev, 2022, No Starch Press, 240 pp., €42.98
- Python Crash Course: A Hands-On, Project-Based Introduction to Programming, 3rd edition by Eric Matthes, 2022, No Starch Press, 552 pp., €30.99
- This one came highly recommended by ChatGPT, but glancing at the contents I feel like this book is too broad for my current needs. It introduces Python to readers with no prior programming experience and then covers the breadth of Python applications from game development to data visualization to web app development. I am looking for something more focused.
- Hardcore Programming for Mechanical Engineers: Build Engineering Applications from Scratch by Angel Sola Orbaiceta, 2021, No Starch Press, 600 pp., €52.26
- Sounds awesome but I am afraid I don’t have the necessary engineering and math maturity to really grasp what this book teaches.
- Introduction to Computation and Programming Using Python: With Applications to Computational Modeling and Understanding Data, 3rd edition by John V. Guttag, 2021, The MIT Press, 496 pp., €69.31
- I think this book will be more focused on computer science than practical applications of programming since it has replaced MIT’s 6.001 Structure and Interpretation of Computer Programs class. As I already have the original SICP book, I have my CS bases covered by that iconic text. Going to go with something with a different angle for learning Python.
- Introduction to Scientific Programming with Python by Joakim Sundnes, 2020, Springer, 164 pp., €35.05 or OpenAccess
- Short and free (OpenAccess). Covers the basics of Python syntax, charting/plotting, and is based on Hans Petter Langtangen’s lecture notes. Maybe this is a great place for me to start!
- Learning Scientific Programming with Python, 2nd edition by Christian Hill, 2020, Cambridge University Press, 570 pp., €41.57
- Python for Science and Engineering by Hans-Petter Halvorsen, 2020, self-distributed, 301pp., €0.00
- A Primer on Scientific Programming with Python, 5th edition by Hans Petter Langtangen, 2018, 953 pp., €55.04
- Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More! by Amit Saha, 2015, No Starch Press, 264 pp., €31.79
Conclusion
As I was making this choice, I noticed several things:
- I wasted way too much time on this. This is a prime example of procrastination masked as activity/productivity. I might have been better off just picking up any of these books based on intuition alone and diving in head first.
- Making a decision like this is quite subjective and emotional because it’s very difficult to accurately evaluate a book by simply glancing at its table of contents and reading its marketing blurb.
- This whole exercise was motivated by my desire for completeness, risk minimization, and reduction of uncertainty. But because there are way too many book options out there, it’s virtually impossible to make a choice based on facts. In the end, you take a risk on a book and its author and you live with it. Overthinking this choice is not a wise use of one’s time.
In the end I decided to start simple with Introduction to Scientific Programming with Python by Joakim Sundnes. It’s free, short, based on lectures of a reputable professor, and will give me a better idea about what it is that I really want to accomplish by learning Python.
I will revisit this blog post once I’ve completed the book to share my opinion and to select the next one.