A Bootcamp Grad’s Guide to Technical Interview Prep

Jenni Macklin
11 min readOct 23, 2018

--

I’ve been doing a lot of technical interview preparation lately and thought I’d share some of the most helpful resources I’ve encountered. These resources have helped to not only prepare me for those interviews but also to become a better JavaScript developer in general.

What to Expect from a Technical Interview

Of course every company and interview are going to be unique experiences, but you can expect to see some or all of the following during a typical technical interview:

  • Trivia style questions about languages required for the role. (i.e. for JavaScript you may be asked “What is hoisting?” or “What’s the difference between let, var, and const?”)
  • Code challenges/Whiteboarding. The main focus of this article is helping you prepare for this part of the technical interview process. It may be in the form of actual whiteboarding (solving a problem with code, on a whiteboard, in front of your interviewers). For remote interviews, instead of a whiteboard you may find yourself using a shared Google doc or a shared coding environment (like CoderPad). In this case, the company you are interviewing with will almost certainly tell you what to expect so you can get familiar with the platform in advance. Finally, you may also find yourself in a situation where you’re taking a remote coding challenge without an interviewer. Companies may send you challenges at HackerRank or the like as part of the screening process. These usually consist of solving a set number of questions in a given time frame.
  • Personal questions about your experience and knowledge. These are more “typical” interview questions that you’d get in non-tech interviews as well but on the topic of tech. Some examples include:
  • “What do you like most about React?”
  • “Do you prefer React or Rails?”
  • “What was your favorite part of the bootcamp?”
  • “Tell me about a project you worked on that you are particularly proud of.”

Now that you know what to expect in a typical technical interview, let’s move on to the resources that I’ve found helpful and why.

Stephen Grider’s Udemy Course: The Coding Interview Bootcamp: Algorithms + Data Structures

I’ve recommended this course before, and I’ll likely recommend it again. It’s exactly what it sounds like, and helps you prepare for coding interviews by covering algorithms and data structures. These topics are not covered in the Flatiron curriculum, or at least they weren’t when I started. They did just switch it up a bit and rename it to Software Engineer Bootcamp as opposed to Web Developer Bootcamp and I believe the Computer Science track is now required as opposed to optional.

That being said, I’m going through the Computer Science track right now and I still very strongly recommend you check out this course. It has been the most useful resource I’ve used while preparing for technical interviewers.

Here’s the thing, it’s not free. I got it with a coupon for just under $10 and it has been so worth it. Frankly, $10 for the value I’ve gotten out of the course is a steal. I have encountered some people who argue against spending money on a course like this because “they could learn everything in it for free”. If you are one of those people, feel free to skip ahead to the next resource (or really the one after that since the next one isn’t free either) or allow me to attempt to change your mind/counter your argument.

You could probably learn everything in it for free, but it wouldn’t be the same and here’s why:

  • With this course you’re paying $10 to have all the information organized and presented to you by someone who really knows what they’re doing and understands the subject extremely well. Not only that, he’s a good teacher so he makes it easy for you to learn.
  • It’s more than that though, in my experience, the people making this argument haven’t actually taken the course. They haven’t been through the lessons and then gone “What a waste of money. I could have taught myself that!” So I’m not really sure where the immediate negative response is coming from. Maybe they hate spending money (tbh, fair) or maybe they hate helpful completely optional suggestions. Who knows?
  • The course comes with videos and an entire GitHub repo with practice problems (including tests). The way it works is he talks about the problem a little (likely teaches you something first if you need to know it before solving the problem), maybe gives you a little hint or tip on how to approach the problem and then tells you to try the problem yourself.
  • BUT here’s the thing, and in my opinion this really makes the course stand out, if you are struggling he encourages you to (after attempting the problem at least for a little bit) to watch the solution and then try again. If you still can’t get it, you can follow along with the solution. He eases you into everything and takes care to make sure you don’t feel lost and overwhelmed. As I’m sure you know, both of which are common occurrences when you are teaching yourself something new.

I think that the way he approaches each problem is the key to what makes the course so great. The process he goes through is just such an effective teaching method: giving you a chance to solve it yourself, giving hints so you can have a chance to figure it out yourself even if you’re struggling, and then encouraging you to check out the solution so you don’t get overwhelmed. For me at least, it really ensures that I have a thorough understanding of the material and helps me remember the lessons learned.

One final note, the things you will learn in this course are solutions to actual problems but more importantly he teaches you the mindset or method most helpful to solving other similar problems in an interview setting. How to approach a problem of a specific type, what mental tricks you can use to frame the problem in a way that makes it easier to solve, what common methods you can use to tackle problems.

Oh yeah, and it’s all in JavaScript 🙂

Treehouse: Data Structures and Algorithms Courses

I’ve mentioned Treehouse before as well, because I love them. I used Treehouse when I was first getting started, and I started up my subscription again after graduating from Flatiron so I could continue learning.

I recently went through two new courses that they only released in the last couple of months.

  • Intro to Algorithms
  • Intro to Data Structures

The Intro to Algorithms course in particular has a really good explanation of Big O that will be especially helpful to you if you’re new to the concept or struggling to understand it.

Treehouse courses are super high quality (seriously, the production quality on their videos is amazing) and they cover a really wide range of topics. So it’s also good if you’re feeling a little rusty in some of the skills you’ve listed on your resume but haven’t used in months. And of course, it’s a good option if you just want to learn something new. Expanding your skills is never a bad thing.

Treehouse is a subscription based service that starts at $25/month. Standard subscription warning: don’t forget about it! If you’re paying for make sure you’re using it. Set aside some time each week to learn.

Cracking the Coding Interview

Cracking the Coding Interview by Gayle Laakmann McDowell

It is probably impossible to write a guide to preparing for technical interviews and not mention this book. It’s basically the technical interview bible. You will likely see this recommended literally everywhere you look about technical interviewing, that’s how popular it is.

Have I mentioned everyone recommends it? So, naturally I bought a copy. I’ve only just started diving into so I can’t speak to how helpful it has been to me personally yet, but I imagine it’s going to be great for doing practice problems. I plan to work my way through the problems, first by hand on graph paper, then in code with tests. I’ll be posting my solutions to my github (but not the questions, you’ll need the book for that) and I’ll update this post once I’ve gone through it more with my impressions.

I want to mention that the examples in the book are in Java. However, you should still be able to follow along with how they are solved and if you do a quick google search you can find that lots of very helpful people have made the solutions available in many more languages, including JavaScript.

How to Practice Code Challenges

Code challenges, and practicing them, is really the meat of the issue here. You want to get experience solving the types of questions that you’ll be asked in a technical interview. The more experience you get, the better you will be at solving these types of questions and the better prepared you will be to encounter them in an interview setting.

The goal isn’t to practice so many questions that by the time you see a question in an interview you will have already solved it. The goal is to improve your problem solving skills in general, get comfortable with these types of questions, and be better prepared to solve any question you get in an interview (regardless of it you’ve seen it or not).

Very often, there are similar approaches and methods of thinking that you can use to solve many different problems. By practicing (and taking the Udemy course mentioned above) you can start to recognize patterns and identify different approaches you can take to solve similar problems. You might get a brand new problem in an interview and think Oh! This is just like that matrix problem I solved on HackerRank the other day. I used X approach to solve that, perhaps that would work here as well.

So, with all that said here are the resources I’ve used to practice code challenges:

HackerRank

  • They have a lot of good challenges, ranging from easy, medium, and hard.
  • Questions tend to be wordy and remind me of word problems you got in middle school math classes (only a lot harder).
  • You can solve the challenges in the language of your choice, they support a lot of languages including: JavaScript, Ruby, Python, Go, Swift, C#. They have 23 options as of this writing.
  • They have competitions as well, if that’s something you’re interested in.
  • The one thing that annoys me about this platform is that all the tests are hidden, except for the very first one. So if you pass the first test, but fail all the rest when you try to submit, you have to unlock them to see what they are. You can use your own customs tests, but still.
  • You may receive a code challenge from a company to take on HackerRank, so it’s good if you have used the platform beforehand. That way, you don’t have to add the extra stress of a completely new platform to your test.

LeetCode

  • From what I’ve seen and heard, Leetcode questions are the most similar to (if not exactly) the questions you will see in a live interview setting. So definitely don’t skip it! Practicing here will help you.
  • They support 12 language options at the time of this writing, including Python, JavaScript, Ruby, etc.
  • One really nice thing about Leetcode is that after you solve a question, you will see how performant your solution was compared to other solutions in your language.
  • Leetcode also has a lot of questions that range in difficulty. You can sort the list of questions by difficulty (among other filters) which is really nice and helpful.
  • They also have competitions you can check out.

CodeSignal

  • Used to be called CodeFights.
  • You can solve challenges in many languages. They support 38 languages at the time of this writing, including all the usual suspects.
  • When you first sign up they send you a 7-day email campaign to help you get started.
  • They have a really good environment, it’s probably my favorite. Their UI and design is just fun and nice. They let you choose your theme in the editor which is a much appreciated feature. In my case, I use Dracula because I love it and I prefer to use a dark coding environment. That white background is just so hard on your eyes for long periods of time, you know?
  • They have different areas to solve questions:
  • Arcade
  • Interview Prep
  • Daily Challenges
  • Company Challenges
  • Questions seem to be a bit on the harder side, but maybe that’s just me?
  • They have tournaments you can participate in.

CodeWars

  • This was one I started using long before I went to Flatiron even.
  • They are very beginner friendly.
  • Extremely community focused.
  • Lots of language options for you to train in (you can select as many as you want). They have 37 options at this time.
  • After you solve a kata (what the problems are called) you can see how others solved it…and you will likely be blown away by their creativity.
  • I tend to use CodeWars more for fun than for interview prep, but check it out and decide for yourself. And if you are just getting started with this kind of thing it’s a really good (less intimidating) place to get your feet wet.

and More…

There are a lot more resources out there, the ones above are just the ones I have experience with. Below are some more that you can check out and see if they work for you:

Graph Paper Notebook

Perhaps this is a weird resource to mention, but I’ve found it to be extremely helpful. Instead of a whiteboard, which I don’t have, I use graph paper to simulate whiteboarding but also just to work through problems. I have notebook (if you have loose-leaf graph paper you could always collate them in a binder) that I use to think through problems, write out test cases, make helpful diagrams, all that stuff.

Taking the extra time to think, diagram, and plan can sometimes make tricky problems easier to solve. You never know what patterns might emerge or what might be jogged loose.

A regular notebook would work too, of course, but I like having the grid on the paper for these type of problems.

Hopefully you’ve found this list of resources helpful, and perhaps even discovered something new to help you prepare for your technical interviews. If you take away only one thing from this article, I hope it’s this: Do practice problems! Solving these challenges in your free time is really going to help you. You’ll get better at them and more importantly you’ll become more comfortable solving them which is going to help you be more comfortable and confident in interviews.

Good luck and you’ve got this!

*Important Note: the Udemy and Treehouse links are referral links. This means, that at no extra cost to you, if you click through and sign up I’ll earn a referral bonus or discount. In the case of the Udemy course this equals a $5 credit per referral up to $30. In the case of Treehouse it equals 20% off my subscription to the service. Again, this is all at no extra cost to you, it’s just something that helps me out a bit 🙂 That being said, I’m recommending them because of how incredibly useful they have been to me personally.

Originally published at jennimacklin.com.

--

--

Jenni Macklin

Full Stack Developer. Graduate of Flatiron School. Gamer. Author.