I Hate Pair Programming; I Must Pair Program

Cartons of cold brew coffee from Blue Bottle
Pair programming at 5 pm? Better grab a couple of these.

I knew before coming to school that the Hackbright day leaned heavily on pair programming. During the first five weeks, days unfurl like this:

  • Lecture
  • Pair programming
  • Lunch
  • Lecture
  • Pair programming
  • Break
  • More pair programming
  • Profit? Or collapse onto BART. One of those.

I am told that it’s not a super common practice for tech companies, or at least not outside of training or special projects. But I know that people learn better if they have to learn, discuss, and then teach. I know that the general level of knowledge in the room rises if we have to work through problems together, combining what we know to make a greater, more effective whole. One of the reasons I decided to go to a school like this is that I have a well-documented tendency to read about how to make this loop or that data structure, nod to myself with some satisfaction, consider it learned, and move on.

That is a great way to learn some vocabulary terms; it is a piss-poor way to learn programming.

And it’s part of why I decided to go to school rather than going my usual autodidact way. I knew that, with the structure of school and the requirements of a major final project, I would have to read, digest, and then practice. I wouldn’t really learn anything otherwise. And that meant pair programming, with its constant verbalizing, sharing of knowledge, and immediate application of what we’d learned in lecture. Sounded great to me. Sign me up and tell me where to send the deposit.

I was right about every bit of it. Pair programming is a stellar communication tool, and, when paired with available expert help, it’s like having your own half-a-tutor. You learn things from them; you have to explain things to them. You really learn.

That said, I’m pretty excited to get to the second half of my program, because it means less pair programming and more time slogging through my project by myself. And it is absolutely not because of the people I’ve been paired with, who have all had good manners and and the good grace to teach me things.

I hate pair programming because I am a hard introvert with only so much social energy in a given day. The first week at Hackbright, I met about 40 new people, found myself in a new city where I have only two friends, and also had to talk through assignments with a near-stranger for close to four hours a day.

I’m surprised I didn’t actually melt into an Odo-like puddle in a bucket.

I’ve kvetched about this to my advisor. To friends. To fellow exhausted Hackbright students. And yet I’d never advise them to change this part of the curriculum, because I really can’t think of a different, better approach.

Instead, I’ve just dialed back how social I am. I have more lunches alone; I take quiet texting breaks. I don’t go out very much. And it’s a bummer, because I have access to 34 other aspiring software engineers, and so many of them are so very interesting.

But I can hear their life stories while I eat my reheated pizza, or I can have brain to solve programming problems. I can’t have both. So I retreat and read, and I use my social energy very carefully.

And I hate pair programming.

But I’m grateful for what it’s going to give me.

P.S. If you want some legitimately useful pair programming tips, cohort friend Noelle has some for you.

To Be a Gold-Plated Unicorn: From UX to Programming

A stuffed balloonicorn and cups of champagne
Part of week one’s social

Five days a week, I go to class with scientists and electrical engineers and nurses and artists and people from fields in between and beyond. People at Hackbright take a lot of different paths to get there, which is one of my favorite things about the people you meet at continuing ed programs: the people are always so varied and so dedicated. The common ground at Hackbright is the thematic stuff, and it usually goes as follows:

  1. The Hackbrighter wants to get paid.
  2. They want to be sought after by employers who want to pay them.
  3. They want to work on something that matters rather than feeling perpetually on the periphery.
  4. They’ve always had some kind of technical ability or affinity and would like to see where it could take them.

I’m no different. I came to Hackbright from a background of online content and, later, UX and usability; my last job, which I adored, was UX content strategist. I realized, though, that there was a force at work on my career, which I named the Inexorable Drift Toward Marketing. It’s inevitable: you can use words? You are good at explaining things? On the internet? Then the related jobs usually see you explaining things made by one third party so that someone from another third party can buy them. Unsurprisingly, the money is where the people that might buy things are.

Sometimes, buying things is helpful and necessary; sometimes, guiding people to buying the thing they need feels like a useful service to provide the world. But even though those moments exist, content is forever undervalued, the first thing cut from a budget, the element of a project brought in at the last minute, so easy to neglect (even though it is, genuinely, a crucial part of your website, your company’s brand and voice, or your system).

Separate of that, I’d come to realize that I might have an ability, an important one, that had never really been used: technology doesn’t scare me. Programming, with a reasonable amount of effort on my part, makes sense to me. And I’m a dogged troubleshooter who will pursue the thing until it works and works well, refining and redoing until it’s as it needs to be or slightly better.

It’s a quality that’s served me well as a writer, but it’s one that could take me further in a different field. And so, early this year, exhausted by a then-fruitless year-long job search, I applied to Hackbright. I took an intro to computer science class at Code Fellows back in Seattle, which was the last thing I needed to convince myself that I really-no-seriously was interested in this thing. Had I not made it into Hackbright (did you know about their acceptance rate? It is low), I would’ve pursued Python or iOS development there.

My former boss (and current friend) asked me how much more of a unicorn I needed to be. I said I wanted to be an eminently employable one. I can create a content strategy, write and interpret a survey, do interviews, create user journeys, make smart and effective editorial recommendations for companies large and small, originate and grow a company’s social media presence, rewrite a company’s entire website, create genuinely useful company documentation, establish a vocabulary for a niche industry, and host an industry meet-up. But I also want to be able to make the things that make the world run. I want to materialize my own awesome ideas. I want to fully participate in the world I’ve grown up in. And so I am here.

What’s next? I’ll write about why I chose single-gender education, something I never considered for high school or college. I’ll tell you about learning something like this in a ten-week program (which is, fortunately, not a boot camp). I’ll write about introvert overload and how programming somehow completely changes your metabolism. I’ll show you progress on my project, which I’ll be starting in earnest in a couple of weeks.

And I’ll write about my week-by-week experience, starting in week four, which I am just starting as I write this. I wanted to write sooner, but honestly, I was way too tired to start before now.

And, in the meantime, if you want a hyperarticulate, overly literate, UX-practicing junior Python dev for your team? Let’s talk; I’ll be available in September.