Ackshaey Singh | @ackshaey | 13 Aug, 2015
So, you’re here because you know a thing or two about coding interviews. Maybe you’re a college senior, preparing your job application for Microsoft or Google. Or maybe you’re a software industry veteran, working in a large enterprise software company, flirting with startups. When it comes to the coding interviews you will eventually take, there’s a pattern that emerges that ties all candidates together.
Almost all software and (to a lesser extent) hardware companies focus on algorithms and fundamental data structures for their interview coding questions. Algorithms and data structures have become the foundation supporting modern coding interviews. There are, however, a few exceptions to this rule A handful of companies have built a reputation around the difficulty of their coding interview - none more so than Palantir. So why is the Palantir interview so difficult? Well, they spell it out themselves on their awesome writeup titled - The Coding Interview. Palantir focuses on algorithms AND coding in their interviews. How are they different, you may ask? You can know your algorithms, but that doesn’t make you a good programmer. The ability to confidently write code in a coding interview is as important as the knowledge of fundamental algorithms.
I have interviewed many candidates myself, and nothing impressed me more than the candidate’s ability to confidently articulate his or her thoughts - in code!
The dirty little secret behind acing coding interviews is that they can be hacked. Numerous books have been written on the subject. Cracking the Coding Interview by Gayle McDowell is an excellent example. The book has over 180 programming questions with solutions. The idea behind such resources is that if you read and practice all the interview questions in the book, you will be able to handle most of the questions thrown at you by your interviewer. While this is true for some people, my experience while preparing for coding interviews back at Georgia Tech was rather different.
You can know your algorithms, but that doesn’t make you a good programmer. The ability to confidently write code in a coding interview is as important as the knowledge of fundamental algorithms.
I spent two and a half months preparing for my phone screen and on-site interview at Google. During that time, I bought Gayle’s book, spent hours on online forums like Glassdoor and Careercup, hunting for good interview questions to practice. In addition to that, I had to install IDEs for different languages, setup the scaffolding for binary trees, linked lists and other data structures and spend a considerable amount of time searching for the answers to these questions. To top it all, when you have 180 questions to practice, you WILL forget a third of the problems. So the next time you’re asked a question you solved 6 months back, luck will dictate if you’ll be able to recall the answer or not.
In conclusion, almost all coding interviews conducted today have two things in common :
1) Questions on computer science fundamentals, data structures and algorithms are interview favorites. However, coding confidence and fluency are equally important.
2) Interviewers have a few 'pet' questions, which are picked from a finite pool of about 500 interview problems. Interviewers add their own variations to these problems.
Coding interviews CAN be cracked : a) Smart practice and b) Strong Memory are your best friends here . Firecode.io implements a learning engine that is based on the research of Professor C. A. Mace, published in the book - The Psychology of Study. Essentially, as you recall the coding problems you have already solved at increasing intervals of time, your memory of the problem and the underlying algorithm gets strengthened exponentially. This is often called the Spacing Effect. An illustration of the classic “Forgetting Curve” and spaced repetition memory enhancement are shown below.
Firecode.io combines over 400 real coding interview problems with an online coding platform and a learning engine designed to reinforce your learning over time. It is the only product out there designed for REGULAR programmers (vs Hackers), Computer Science graduates and ECE / Electrical Engineers aspiring to crack the coding interview. Try it for free today at www.firecode.io !