The Third Bit
start where you are - use what you have - help who you can
Greg Wilson
Co-founder and first Executive Director of Software Carpentry
Co-founder of It Will Never Work in Theory
and The Architecture of Open Source Applications
ACM SIGSOFT Influential Educator of the Year
Co-winner, Jolt Award, Best General Book
Fellow of Python Software Foundation since 2010
Ph.D. in Computer Science from the University of Edinburgh
Author or editor of over a dozen books on programming and two for children
Software Design by Example in Python
The book is really bloody lovely.
— Danielle Navarro
This book 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 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.
- Jenn Schiffer
This 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
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.
- Julia Ferraioli
There's a lot of books on programming but fewer books that couple software development with effective and practical use of tools, presenting a language not as a main course but as a part of an engineering ecosystem. Greg Wilson's book hits all the right notes in bringing together theory, pragmatism, and best practices.
– Emily Gorcenski
Rather than stacking up isolated examples divorced from practical use cases, this book teaches concepts the way we use them: in collaboration with one another. 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 conveying what it's like to manage complex software projects.
- Chelsea Troy
I am v much enjoying gvwilson's book Software Design by Example. It makes me miss teaching, it would be such a fun text to use!
– Jenn Schiffer
I know I can share this book 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 is a bonus.
- Sue Smith
Software Design by Example is the book I'll recommend to every new dev… It is nice to you. It wants you to succeed… It's a bridge from "learn to program" to working programmer.
– Jessica Kerr
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 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. It's been a joy to see them feel so equipped and inspired.
- Prof. Alberto Bacchelli
The book is an excellent guide for anyone going from "just programming" to building larger 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.
- Jennifer Moore
This is an absolutely marvelous book. Very rarely do insightful diagrams, contentious syntax disambiguation, and thoughtful attention to how humans learn and absorb information come together in a coherent package like this. It is exactly the sort of book I wish I'd had at the start of my programming journey; it would've saved me from countless lessons learned the hard way.
- Hazel Weakly
Prior Art
The Carpentries
A non-profit organization teaching basic software and data skills to researchers world-wide (1998–present).
It Will Never Work in Theory
Brief reviews for working programmers of empirical results in software engineering (2011–2023).
Research Software Engineering with Python
A textbook on building research software and running research software projects (2021).
JavaScript for Data Science
An introduction to JavaScript and web programming for data scientists (2020).
Teaching Tech Together
An introduction to evidence-based teaching for people with technical backgrounds (2019, slides).
The Architecture of Open Source Applications
A collection of essays describing the architectures of fifty open source projects (2011–12).
Recent Posts
| Date | Title |
|---|---|
| 2024-07-01 | Python Software Foundation Board Nomination |
| 2024-06-14 | Narconomics and Big Tech |
| 2024-06-14 | Human-Scale Software |
| 2024-06-02 | Why Are You Still Working? |
| 2024-06-02 | Micro NWIT |
| 2024-05-18 | Pirates |
| 2024-05-12 | Reviews Are Coming In |
| 2024-05-11 | Volume Two |
…read them all or follow me on Mastodon
Recent Papers
| Author(s) | Year | Title |
|---|---|---|
| Wilson et al | 2024 | Experience Report: It Will Never Work in Theory |
| Haberman & Wilson | 2023 | Ten simple rules for writing a technical book |
| Wilson | 2022 | Twelve quick tips for software design |
| Smalls & Wilson | 2021 | Ten quick tips for staying safe online |
| Lin et al | 2020 | Ten quick tips for making things findable |