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.

Image for post

  1. **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.

	first_name = "Audre"
	last_name = "Lorde"

	puts "Hello, #{first_name}!"

	# The code will read this, recognize the #{} ,
	# and read the contents as a variable,
	# or a piece of Ruby code, not just a string. 

**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.

	let activists = ['Audre Lorde', 'Anna Mae Aquash', 'Marsha P Johnson', 'Mary Brave Bird']

	function findActivist(activist){
	  for(let i = 0; i < activists.length; i++){
	    if(activist === activists[i]){
	      return `Thank you, ${activist}!`
	    }
	  }
	}

	findActivist('Marsha P Johnson')
	  // returns "Thank you, Marsha P Johnson!"
	findActivist('Ellen DeGeneres')
	  // returns undefined

	// We typically write loops when we want to run the
	// same block of code until our condition is met!
	// In this case, we were searching for an activist, 
	// Marsha met our condition (was in the activist array)
	// Ellen did not meet the condition (was not in the activist array)

**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 functionsmethods!)

let janelle = "Janelle Monae" 
	//Janelle Monae is a global artist, everyone knows who she is!

	function sayHello(artist){
	  let smallTownArtist = "Small Town Artist" 
	  //this small town artist hasn't blown up yet,
	  //so they are only known locally (very hip)

	  console.log(janelle)
	  //What happens when we console.log the janelle *inside* of the function?
	  console.log(smallTownArtist)
	  //What happens when we console.log the smallTownArtist *inside* of the function?

	  return `Hi my name is ${artist} check out my spotify!`
	}

	console.log(janelle)
	//What happens when we console.log the janelle *outside* of the function?
	console.log(smallTownArtist)
	//What happens when we console.log the smallTownArtist *outside* of the function?

	sayHello(janelle)
	//invoke the function with our janelle variable
	sayHello(smallTownArtist)
	//invoke the function with our smallTownArtist variable

#web-development #code-newbie #javascript #flatiron-school #ruby

How to pass Flatiron School’s Software Engineering Technical Interview
1.80 GEEK