May 1, 2017

Bootcamp Prep: How I Prepared To Get Into A Coding Bootcamp Without Any Prior Experience

I figured perhaps others might care to know how I prepared to get into a top-rated intensive programming bootcamp.

Bootcamp Prep: How I Prepared To Get Into A Coding Bootcamp Without Any Prior Experience

Now that I've officially gotten into one of the most highly rated programming bootcamps in the US, I figured others might care to know how I prepared to pass the admissions test.

Please note that not all bootcamps have a coding challenge in their admissions process. Some programs are designed for people starting at square one with zero prior knowledge. However, I would like to suggest to you that you're wasting your time and money going to a bootcamp that starts you at square one. There are tons of free online resources that you can use to learn everything they'd teach in the first month. It makes no sense to pay tons of money to be taught the most basic aspects of programming and a programming language when all of that information is low hanging fruit freely or cheaply avaliable to you all over the internet. You should only pay the big bucks in order to get instruction and guidance on the more intermediate and advanced topics that you'd otherwise struggle to piece together on your own. There's only so much you can accomplish a three-month span. Why waste that time learning things you could learn on your own? Teach yourself the basics and go to a school that will take you from 60 to 100+mph rather than going somewhere that will only be able to take you from 0-60.

If you're convinced by this advice, then what I'm offering here is basically one way to prepare to get into a non-beginner bootcamp.

What I did was pretty straight forward: I studied and practiced JavaScript full-time for about a month. No HTML. No CSS. No jQuery. Just JavaScript. All day, every day, for a month (hence my cover photo ;). You could do another language. The point is to pick a programming language like Java, JavaScript, Ruby, C#, or whatever you think you're interested in, and get comfortable with it. I chose JavaScript because I was persuaded by the rationale provided by David Yang, a co-founder of Fullstack Academy, for why they decided to base their curriculum on fullstack JavaScript rather than teaching Ruby for back-end and JavaScript for front-end.

So here's what I did step by step, plus a little commentary:

Week 1: Codecademy

First I completed all of the lessons and exercises in Codecademy's Introduction to JavaScript course. Actually, the course I did was an older version of this course, so I can't really offer an opinion about the current state of the course.

Anyhow, this course was my first real introduction to programming in general and JavaScript in particular. It was my first exposure to variables, if/else statements, functions, arrays, for-loops, and so on.

The good part about this course and Codecademy in general is that it is designed to be approachable and accessible to absolute beginners with no prior knowledge. All of the exercises were pretty straight-forward and not too difficult. They don't want you to be overwhelmed by complexity or to get stuck and feel discouraged about your capability to learn programming.

The bad part about this course (and from what I've seen from other Codecademy courses) is that there is sometime too much hand-holding and not enough detail explaining concepts for you to really feel like you know what's going on or understand why the thing you wrote worked. I remember several instances where I managed to write code that passed the specifications allowing me to progress to the next problem, but I had no idea why what I wrote was correct. Usually it was because the answer was basically embedded in the instructions or in the examples, so I could figure out what I was supposed to write pretty easily, but I didn't know why that was right.

The value of this course is the non-threatening exposure you get to basic sytax, programming vocabulary, and concepts. However, it was so non-threatening that I found it's educational value to be pretty minimal. Nevertheless, this is where I started and certainly didn't hurt me to startd at such a basic level. If you don't know the difference between [] and {} in JavaScript, then this may very well be the course for you.

Week 2: Fullstack Academy's JavaScript Jumpstart

Honestly, if you're looking to learn JavaScript, I'd say start here.

After completing Codecademy's course on JavaScript, I managed to get a discount code for Fullstack Academy's JavaScript Jumpstart course (link further below), which is basically their equivalent to the Codecademy course. It's meant for absolute beginner's and therefore covers many of the same concepts and syntax. However I found this course to be of much greater educational value than the Codecademy course.

This course provided much of the detail that I felt was lacking in the previous course. The whole time, I felt like I was really learning fundamental programming concepts and understanding how JavaScript behaved. Also, the exercise problems were on point. They were challenging enough that you couldn't haphazardly solve them without understanding why your code worked, but they were also accessible enough that almost anyone could certainly solve them as long as you paid attention during the lesson video. I remember feeling very satisfied after solving each problem because it was genuinely challenging and I knew that by solving it, I had demonstrated that I had really understood the previous lesson.

My critiques of this course are pretty negligible. I remember there being a couple places where quality control definitely had room for improvement, e.g. the occasional ambiguity in the lesson or problem wording that made it more difficult to solve the problem. Other than that, the only other thing I would tell you is that while the instructor in the lesson videos may not be all that smooth in front of a camera (I doubt I'd be much better), the content of his lessons are gold. Very well done.

The Jumpstart course has now been incorporated into Fullstack Academy's new (and FREE!) Bootcamp Prep course, which was not available when I was preparing for the admissions test, so I can't say anything about the rest of the prep course. But I'm willing to bet it's excellent. I can't recommend JavaScript Jumpstart highly enough.

Weeks 3-4: Hack Reactor Prep

After completing Fullstack Academy's JavaScript Jumpstart course, I felt much more confident in my programming abilities and my interest in becoming a programmer. So I decided I needed to keep the momentum going and really make sure I was ready for a bootcamp experience. So I decided to do a bootcamp prep course. At the time, Fullstack Academy did not have the free, self-paced prep course that they now have available. So I decided to do Hack Reactor's prep course because I was also considering applying there. I'm fairly certain that Fullstack Academy's prep course is completely equivalent, so everything I say here can very likely apply to Fullstack's prep course as well.

This prep course was a beast, to say the least. It's advertised as containing about 90 hours of material with over 150 JavaScript exercises, and they assert that 85% of peopel who finish the premium version of the prep program and complete a technical interview will be admitted to Hack Reactor. The only difference between the free version and the premium version is that premium students get a lot more personal interaction and support from staff. I figured, if I can knock out the free version on my own in two weeks or so, then my chances of getting into Hack Reactor or a similar school will probably just as good if not better than their touted 85%. So that's what I did.

It was hard as crap, though–in a good way, of course. There were definitely points where I was honestly considering paying to get the premium support from instructors. Doing this course was probably the most exhilerating part of my journey to getting into Fullstack. It exposed me to more advance concepts in programming and the JavaScript language and provided an immense amount of opportunity to exercise and apply my understanding of new concepts. Every problem was a genuine challenge such that every time I solved one, I felt even more confident in my ability to keep improving as a programmer.

The course is divided into four modules, each getting progressively more difficult. The majority of the exercises are in the second module. This marathon of exercises is designed to help you know JavaScript basics cold, so that when you begin learning more advanced concepts, you won't even have think about how to implement basic parts of your code. The idea is that you don't want to have to stop and think about how you go about accessing each element in an array when you're trying to write a function that is meant to reduce the contents of the array to a single calculated value. You want to get to the point where you're so familiar with the basics that you're able to abstract them away in your mind and think about your code at a higher level or purpose.

The third module introduces you to concepts of test-driven development, writing good code, and provides more challenging exercises that reflect the kinds of questions you might face during the admissions interviews.

The fourth module is just a handful of more challenging problems to prepare you for doing similar problems during the admissions interview.

I really highly recommend doing this course (or Fullstack's) prior to applying to whatever bootcamp you're looking to get into. If you can get through it, you can be pretty certain that you have what it takes to succeed in an accelerated learning experience like Hack Reactor or Fullstack Academy.

One Month Is All It Takes

That's pretty much everything I did to prepare. After finishing Hack Reactor's prep course, I applied to Fullstack and managed to pass both of their coding assessments (they have two, in case you didn't know). I just spent all day, every day reading and doing coding exercises for about a month straight. I think doing it in such a consentrated way helped me advance more quickly in my understanding. I imagine that if I had tried to pace it more slowly, I'd end up wasting a lot of time having to review and refresh myself on things I had already covered. Because I never really took a break, I was able to continually and quickly build on what I had just learned the previous day. But I recognize that a lot of people probably can't afford to do that. If that's the case for you, just know up front that you may find the process to take a bit longer than you expect because you'll have to keep reviewing things.

Like I said, this is just how I managed to prepare to get into a good programming school. There are tons of resources out there, many of which may very well be better than the resources I used. The point is to start somewhere and go at it hard until you feel confident that you understand what you're doing and you're sure that you like doing it.

If you've found other resources helpful as you've prepared to get into a intensive programming school, share them in the commments to point others in the right direction!