Teach a Girl to Program (and a Programmer to Teach)

Teach a Girl to Program (and a Programmer to Teach)

For five 16-year-olds, a crash course in JavaScript. For me, a crash course in giving crash courses.


It started with a Slack message. A colleague of mine, Christine, had heard about an organization called Technovation. Based in San Francisco but with hundreds of 10–18-year-old participants in dozens of countries, Technovation is a competition in which young women build a startup and a mobile app over the course of several months with the guidance of female technologists. This year, the Montreal organizers were seeking companies in the local startup community to mentor teams. Would we be willing to take on a team at
Breather?

True to startup form, we arrived at a decision quickly and that decision was 👍. I pinged Christine to let her know I’d love to help: I had mentored before at a few Ladies Learning Code workshops and was excited at the prospect of coaching a team of young women. Ever the daughter of a high school teacher and a programmer by day, I thought it would be challenging but fun in the way a really good Sudoku puzzle is.


A simple explanation of icon fonts quickly devolves into a primer on minification. Day zero.

On October 24 and 25, 2015, a few dozen young women gathered at Montreal’s La Gare for Technovation’s kickoff hackathon. The students were given a primer on the program’s curriculum (which we wound up mostly ignoring). Then students and mentors were matched up in the afternoon when the work began in earnest. Eventually Christine and I were paired up with five 16-year-olds from Pensionnat du St Nom de Marie, an all-girls school in Montreal’s Outremont neighbourhood.


One of many weekend work sessions at Breather HQ

The students had to choose a problem domain right away — they could change it later on — but our team quickly decided on building a tool to aid in the process of finding internships or jobs for teenagers, a time when they’re beginning to make important decisions about pursuing a career they may or may not have already identified. As part of secondaire 4 and 5 (grades 11 and 12), students at their high school were beginning to search for part-time positions. The whole process left something to be desired: most students found placements through their parents’ professional networks, which limited the kinds of careers they were exposed to.

One of the first exercises our team completed came from Google’s design sprint methodology: the girls were tasked with quickly and independently sketching the six primary screens of their app-to-be. When the timer buzzed, the girls glanced around at each other’s pages. To their amazement, they had all drawn more or less the same screens: a search view with a list of results, a map with pins for local establishments that are hiring, a user profile page, and so on. This came as a pleasant surprise, if not a relief; for a brief moment, their problem seemed to have a straightforward solution. Think Instagram for jobs.


Christine and the team wireframing at Sid Lee

Our students could identify the problem because they observed its effects every day — a stunning 74% of 100 surveyed classmates answered “Yes” to the question “Is it stressful to think about your future career?” — but Christine and I could see the challenges in a software solution based on our own experiences navigating career paths. Finding the job you’re best suited for is a kind of chicken and egg problem: a young person is more likely to express interest in careers that fit the set of skills/strengths she’s developed, but she’s likely honed those skills/strengths with a short list of potential careers in mind. Sixteen year old me would be shocked that I wound up a developer mostly because I didn’t have a clue what being a developer entailed at that age.

For a long time, I thought of programming as a job that is in many ways the exact inverse of teaching. The marginal cost of a piece of software (the cost of every additional copy) approaches zero, so software products can grow to an almost inconceivable scale quickly. With over 1 billion users, Facebook’s continued expansion is largely constrained by the number of humans on earth with access to the internet (hence Facebook’s internet-beaming drones). Software’s reach is broad, but thin and ephemeral, I thought. Teaching, in its current state, doesn’t scale in the same way, but the affects of a talented educator can be as far-reaching.

Take Ms. Mabel Hefty. A fifth grade teacher at Punahou School in Honolulu in the 1970s, Ms. Hefty probably taught a few hundred students in her career. One of them happened to be a young man named Barack Obama, who says she was the first person who taught him that he had something to say. If scale is a proxy for impact, Ms. Hefty’s rivals Facebook’s.

Tech companies often talk about nurturing relationships with “users”, but the word itself is revealing. If I deploy a bug to production, I never have to watch a user’s face twist in frustration as she struggles to accomplish a simple task. But when I occasionally mangled the explanation of some technical concept and reflexively asked our students “Does that make sense?”, I had to look on in mild horror as five young people turned my poorly-chosen words over in their heads, vaguely pained and confused. Teaching is not Sudoku. It’s more like stand-up comedy with higher stakes, where your performance is evaluated every 30 seconds and your score conveyed via the facial expressions of smart, ambitious young people you want nothing more than to help succeed as much as you humanly can.


Teaching our students how to use Slack the way real startups do

Thankfully, I’m no stranger to feeling completely out of my element. Fumbling my way through my first few lessons felt strangely reminiscent of learning how to program: I had no idea what I was doing but I knew I’d figure it out. I didn’t study computer science or education. I studied philosophy, but early on in the mentoring process I knew with a weirdly visceral certainty that I was the perfect person to be giving five 16-year-olds a crash course in JavaScript’s primitive data types.

The night before our first lesson on git, a version control system used to develop software, I spent four hours obsessively crafting emoji-littered slides that answered all of the questions I was too self-conscious to ask in my earliest programming days. Is there a difference between git and GitHub? How do you combine branches once you’re done building a feature? And what exactly is a branch?


How 2 teach?

Armed with my deck, a carefully prepared exercise set up in its own repository and a blindingly irrational confidence in my ability to convey the particulars of a complex decade-old version control system in under two hours, I was as (un)prepared as I’d ever be. I began the lesson with a brief preface: I told the girls that just as much as this was their first time learning git, it would be my first time teaching anyone about git! How cool is it that we’re all in this together? Oddly, this did not seem to instil confidence in the girls. In the moment I was convinced I was assuaging their fears, but, in retrospect, I was drawing attention to my own.


Mid-git lesson #1. I am saying words and people are learning things (!)

Once the lesson was underway, and much to my relief, the girls dug into the material without hesitation. Not having many pedagogical tools at my disposal, I knew the most important thing was to remove any fear of asking the wrong question, trying the wrong approach, committing the wrong code. Learning in an environment where you feel completely comfortable making mistakes is important for reasons beyond the happiness and well-being of students. In startup speak, “failing fast” creates the shortest possible feedback loop, allowing you to adjust and improve with every successive attempt. In retrospect, the how of Technovation, the way we learned and worked as a team, was probably as critical as the content of the curriculum. Learning (and building!) through iterative processes allows for faster progress. Done is better than perfect.

And it wasn’t just in the programming portion that we embraced this approach. In order to test certain assumptions the girls were making about how best to solve their problem, Christine had the idea of having them implement a “concierge” version of their idea before writing a line of code. Our team went through the motions of manually helping a few classmates land internships and realized it was actually way less straightforward than they’d imagined. Even when they were able to make warm introductions to professionals in fields their classmates were interested in, students were daunted at the prospect of reaching out to an adult they didn’t know.

A large portion of the six months of Techovation were spent this way: survey, test, interview, repeat. Much credit is due to Marilyne Lespérance, a science teacher at Pensionnat, who met with the students in between our weekly meetings at Breather to help facilitate this work. After testing our ideas, we realized the importance of two things: 1) that students have the opportunity to interact with professionals of diverse backgrounds, and 2) that students feel comfortable communicating on the platform. The solution our students arrived at was a network at the high school level where alumni are organized by industry and students are prompted with helpful conversation starters when they’d like to interact with a professional. Technically, it’s a responsive web app built with Meteor (here’s the source code).

Future Now’s final pitch video

A screencast demo of their MVP (minimum viable product)

This was maybe the most exciting takeaway of Technovation: as programming becomes a tool more and more people use to create, the kinds of software being made will naturally diversify. As our team learned, some of the hardest problems in software are in understanding the needs and aspirations of those you hope to serve.


Most people I spoke with about Technovation over the past nine months assumed its goal is to encourage more young women to pursue careers in technology and entrepreneurship. Our team was interviewed by reporters several times — once by Radio-Canada, for example — and the question of career path was a common one. Did they now suddenly have dreams of going into tech? Each time our students politely answered, “Well… maybe.” They’re interested in all kinds of things, from medicine to law to the arts. It’s hard to say for sure when you’re 16.


Talkin’ tech at Google Montreal

The more often adults asked the career question, though, the more I realized it’s beside the point. As much as I know that increasing the proportion of women in tech is intrinsically valuable and important, I don’t actually have any vested interest in these five smart young women becoming programmers or entrepreneurs. What I do have a vested interest in is that they feel empowered to solve problems they deem interesting and worthy of their time. Because that is in all of our interests. In that way, Technovation isn’t really about technology or innovation at all: it’s about teaching young people (and reminding adults) of the importance of setting your sights on a wildly ambitious objective even, or maybe especially, when the path to achieving it is obscured and unclear. You might not know how you’re going to get there, but you’re sure you’re going to figure it out.

And who’s to say: when I was their age, I was convinced I was going to study law, maybe work in politics. Even when we think we know exactly how things will turn out, we rarely do.


The gang 🚀

Many thanks to Christine for that first fateful Slack message and for being the very best co-mentor, to Josh for all his help and to the whole team at Breather for their support. Thanks to Sacha, Christine, Martina, and Luca for reading drafts of this post.


Teaching a class? Putting on a workshop? We can help with that.


Related articles

Lorem ipsum

Lorem ipsum