Catching Up


I haven’t programmed my whole life. I’ve barely programmed for over a year, and much of 2012 was spent learning bare-bones things like programming concepts, the syntax of particular languages, and constructing mental models of how web stuff works (e.g. MVC, the client/server relationship, Git). Looking back, I’ve actually learned a ton over the past eighteen months, but at the same time, I can’t help feeling “behind.”

Last September, it took me half an hour to get my first C program to compile. (I think it was something like this.) When I finally got it to work, I (very excitedly) showed it to one of my colleagues, who is also a good friend and awesome engineer. “That’s great!” He said. “That took me, like, two weeks to do when I first started learning C.” True enough, but he first learned to compile a C program when he was nine years old, and here I was bumbling through it at twenty-six.

I mentioned this to my friend, and while he admitted that I had my work cut out for me, he pointed out that if I could keep doing things in half an hour that it would have taken a nine-year-old version of me two weeks to do, then I could effectively “catch up”—both to myself and to friends, colleagues, and competitors in the workforce to whom I’d inevitably be compared for interviews, promotions, and so on. Sure, my experience wouldn’t be the same as if I’d written code my whole life and studied computer science in college, but there’s no reason I couldn’t backfill the vast majority of my missing knowledge with a bit of hard work and determination. So that’s exactly what I’ve decided to do.

To that end, I chose to leave my job at the end of May in order to join the summer 2013 batch at Hacker School. (Now the Recurse Center. — Ed.) While I originally wondered whether the lack of structure would work for me—I think I did well during my MFA because I was working full-time and forced myself to make the most of the time available to me—I’ve since decided that attending Hacker School was absolutely the right call for a few reasons.

I’ll be held accountable for writing and pushing code every day. There are few better motivators than being accountable to someone (or seventy someones!) else, and I firmly believe there’s no better way to learn something than by doing it. Which leads me to my next point:

I’ll have a ton of time and resources to spend exclusively on improving my ability as a programmer. Even if I were lucky enough to be working full-time as a software developer right now, I wouldn’t have the access to resources (facilitators, speakers/residents, fellow students, books) or straight-up free time to pursue projects that would make me a better programmer. Yes, I’d learn a lot about a specific tech stack or methodology and would, I think, become very good at those particular technologies/ways of doing things. But I want to become the strongest developer I can as quickly as I can, and Hacker School is the best way for me to do that.

Not only that, but with set hours, meetups, presentations, specialized groups (e.g. learning math, reading papers), and so on, I don’t think I’ll have to look hard to find the kind of structure that will help me operate at 100%. And on the topic of 100%…

I can focus 100% on learning. Shipping is great, but it’s a means to an end: learning and improving. As a professional developer, these would be reversed—I’d learn as a result of shipping. As excited as I am to complete my transition into full-time development work later this year, right now I’m most interested in learning, learning, learning.

I’ll be surrounded by smart, motivated, enthusiastic people who want to become better programmers as much as I do. Not surprisingly, the people you spend time with greatly affect your personal success, and collaborating and (good-naturedly) competing with all the awesome and talented people at Hacker School will push me to work and learn more effectively than I possibly could on my own.

I’m truly lucky to have this opportunity and am amazingly thankful to Hacker School and its community for everything I’m going to learn (and have already begun to learn) this batch. Here’s to a great summer!