Greg Wilson

Greg Wilson

Years ago, I lost my temper while arguing with my brother, and said, "Jeff, I could teach you everything I know and you'd still be an idiot." Please keep that in mind as you read this site.

Co-founder of Software Carpentry
Editor and author of books on computing and teaching
(and for children)
Ph.D. in Computer Science
Parent, spouse, and proud Canadian

Chunks versus Functions

Jun 16, 2019

I have now done two multi-page analyses in R Markdown, and one thing I’ve noticed is that I’m writing fewer functions than I normally would. A command-line script that I put together this morning to check a book I’m working on, for example, has 8 functions in 76 lines of code, or 9.5 lines of code per function. The analysis script I wrote for a recent paper, on the other hand, has 12 functions for 640 lines of code, which is 53 lines per function.

Ten Quick Tips for Delivering a Programming Lesson

Jun 15, 2019

Designing a great lesson is the first 90% of effective teaching; delivering it well is the other 90%. The 10 simple rules outlined in this paper describe classroom practices that instructors can adopt immediately and at low cost.

Software Isn't Sustainable

Jun 14, 2019

Software Carpentry didn’t start life as a training program: it began as a competition to design software tools that would be easier for scientists to use. That competition’s failure helped me realize that while knowing what to do is pointless if you don’t have the means to act on your knowledge, the best build tools and bug trackers in the world are irrelevant if people don’t know how and why to use them.

Martha's Rules

Jun 13, 2019

A group I’m part of is using Martha’s Rules for consensus-based decision making. It’s working pretty well, and I hope the summary below will be useful to other groups.

What I Would Organize (If I Still Organized Things)

Jun 7, 2019


We propose a three-day workshop to give people in open source, open science, and open education the skills they need to make change for the better.

What I Would Build (If I Still Wrote Software)

Jun 6, 2019

My previous two posts described things I would do (if I still did research) and what I would write (if I was smarter than I am). I also have a list of things I would build if I still wrote software:

ICER Acceptance

Jun 6, 2019

Paul Denny, Brett Becker, Michelle Craig, Piotr Banaszkiewicz, and I were very pleased to receive notice last week that ICER 2019 has accepted our paper exploring the questions people would most like computing education researchers to answer. To recap:

What I Would Write (If I Was Smarter Than I Am)

Jun 6, 2019

Yesterday I wrote about things I would do if I still did research, but they’re all less important than what I would write if I was smarter than I am. Most of the young programmers I know have only ever been exposed to one worldview: the toxic strain of neoliberal capitalism favored by venture capitalists and their gushing fans in the tech media. As inequality widens, as white nationalism comes roaring back on stage, as we do everything in our power to make climate change worse, and as companies like Twitter, Facebook, and Shopify tie themselves in ever-more-contorted knots to avoid taking responsibility for their actions, most programmers don’t have the intellectual tools needed to understand what’s gone wrong and how we might fix it. Why do gender and racial discrimination persist despite their economic inefficiency? Why do “flat” organizations make power imbalances worse rather than better? How does regulatory capture work? Why do Americans keep shooting one another? And why is Boris Johnson?

Things I Would Do (If I Still Did Research)

Jun 5, 2019

I never had the patience or diligence to be a good researcher, but I still have lots of questions that I would like answered.

Software Engineering Revisited

May 30, 2019

I am at the International Conference on Software Engineering for the first time in a decade. It’s been good to catch up with friends, but this fly-by has confirmed several things for me: