How would you prepare for your first technical interview if you’re new to programming?
Ah, it’s your first programming job out of bootcamp or college. How do you prepare for that first interview?
This is a question I answered recently. Even though it’s impossible to prepare for every possible question (because every interview I’ve been to is different), you can do some basic things to give yourself an edge.
There are things you can do before, during, and after the interview that can help make your case as the perfect candidate.
The Pre-Interview Phase (Before)
Step 1 – Research
Research the company on Crunchbase (if startup) and Google – the idea is to be able to answer at a high level what the company does and see if it’s a company mission that you can relate to or might possibly have the types of problems you would like to solve (or gain experience in solving).
Step 2 – Practice
1 – Read Cracking the Coding Interview by Gayle McDowell and do problems from there as much as time allows.
2- Practice with a friend or two – have them throw you everything from soft-skill to technical type questions if you have the time so you get used to thinking on your feet.
3 – Try some recursion problems. One good one to try is a fibonacci sequence.
4 – Be able to do the classic fizzbuzz problem.
Here it is with a slight variation: Write a program that prints the numbers from 1 to 100. But for multiples of five print “Fizz” instead of the number and for the multiples of seven print “Buzz”. For numbers which are multiples of both five and seven print “FizzBuzz”.
5- Be able to write basic SQL queries.
6 – Backend questions
If you’re interviewing for a backend developer position, here is a good list of questions.
7 – Basic frontend questions
If you’re interviewing as a frontend developer, you may find this list of questions helpful.
8 – Language syntax – You should also brush up on basic syntax for the programming language you specialize in.
9 -Big-O Notation – Gayle’s book provides a refresher if you haven’t looked at this in a while.
Step 3 – Dress for success
If it’s not a San Francisco startup culture where t-shirt and jeans are acceptable, ask about dress code (I’ve noticed big companies still skew towards a more formal dress code). Usually business casual is fine for the companies I’ve interviewed at.
Step 4 – Get a Lawyer
Line up a good employment contracts lawyer so you can understand the employment contract you are signing.
The Interview Phase (During)
Step 5 – Rehearse this answer for thinking on your feet
If you don’t know something, confidently say “I don’t know know, but here’s my educated guess on how to tackle it…”. Nobody knows everything and I think a solid company would understand this and appreciate the effort and a willingness to tackle things head on with humility. I’ve done this, gave a completely wrong answer, and the company still decided I was worth hiring.
Step 6 – Handle their objections
At the end, I like to ask if they have any more questions/concerns they’d like to address. This can help tease out any potential objections to hiring you as a candidate.
Step 7 – Ask when you can expect to hear back
At the end, I also like to get an estimate of when I can expect to hear back from them regarding the next steps. This lets me know when it’s ok to follow up if I haven’t heard back from them in a while.
The Post-Interview Phase (After)
Step 8 – Keep interviewing at different companies until you sign an offer letter at the one you want to work for. Getting your hopes up for one company only to have a rejection of some kind for whatever reason is no fun.
Step 9 – Keep track of the companies you’re interviewing at in a spreadsheet (like this template in section 2.3 of this blog post). It saves you time and keeps you organized.
Step 10 – Send a quick thank you note or email to the hiring manager and/or team. It never hurts to be polite.
Getting the offer letter
Step 11 – Make sure you get a copy of the actual employment contract, intellectual property agreement, etc so you (or preferably your lawyer) can review it. Some states (e.g., California) have contracts that are “reasonable” and account for an engineers’ need for career mobility. Others (outside California) I’ve encountered have lengthy non-compete clauses, which can hurt your future compensation and/or skill development if you want to work with a great team / company in the same industry. You can protect against IP theft without the need for a non-compete. Joel Spolsky writes in more detail about non-competes, so I won’t go into it here. I’m also not a lawyer, so this is IMHO.
I’ve personally followed these steps and have been able to cultivate multiple offers in writing and it’s not because I’m the best programmer. I really believe a little preparation goes a long way.