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
Member, Python Software Foundation
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 is now available, and all royalties go to the Red Door Family Shelter in Toronto.

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 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
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
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
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

Software Design by Example in JavaScript

Software Design by Example: A Tool-Based Introduction with JavaScript is also available, and all royalties also go to the Red Door Family Shelter in Toronto.

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 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
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
The book is really bloody lovely.
Danielle Navarro

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-04-29Where the Time Went
2024-04-29A New Job at Plotly
2024-04-27Software Design by Example in Python 27: Conclusion
2024-04-27Building Tech Together
2024-04-26Software Design by Example in Python 26: A Debugger
2024-04-25Software Design by Example in Python 25: A Virtual Machine
2024-04-24Software Design by Example in Python 24: Undo and Redo
2024-04-23Software Design by Example in Python 23: A File Viewer

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