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