How to pass Flatiron School’s Software Engineering Technical Interview
Tags: javascript, ruby, codenewbie
Published: 2020-08-04 19:42:41

I’ve been a part of the Flatiron community for almost two years now, first as a student, then as a Software Engineering coach at the Brooklyn campus, and now as a Technical Interview Coach for both Software Engineering and Cyber Security Analytics. I’ve done over 300+ (three hundred! 😱) technical interviews, and these are some of the main things I look for when admitting prospective students.

Know Your Code! Despite what y’all may think, we know there have been solutions to our technical interviews posted online. When conducting a tech interview, I’m not looking at the code line by line, I’m looking to see if you understand the code. Why does this function return __ value, what are the arguments for the __ method that you used, why did you approach the problem __ way, what would happen if we needed to change our code to solve for __, etc.

Remember, you aren’t coming to Flatiron School for a degree or a piece of paper, you’re coming here to learn how to code; don’t do yourself a disservice by trying to get in before you’re ready. Learning to code is hard, and it takes time, and that’s okay!

2. What are you working with? Knowing what type of data you’re working with is key to explaining your code. Before your interview, sit down with the code you wrote and solidify anything you might feel shaky on. Is it a string or is it a number? How can we check that? What is an Array? Why are we using an array instead of __? What’s the difference between __ and __? What would happen if we wanted to add the elements of this array into our string? What is the best approach for that? Why do we need a conditional statement here? Reading up on the MDN docs for Javascript, or the Ruby docs and practicing using the different objects is super helpful!

3. If you are using it, how does string interpolation work? I see a ton of students use string interpolation, but often times they don’t really understand what it’s doing, or are using it incorrectly. The main point of / use of string interpolation in both Ruby and Javascript is to write clean, legible code. When piecing together multiple variables using concatenation, things can get a bit messy. String interpolation helps with that. I often see students wrap all of their variables in #{} or ${}. This won’t break your code, but it does make me question your understanding of template literals.
{% gist https://gist.github.com/graciemcguire/79abe874691da8b9deebdcc53935c6bb %}

4. Loops: when and why? When we begin to learn how to code one of the first big milestones is learning to write loops. We write loops when we want to iterate over something, or run the same code over and over again but with different values. Often times students get so excited about knowing how to loop they begin to write loops to solve for every problem they encounter. Before you write a for loop into every function or method you write, take a step back and make sure you know what a loop would do in this particular code, and if it is necessary.
{% gist https://gist.github.com/graciemcguire/36a3fac8f0eec156453f2fb9459512d4 %}

5. Understand scope! Another huge hurdle in programming is learning to work with and understand scope, and the many scopes you have in your code. Learn what the difference between local scope and global scope is, and practice creating local and global variables! I recommend playing around with some console.log’s in JS, or puts in Ruby, to see where you do and don’t have access to different variables. If you’re confused where to start with this, I recommend playing around in repl.it! (Don’t forget to invoke your functions/ methods!)
{% gist https://gist.github.com/graciemcguire/f4099ba8f35b9bf2946296fc30888646 %}

7. *BONUS* — Clean up your code! Before your interview, make sure your code is all properly indented and spaced. This will make it much easier for you to walk through everything, and to make changes. If you want, feel free to add comments to help explain what approaches you took to the problems!
{% gist https://gist.github.com/graciemcguire/855b3b77dad187988e210908ca8608da %}

I also want to emphasize practicing good naming conventions — don’t call your variable representing a student var x and your teacher variable var y! Call them var student and var teacher. This will not only help you stay on track in the interview, but is a great habit to get into at the beginning of your programming career. Finally, the last thing I want to emphasize is basic language conventions; when you’re writing in JS, practice using camelCase, and if you’re writing in Ruby use snake_case.
Before your interview, take a deep breathe, read over your code, and pat yourself on the back! Learning to code is hard, and you’re about to have the first technical interview of many throughout your career! You got this!