The Third Bit

start where you are - use what you have - help who you can

Greg Wilson

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

…more

Software Design by Example in Python

Software Design by Example: A Tool-Based Introduction with Python and Software Design by Example: A Tool-Based Introduction with JavaScript are both now available for purchase or to read online. All royalties from both books go to the Red Door Family Shelter in Toronto.
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

DateTitle
2024-07-01Python Software Foundation Board Nomination
2024-06-14Narconomics and Big Tech
2024-06-14Human-Scale Software
2024-06-02Why Are You Still Working?
2024-06-02Micro NWIT
2024-05-18Pirates
2024-05-12Reviews Are Coming In
2024-05-11Volume Two

read them all or follow me on Mastodon

Recent Papers

Author(s)YearTitle
Wilson et al2024Experience Report: It Will Never Work in Theory
Haberman & Wilson2023Ten simple rules for writing a technical book
Wilson2022Twelve quick tips for software design
Smalls & Wilson2021Ten quick tips for staying safe online
Lin et al2020Ten quick tips for making things findable

all publications