Reviews Are Coming In

Posted

Reviews of the Python version of Software Design by Example have been coming in:

I’ve been using this book to teach software design to an undergraduate class of 250 students, and the students and I love it! The real-world examples are perfect: practically relevant to the students and simple yet challenging enough to engage deeply with critical design decisions. The positive impact of the book is evident from the improvements in student grades and the quality of their practical assignments, reflecting the substantial learning that’s taking place. I am thrilled by how the book demystifies the implementation of programmers’ tools. This approach is enlightening and empowering for my students, who get a sense of capability that I haven’t seen sparked by any other text. It’s been a joy to see them feel so equipped and inspired!

Alberto Bacchelli

Greg Wilson’s “Software Design by Example” is my new favorite book on the art of writing software. There is so much to like about it - the way it leads the reader to explore and develop their understanding, the choice of projects and examples, the clarity of the instruction, the Creative Commons license, and much more. It will be my first recommendation for people looking to really learn professional development, either on their own or in a classroom setting.

Naomi Ceder

This is the book I wish I had for teaching CS101 courses. It seamlessly bridges the gap between an easily accessible introduction to computer science taught in Python while diving into the details of lower level programming that 101 courses often miss. Blending computer science with sound software engineering practices (with citations!) is difficult enough on its own, but this book guides the reader through practical design patterns that they can put into practice. The addition of historic anecdotes gives readers extra context for what they’ve learned and brings theory back to practice. I highly recommend this book for prospective developers, computer scientists, and anyone looking for a informative and intuitive refresher for software engineering best practices!

Julia Ferraioli

The book is an excellent guide for anyone going from “just programming” to building larger, long-term software projects. It’s like a choose-your-own adventure, but the adventure is learning to build very complex software as a composition of much simpler patterns. Greg Wilson pulls back the curtain and shows you what all the pieces are, so you can see how they fit together.

Jennifer Moore

The Python edition of Software Design By Example is both a great refresher if you’ve not worked with Python in a long time, or your next textbook if you know just enough Python to be a little dangerous and want to level up. The exercises being tool-based means the experience gained will instantly feel applicable to whatever you end up using the language for, either at work or your next personal project.

Jenn Schiffer

I’m so glad to have an exemplar in tried and tested learning practices in these Software Design by Example books. I know I can share them with folk in the confidence that they’ll get a guided experience that’s both accessible and comprehensive, leaving them with real world software skills. Teaching using examples makes the techniques meaningful and tangible to the learner which is in itself a great motivator, and the use of tooling examples gives these books a bonus illustrative benefit!

Sue Smith

Rather than stacking up software syntax in isolated examples divorced from their practical use cases, Greg teaches concepts the way we use them: in collaboration with one another, to accomplish tasks. Each chapter tells a story about how to build a familiar tool, and the skills from each chapter build on the previous ones. Filled with both pragmatic advice and juicy historical nuggets, this book just might manage to do the thing I’ve tried to do in classrooms for half a decade: transfer basic engineering skills while also conveying what it might be like for students to manage complex software projects.

Chelsea Troy

This is an absolutely marvelous book; it is already a top recommendation from me and will remain so for the foreseeable future. Very rarely do the combination of insightful visual diagrams, contentious syntax disambiguation, and thoughtful attention to how humans learn and absorb information come together in a coherent package like this. In this book, you’ll find short chapters, relevant exercises, and iterative deepening of concepts that draw the reader in and take them on a journey of understanding and exploration; it’s a delight to read through or in any order one chooses. If that wasn’t enough, it takes a measured approach towards introducing relevant topics for professional software engineering: testing, designing for evolution, version control, and more. This is exactly the sort of book I wish I would’ve had at the start of my programming journey; it would’ve saved me from countless lessons learned the hard way.

Hazel Weakly