We spent the last couple of days of week 2 at Hack Reactor re-implementing underscore.js functions. It may seem like an odd and useless exercise, but I feel I've gotten some good things out of it.
I've just finished my first week of Hack Reactor, an intense program even in comparison to the other hacker schools. Our class runs from 9am to 8pm six days a week, but in honesty I was there until 11pm on most nights and I was never the last student to go. The students in our class come from a mix of backgrounds. Some have done CS degrees and others had virtually no technical background at all before getting in. In this week, we've learned how to use Jasmine for automated testing, we've slung jQuery to make front-end Twitter clones, we've implemented linked lists, queues, stacks, trees and hash tables, and meditated upon many JS koans. One thing that really helped make it possible was that the instructors signed us up for accounts at Code School and gave us some prep work to do before the first day of class.
Test Driven Development (TDD) is a development process that suggests we write tests before we write our code to ensure that the code works as expected. While I've often read blog pieces praising the benefits of TDD, today was the first time I've really had a chance to experience it for myself.
The first day was no disappointment. In fact my classmates were impressive enough that I felt just a bit of impostor syndrome. One thing that makes it especially interesting is that half the students in the school were just starting as I was, and half the students are in a cohort that is about half way through the program. That other cohort was shockingly capable! One of the first things we did was pair off with advanced students so they could demo their projects to us.
Since my arrival in San Francisco last summer, I've become aware of the new "hacker schools" popping up around the city. Their stated purpose is to take smart, motivated people who may or may not have a strong technical background and turn them into world-class junior developers in a short time.
The Starter League
The first school of this type that I ever heard of was Code Academy in Chicago (renamed as The Starter League due to name confusion after the online school Codecademy launched). Their system was pretty unique-- students spend 8 to 10 hours per day for 2 months, working in pairs as they learn a stunning amount of ruby, HTML/CSS/JS and Ruby on Rails. At the end of this time, they have an interview day in which they demo their projects to various tech companies, including some of the hottest local startups. The school has only been running since 2011, but results have been excellent and even DHH, the creator of Ruby on Rails, is a fan of the program.
SF Hacker Schools
In contrast with computer science degrees at universities, these schools have less of a focus on CS theory and more of a focus on building things. Students write a lot of code, and they use newer languages and frameworks. Another feature is heavy use of cutting edge tools and various automated testing frameworks that are commonly used in bay area start-ups, but not so common yet at larger, more traditional companies. Most striking to me is the intense nature of the study. No college I've ever seen puts students through 8 class hours of computing classes per day.
The bay area hacker schools remind me more of high-end intense language schools! There are a number of 6 hour per day intense language learning programs in which students work in pairs or small groups, work hard, and acquire a great deal of vocabulary, speaking skills and reading skills in a short time. In my experience learning mathematics as a teenager and then later learning Japanese and Chinese in my 20s, working at something 4 hours a day isn't just 4 times as good as 1 hour a day. It's probably closer to 10 times as good. So even before encountering any students of such programs, I was bullish about the idea. But when I did finally some students from App Academy and saw how much they had picked up in only a month of classes, I knew I had to join.
My quest to get in
They had only been in class for a month or so, and their class was free since they were the inaugural (i.e. guinea pig) class. In that short time, they had already picked up enough to start making some kind of fun iOS projects! Beyond that, I hung out with a bunch of them and played a cool board game called 7 Wonders or something like that. It was a fun group and they were genuinely excited about what they were learning. I had some background in iOS. Not fully aware of how rigid the program was, I bought a Macbook and started working on the materials they were using hoping I could get into the program in some way. I realized pretty quickly it wouldn't be possible, so I didn't press the issue. But I did ask the instructor what other materials they used and I applied for their next batch, which they said would be focused on web development with rails and importantly would only charge tuition for students successfully hired.
Next, I started learning all I could about similar programs, what it would take to get into them and how expensive they were. Unfortunately, for the most part, they're pretty expensive. Dev Bootcamp, for example, costs 12k. That's more than I spent on tuition for all of my B.A. at one of the better public universities! They're flooded with applicants and pretty difficult to get into, also.
When it came time for winter applications, I applied to multiple schools. I talked with former students to get as much of an idea what they were looking for. One of my major difficulties since coming back to the US has been much of what I accomplished in Asia (language learning, running a business in a foreign country, etc...) doesn't really translate into much social proof here. It's awesome for social settings, but in interviews or people evaluating my professional abilities, my background looks a bit meandering. So, I focused on my track record of learning hard things, my adaptability and my genuine interest in education. I think it went fairly well. I made it to the interview stage with 100% of my applications in which I followed this strategy.
The technical interview with App Academy on the other hand, was terrifying. I knew they were the only program I could afford, and my hopes were pinned on it. I started out pretty confident, but then the interviewer asked me the scariest possible question-- Fizzbuzz! Before he'd even finished explaining it, I felt my heart sink. Knowing how ridiculously high their applicant to student ratio was, with a question that easy I'd probably have to solve it as quickly as I could type. Who knows what else I'd be filtered on... language choice? Running correctly the first time? I decided to use ruby since that's what they use, and typed as quickly as I could, made a few errors, corrected them and ran my program through a fizzbuzz grader I just happened to have made a year earlier to ensure it was correct. For a moment the instructor thought I'd made an ordering mistake with the mod 3, mod 5 and mod 15 conditionals but then realized all was good and said as much, sounding pretty upbeat. What a relief! The rest of the interview was mostly questions about why I was interested, whether I'd be able to devote my full attention to the program, etc. I asked a few questions of my own and all seemed to go well.
But I didn't get in. That was rough. After having sought them out last summer, talking to the students of the first batch and clearly being so motivated it was a blow to get rejected. Worse yet, when I emailed back to see what I should work on to be a stronger candidate for their next batch, they told me I was out for six months. For someone in my financial/career state, six months was dream killing. All over a stupid fizzbuzz interview! Still, I have to say that Ned and Kush were incredibly kind, far beyond the call of duty. They gave me a good amount of feedback, and were helpful in a number of ways. I'm sure they were flooded with applicants, too. Ned even went so far as to offer to intro me to other schools whose owners or instructors he knew. Unfortunately, all of them had 10k+ tuition fees taken up front instead of after job placement like App Academy's system.
I went out every bank I could find in the city. I knew a loan wouldn't be easy since banks are big, slow-moving, conservative behemoths that would almost certainly have no loans for non-university schools that have only existed since 2011. The fact that I have essentially no US credit history for the last 10 years didn't make things any easier. I channeled everything I've learned about sales from my entrepreneurial experiences going back to the house-painting franchise I ran when I was 20. I found bankers who had heard of the new hacker schools and showed them statistics on previous graduation classes on my Macbook. They said no. It sucked, but I kept looking for more creative ways of funding the class I scraped together just enough. And I got in.
It was a thrilling moment. It's a little terrifying as well. This is my shot. It took a lot of tenacity to get it. I have 12 weeks to make the most of it, and it starts tomorrow.
I'll probably be way too busy to write in detail, but I'll be keeping a log of notes, study tactics and observations here. Expect to see projects showcased here as well.