I'm going to Hack Reactor next week!
Hack Reactor is a programming bootcamp -- the most intense of its kind, at eleven hours a day, six days a week, for twelve weeks. Pretty much everyone I've mentioned it to has recoiled in horror, imagining what it would be like to spend so much time cooped up in front of a screen. Yeah, I know. It sounds terrible. It might even sound nonsensical. But here I am anyway: packing my bags, preparing to fly to San Francisco in a few days, and writing about the program that will take over my life for the next three months.
Last August I happened upon A List Apart during work hours, likely in search of CSS help. I'm sure I found what I was looking for, but what caught my eye was an ad for Hack Reactor. Twelve-week immersive programming bootcamp! Six-figure average starting salary! It seemed too good to be true.
The only programming bootcamp I'd heard of was General Assembly's Web Development Immersive, which had briefly interested me until I lucked into a front-end development role at my company back in 2013. I'd even taken a couple of General Assembly classes -- Intro to Data Science and Analysis (at their Santa Monica campus) and Optimizing Landing Pages for Conversion (online) -- neither of which had impressed me.
But Hack Reactor looked like a completely different species of bootcamp. It looked like something I needed.
Many people have questioned why I would need a bootcamp when I already have a career in web development. So I feel compelled to explain my reasoning here.
I may not be a novice programmer, but I learned to code recently enough that I remember what it was like to be a novice programmer and how much I struggled to even get to that point. I'm a late bloomer: after years of grappling with for loops and other basic concepts, I finally managed to make sense of programming at the ripe old age of 23. (In fact, I was weeks, maybe even days, away from 24 at that point.) The book that did it for me is Natural Language Processing with Python -- a truly wonderful read, if you're more inclined to language than math, as I am.
Learning to code was a terrific, frustrating, enlightening experience. When I realized I could solve problems in Python, I was shocked. People had told me that it was impossible to learn to code after a certain age, that developers had an "innate ability" that I didn't have. (By the way, if anyone ever says such complete and utter bullshit to you, you must prove them wrong.)
Soon after I taught myself basic Python, I offered to build a WordPress theme for a project at work, through which I picked up jQuery and a tiny bit of PHP. Within half a year, the company decided to move me from the business team to the development team; from there, I learned a ton on the job and eventually served as the sole front-end developer and designer. By August 2014, when that Hack Reactor ad showed up on my work computer, I had more than a passing familiarity with JavaScript. I wrote it almost daily. I'd used AngularJS for three different projects. And if you'd asked me, I would have told you, yes, I know how to code...
...while a dark, ever-evolving nugget of truth blossomed in the back of my mind, containing my lack of knowledge of closures, compilers, systems, dependency injection, Big-O notation, hash tables, pointers, concurrency, multithreading, inheritance, and everything else that differentiated a computer science prodigy from clueless, fumbling me. There were countless times when I honestly had no idea what I was doing. I flailed around in the darkness, fashioning solutions out of bits and pieces of StackOverflow answers. Programming was like magic to me. I had vague notions of why things worked out in the end -- but only vague, and only notions.
Before you start thinking I've got impostor syndrome, let me bring up this post, which Hack Reactor recommended. I don't identify with this mindset at all. For one, I actually am an impostor. And second, I actually don't have a background in computer science or anything related to it. Unlike the author, I didn't take programming classes in high school, didn't study CS/CE in college, never cofounded a software startup, and never worked for a tech giant.
Here's my history with computers prior to the age of 23. When I was eleven, I fell in love with the Geocities-era web and taught myself HTML and CSS. But I had no interest in programming whatsoever. In high school, I was convinced that I would be a novelist (that didn't pan out). In college, I was convinced that I would be an architect (that didn't pan out either), and I was the most Luddite architecture major you could imagine. When our professors told us to use Photoshop, I stuck with Microsoft Paint; when I saw my classmates saving time by using the AutoCAD command line, I turned up my nose. I produced hand drawings whenever possible. I put off learning Rhino, the school-sanctioned 3D drawing program, until mere days leading up to my final review. And my 3D renderings were wretched: oddly colored, unrealistic, physically unsound boxes. Needless to say, I had no future as an architect.
When I graduated at 21, I had a strange epiphany that I would make my living off computers. What's even stranger is that it turned out to be true. But I still haven't shaken off the Luddite cloak, which is ultimately why I decided to apply to Hack Reactor.
After seeing the Smashing Magazine ad, I researched all the programming bootcamps I could find. I immediately ruled out the ones that taught Ruby on Rails (which, by the way, is nearly all of them). Eventually I settled on two: Hack Reactor, my first choice by a long shot, and MakerSquare, as a backup. Hack Reactor appealed to me because of its laser focus on one language, JavaScript, and its intensity.
The MakerSquare interview came first. They stood me up. The admissions coordinator scheduled another interview, but alas, no one showed up to that one, either. How ridiculously unprofessional! So I canceled my application. (The funny part is that Hack Reactor recently acquired MakerSquare.)
When my Hack Reactor interview rolled around, at 10 a.m. on a bleak September Saturday, I was pessimistic. I downloaded Skype onto my computer about half an hour before the interview. The last time I'd used Skype was in 2011 or so, and I'd never used it for video calls. At 9:50, my interviewer messaged me, saying that he would begin the interview soon. Around that time, I checked the calendar confirmation email, and that's when I realized it would be a technical interview.
That's right. I confess to having done zero preparation whatsoever for my Hack Reactor interview. DO NOT DO THIS. It was a dreadful mistake on my part, and the only reason I managed to cope with coding in real-time on a Google Doc with zero prep was because I'd been writing JavaScript nearly every day for over a year at that point. I was nervous as hell. Fortunately, my interviewer was really cool. He gave me plenty of hints and encouraged me to talk through my thought process. Thanks to his help, I managed to complete the functions he asked me to write, but I came away feeling like I'd bombed the interview. He told me I would hear back within a week.
Two days later, I got to work, fired up my email, and what did I find? An enrollment agreement and acceptance letter from Hack Reactor. I checked the email headers and freaked out. They'd sent the decision to me within three hours of the end of my interview; I simply hadn't seen it because my application was tied to my GitHub account, which was in turn tied to my work email address.
I wrote back to the HR admission team. I deluged them with questions. I connected with HR alumni on LinkedIn and deluged them with questions. I pushed back my start date from December 8, the cohort I'd applied for, to February 2. I sat on the enrollment agreement for a couple of months.
Then I decided to go.
Hack Reactor used to devote the first two weeks of the course to JavaScript fundamentals. Now they require students to complete a separate precourse curriculum, ensuring that everyone possesses a certain level of JavaScript knowledge before starting the program. I'm under oath not to reveal details about the precourse work, but, as other bloggers have mentioned, it involves cloning a popular functional JavaScript library as well as the front-end of a popular social media site.
My advice for the precourse work? Complete it as soon as possible so you don't have to worry about it. The estimated amount of time is 50-80 hours. I'm pretty sure I completed the precourse work in fewer hours than that, but I also rushed through it to make time for the edX functional programming class I mentioned in my last entry. Looking back, I'm happy I stayed with the functional programming class, as it sharpened my brain and made the precourse work look quite simple by comparison. But I'm not sure I would recommend doing this, especially around the holidays. It was stressful.
Deciding to attend Hack Reactor isn't like deciding to go to college, or deciding to accept a job offer. It's an expensive, unaccredited program, and people will wonder if it's a scam when you tell them about it.
Career-wise, it's probably the most difficult decision I've ever made. To be honest, I'm still not sure it's the right choice, but all I can really do at this point is look forward to the future. I'm beyond excited. Plus, Hack Reactor encourages blogging, so I'll be posting here more frequently!