Hi, there! If you're reading this, then you’re likely to be one or more of the following:
- A coding-bootcamp applicant looking for some insights
- A prospective student hunting for more info about Hack Reactor’s application process
- Preparing for your Hack Reactor interview
- Freaking out post-interview and reading student blogs because what's taking them so long to decide is this normal?!
Don't worry, I've been there! Throughout my application process, student blogs helped me out a lot. Hopefully, this will be helpful for you. If you have any questions, I'll be happy to answer as best I can.
I'll be writing about why I picked Hack Reactor, my application experience for Hack Reactor (rejection included), my studying process - complete with the resources I found most helpful - and finally, my interview experience.
Warning: I will use a lot of bulleted lists for the sake of clarity. Speaking of which, here's a bulleted list of links for easy navigation:
Skip To The Good Parts
- Part 1: Why Hack Reactor?
- Part 2: The First Attempt + Lessons Learned From Failure
- Part 3: Resourceful Preparation - A JS Study Guide
- Part 4: The Interview, or How I Stopped Worrying and Learned to Love the Stress
Part 1: Why Hack Reactor?
When I first decided to switch gears and try my hand at programming, I knew that I wanted to go all in. Even though I looked up and applied for a few other bootcamps - namely App Academy and Fullstack Academy - my heart was set on Hack Reactor from the start. My experiences and interactions with other bootcamps reaffirmed this decision. Everything I learned about and heard about Hack Reactor coincided with what I wanted out of my experience. Ultimately, it boiled down to a few key things:
- Philosophy and Environment
- I wanted an environment where I would be surrounded by the most dedicated, determined learners and teachers. Hack Reactor's website immediately states their commitment 'to excellence and iterative improvement'. I liked how proactive they were/are in helping the community, supported their mission, and liked their approach. Since my first interview, they've been a huge part of the TechHire initiative, acquired MakerSquare, launched Telegraph Academy and probably more.
- Everything from the way they dealt with (difficult) questions, their program structure and info, and their application process was streamlined, well-designed and professional. (I had an experience where the founder of a bootcamp was 20 - 45 mins late and rescheduled my interview not once, but three times.)
- All of the possible information and statistics you could possibly want to know about their bootcamp (and then some) can be found on Quora, their blog, and their website. My interactions with them also reflected their openness. No hidden stuff.
- As you've probably seen, their alumni and instructors are super active on Quora, extremely supportive of prospective students and very vocal about their experience at Hack Reactor. Good sign.
- Attitude and investment towards students
- While I've linked to enough Quora answers, this is something I experienced through my interactions with Admissions even before I got accepted. In fact, their rejection letter was what truly cemented for me that I had made the right decision. They were supportive, encouraging, and constructive. The team is clearly invested in their prospective students' learning. More on this in Part 2.
- CS Fundamentals
- Last, but probably one of the most important, they teach computer science fundamentals (like data structures and algorithms) and teach you how to think, work, and solve like an engineer. As a total newbie to programming, this was a must for me.
There you have it. With all these reasons in hand, I decided that I would do whatever it took to get into Hack Reactor. Of course, this happened over a period of time. I had a lot left to learn.
Part 2: The First Attempt
And Lessons Learned From Failure
The first month or so of learning how to code was both encouraging and confusing. While I seemed to be breezing through the Codecademy courses, it seemed to me that I still didn't know what I was doing. Or more accurately, I didn't know how much I'd learned and how much I actually did not know. If you've been learning by your onesies and at home like I was, you might have had the same problem. While beginner resources are plentiful, there is this huge gap between 'start-from-zero' to 'understand-articles-I'm-reading'. A huge part of this is that syntax ≠ algorithmic thinking, which I would later learn.
Hack Reactor encourages their applicants to apply if they're unsure of their level. The first step is to pass their admissions challenge. The challenge requires knowledge of JS syntax and consists of basically filling in your details in object notation and sending it over to them. Pretty cool.
So after going through Codecademy's JS course, I decided to attempt the admissions challenge and passed it. Bolstered by this success, I immediately scheduled my interview for two - weeks later. I panicked, I studied a lot, I had a sinking feeling that I would not get in (spoiler: I was totally right), but I did it anyway. My reasoning was that it would give me a better idea of Hack Reactor by actually interacting with them, and also help me figure out where I was in my learning. It ended up being an experience that would propel my efforts over the next few months.
The RejectionAbout five days after my interview, I got an email saying that I was rejected. I would've been devastated, but the email was the most constructive and helpful email I'd gotten probably ever. In fact, it was what made me decide to abandon my applications for other bootcamps and only aim for Hack Reactor.
In the email, they explained that they were worried that I would not be able to keep up and encouraged me to work on certain things, listing resources for my benefit. They also cut down the reapplication waiting period for me down to 1 month, stating that that was the minimum amount of time they felt I needed to work on my programming. Finally, they gave me an assignment - to build something, anything I wanted, and send them my code. They would evaluate the code to see how much I'd grown, and then from there decide whether I was ready for another interview.
Even though I failed to get in that round, it gave me a sense of where I was and the chance to really get deeper into my learning. Stuff I learned:
- Don't rush to schedule the interview
- Unless you're fine with the re-application waiting period. There's a 3-month wait between application attempts, for good reasons. If you can't afford to wait, don't rush. If you're not in any rush though, it's a good diagnostic and you also have a chance to...
- Get to know them
- This is your chance to make sure you know what you're getting into. The interview is not just about how talented a programmer you are. Ultimately, it's a school, and you want to make sure you can work and learn well with the people who make up the community. The interviewers are all previous students, so they're the best people to field your questions. I knew the day before my interview that I wasn't ready, so I decided to use the interview as a way to get a feel for them and ask them a buttload of questions about the program.
- Communication is key
- Hack Reactor makes it a point not to ask about your educational background and/or accolades. Or rather, it doesn't matter to them. What matters is your openness, willingness to learn, and attitude in pursuing knowledge. What this means is that while your grasp of JS is important, so is your ability to communicate and ask questions while you're working. Get used to pseudocoding, thinking out loud when you get stuck, and asking questions.
- Don't give up
- It's not the end of the world if you don't get in - most Hack Reactor students (from what I hear) get in on the second try. It's more important that you want to learn and will keep going! If it's what you want to do, don't give up. Giving up is basically deciding to fail. The only think you risk by continuing to try is the chance of success.
It took me a long time to reapply. Longer than a month. Most of this was because I was stumped on the project. I didn't know where to begin.
Part 3: Resourceful Preparation
While some people prefer to work only through one thing, I found a few resources I liked and used them to build on each other.
- Programming vs computer science - What is an algorithm?
- Basic Terminology and Data Structures
- Control Flow
- Functions and Code Modularity
- Scopes and Closures
- Callback Functions
- Objects and Object-Oriented Programming (not necessary for interview)
- I hated this book and then I loved this book. Marijn Haverbeke is really good at condensing a lot of information into short paragraphs, so make sure you understand exactly what's happening as you go, and teach it to yourself. I tend to use other resources (below) to 'break the ice', and then this book to reinforce and challenge my abilities and understanding. If you need a little help, Gordon Zhu has created an Annotated Version that can help with the sticky parts. You can still find the version on Google Docs though it's no longer updated by Gordon.
- Yeah, it's got a silly little intro, and sometimes the code editor is a little buggy. But being able to have someone explain certain things and then work through them by myself after without specific instruction was invaluable. I personally found this a better way of learning than Codecademy, and am a huge fan of (most) Codeschool courses. It helped a lot in coding within context and jump-started my problem-solving.
- Great place to practice algorithmic thinking and pseudocoding. Also an opportunity to pair-program!
- Like Coderbyte but with more problems. I prefer this for more casual practice as Coderbyte sometimes involves more complex mathematical logic. CodeWars scales to your level a lot better.
- If you're stuck, someone else has probably been stuck, too. Google for help and if all else fails, ask StackOverflow or StackExchange.
Other Study Tips
- Practice pseudo-coding. This is not only good for the interview, but a great way to get un-stuck. If you're just thinking silently, or to yourself, it's easy to get stuck in a loop. Talk to yourself, talk to a friend, write or sketch things out.
- Don't look it up until you've really given it a shot. It's tempting to look for a hint, but don't unless you're really stuck. This is to make sure you don't get in the habit of giving up early.
- Always reverse-engineer the solution when you do look up the answer. Learn the thought pattern, not the code.
- Don't get frustrated. That's not to say that you won't get frustrated. Indulging in frustration is a choice, not a compulsion. If you feel yourself getting irritated or angry, stop. Take a break, you need it. Then come back with a clear head.
- Practice being able to explain things to people. This is a way to be able to identify the gaps in your knowledge, and a chance to get people to study with! I did this by creating and leading a study-group/class of 4 through the basics of JS before my second interview. The great thing is that it's really awesome to learn from and with someone a few steps ahead, as most pros forget what it's like to be a beginner.
- Read other people's code. Much like writing, you learn a lot by reading the work of others. You'll also get better and better at deciphering code, and tracing logic.
- Code with style. That is, write clean, readable code and don't be sloppy. Style is more than just a matter of preference - it’s a matter of functionality.
Hope this helps, and happy coding!
Part 4: The Interview
After sending in my Tetris.js project, Hack Reactor emailed me back within a few hours with a link to schedule the interview. I scheduled an interview for the following Monday (two days away!).
This time, it felt different. I was nervous, but it wasn't that paralyzing kind of nervous, and pretty excited to get to the interview. I breezed past the part I got stuck at last time and kept coding and talking to my interviewer. It was actually... pretty fun.
If you can write functions and understand well how to pass functions as parameters into other functions (callbacks), you're ready.
Once you've done all the studyin' you can do, there are a couple of things that will help you in the interview:
- Enjoy it! You're applying for Hack Reactor because you (hopefully) love coding and problem-solving. You're talking to someone who was in your shoes probably only a few months ago. Really, try to find a way to enjoy talking to someone who shares that love and/or relates to that experience.
- You're not interviewing to impress. They want to see how you approach problems or things you don't know. Hack really focuses on people who want to keep learning, and want to keep growing. If you've been following my Study Guide, you've been pair-programming. This is no different, except you don't get to Google when you get stuck - that's where it's super helpful if you've been talking to yourself to get unstuck.
- Coding To Learn
- My interviewer was different this time, but he was also equally awesome and helpful. The most helpful piece of advice he gave me was that they were ultimately a school, so feel free to ask questions. It's okay to not know - just let them know.
I interviewed on a Monday, and got my acceptance letter that Friday. I'll be attending Hack Reactor this October 5th, and I could not be more pumped. California, here I come!