This post is twofold. First up will be my long overdue review of Hack Reactor, and after that I'll share a few of the many lessons I learned while hunting for a job in Silicon Valley.
Was Hack Reactor worth it?
Short answer: Yes.
Long answer: For me, yes, it turned out to be worth it. What Hack Reactor promises, it delivers. When I speak of promises, I'm referring to the fine print of the student agreement, in which you pay $17,780 in exchange for a crash course in JavaScript plus job search training.
On both points, Hack Reactor absolutely excels. The software development curriculum is top-notch. I learned so much and so quickly that it felt like I was downloading information into my brain, which was pretty awesome.
How does Hack Reactor help people to learn so quickly? Different people will give different answers to this question. Some might say the lectures. Others might say the projects. For me, the crucial part of the learning experience was, unquestionably, the opportunity to interact with my remarkable classmates. My cohort was full of kind, brilliant people who encouraged and inspired me to be a better programmer. I learned a ton from working through problems with them, both in my pair programming assignments and in my group projects.
Because of my classmates, the 700-plus hours I spent in that concrete tower with the broken elevators at the southeast corner of the Tenderloin were not just tolerable. They were fun.
People often question the hiring statistics on the Hack Reactor website. I don't blame them; it seems ludicrous to suggest that fledgling programmers with no CS background or prior work experience could land six-figure salaries after three months at a for-profit bootcamp.
Now that I'm on the other side, it all makes sense. Most Hack Reactor grads end up in the Bay Area, which is flush with tech jobs and where the average going rate for software engineers is on the lower end of six figures. Hack Reactor also expends great effort on crafting and culling their student body. The program selects for students who have already demonstrated a certain level of proficiency in coding and trains those students in strictly practical matters: full-stack JavaScript, MVC frameworks, databases, version control, and those pesky algorithms questions that come up in technical interviews. We did toy problems, whiteboarding sessions, and mock interviews, all of which proved useful during my job search.
Hack Reactor also trained us to treat job searching as a job in itself, and to take it seriously, but not personally. We were encouraged to apply to five jobs every day and keep up with our toy problems.
I confess I did neither of those. But I did apply to 50+ companies total, and there was a memorable two-week period during which I had onsite interviews nearly every day. After a while, I finally understood what people mean when they say job searching is a numbers game.
Thoughts on the job search
It was more difficult than Hack Reactor.
Then again, I have a terrible aversion to unemployment. I also have bad memories of my previous job search, back in 2010, when I graduated into the recession with a useless degree and no marketable skills. At that time, I did a total of one phone screen and three onsite interviews, all spaced at least a week apart, and immediately took the one and only offer I received.
This job search was much, much better. In summary: looking for a job as a front-end engineer in the Bay Area in 2015 was a lot easier than looking for a job as an entry-level sales/marketing/administrative assistant in Los Angeles in 2010, but it was still very difficult. Some of the things I learned:
You're interviewing the company as much as the company is interviewing you
Both you and the company are evaluating each other to see whether there's a good fit. I was looking for companies that showed interest in me beyond my ability to code.
Because of that, I could always tell within the first five minutes how the interview would turn out. Some interviewers started by asking about my background, which made me more interested in those companies. Others started by asking me programming questions, which indicated to me that they didn't really care who I was as long as I could code, and those interviews quickly went south. There were no surprises.
Soft skills are just as important as technical skills
The technical interview process is more than just Cracking the Coding Interview. Being able to build rapport with an interviewer is critical. Interviewers want to see that you're someone they can get along with and would want to work with. And some companies, particularly startups, place an even higher premium on soft skills than on technical skills.
Caveat: possible confirmation bias. Maybe I just happened to fail all the interviews that were 100% technical. I also only applied for front-end positions, which generally have an easier (for me) interview process.
Narratives matter
I spent a long time crafting my narrative. Four and a half years to be exact. Remember that one offer I received in 2010? It was for a business development internship paying fifty cents above minimum wage.
Nowadays when I tell people that, they reel in shock. Minimum wage! Well, sure, why not? I wasn't entitled to anything. Back then, my narrative was weak. Practically nonexistent. I was a fresh college graduate with no real work experience, who had decided, in a mystifying twist, not to pursue a career in the field she'd spent four years studying.
I knew I just needed to start working as soon as possible. So I took the offer, and it turned out to be one of the best decisions I've ever made. That company gave me so many opportunities to be so many different people: a salesperson, an administrative assistant, a receptionist, a marketer, a customer service representative, an account manager, an internship program coordinator, a copywriter, a designer, and finally, a front-end developer.
Everyone has a strong narrative inside of them; it's just a matter of storytelling. Frame your background in a way that helps employers to see that the next logical step in your narrative would be working for them.
Job search support is essential
Looking for a job is a degrading and stressful experience. Mine would have been much worse if it weren't for the support of my friends at Hack Reactor. During the first couple of weeks of my search, I complained to a friend that while I'd had a bunch of phone screens and remote technical interviews, I hadn't yet had any onsites. He told me to stop whining and start actively applying for jobs on AngelList. It was the best advice I received during the process. Following that advice led to a flurry of onsites, which in turn yielded good results.
AngelList is awesome
AngelList introduced me to a ton of interesting startups. If you're on the hunt for a software job, make sure you've created a candidate profile and set it to actively looking!
Failing an interview is not the end of the world
The interviews I failed prepared me for the interviews I didn't fail. After a while, I became quite comfortable with rejection. In fact, one day I reached out to so many companies on AngelList that I ended up getting rejection letters from companies I didn't even remember applying to. Some of those companies are still sending me rejection letters!
Rejection can be personal, but it's best not to take it personally. As I mentioned above, interviewing is a mutual process. Companies reject candidates for all sorts of reasons.
Employers will read your blog
(very meta, I know)
Multiple employers referenced specific posts on my blog during my interviews. The Degrees of Pynchon post came up most often, followed by the one on my decision to go to Hack Reactor and my review of the functional programming class I took last year. I only wish I'd taken the time to post about the three group projects I did at Hack Reactor. I still have a lot to say about those projects, so maybe I'll write about them soon!
Being different can be a good thing
The stereotypical -- and some might say "ideal" -- software engineer is male and holds a degree in computer science from a top engineering school. I'm a woman who didn't learn to code until long after college, and I was fully prepared to be discriminated against during the job search for these reasons. But I was pleasantly surprised.
For years, I've lamented what I studied in college (architecture), which continually tops lists of majors with the highest unemployment rate. In 2010, it was difficult to prove in interviews that I could work hard and excel at jobs that had nothing to do with my major.
Architecture came up much less frequently during my last job search. Most Hack Reactor grads have an unusual trajectory, so no one expected me to have a CS degree. I'm also five years out of college, so my work experience has finally trumped where I went to school and what I studied. During my interviews, an interesting pattern emerged: not only did employers not mind my lack of a CS degree; some of them liked the fact that I'd studied architecture and even reached out to me because of it.
Again, possible caveat: front-end engineers are often expected to have design skills, or at least an appreciation for design. I assume employers would prefer to hire CS majors for backend positions if possible.
One of my former housemates asked me if I felt employers discriminated me in the job search because I'm a woman. I'm happy to say that the answer is, on the whole, no. If anything, I suspect the scales were tipped slightly in my favor because of my gender. Female software engineers are still unfortunately rare, so I imagine it was easier for employers to remember me. (I'll refrain from further speculation, as it would feed into my impostor syndrome to believe that employers deliberately recruited me to fill diversity quotas, or that they held me to a lower technical standard than they did for male candidates.)
But wait, there's more!
I wrote the bulk of this post in June 2015, right after I started my new job. I still stand by everything I wrote above, but with one clarification. I realize I may have given the impression that being a smooth talker and keeping a blog will make up for a lack of technical ability, which is absolutely not true.
During the past few months, I've switched over to the other side of the technical interview process. While evaluating 20+ candidates for front-end positions at my company, I've found that the most successful candidates possess strong technical skills as well as strong soft skills. (Big surprise there!)