

Ask HN: How do you recommend preparing for technical interviews? - Osiris

I was recently laid off and I&#x27;m back in the job market for the first time in a number of years. I have several technical interviews coming up.<p>One (Amazon) specifically mentions reviewing basics like data structures, algorithms, etc. I don&#x27;t have a formal CS background, so I feel unprepared.<p>What resources, techniques, etc. do you recommend to prepare for technical interviews?
======
hibikir
There are many kinds of technical interviews, and the optimal way to prepare
for each is pretty different. So the first thing I'd do is try to figure out
how the interview system for any given prospective employer works.

Some places just ask relatively formulaic questions that you can just prepare
for with a couple of web searches. Visit a random page for 'technologyX
interview questions', and you'll cover that kind of technical screening. That
said, I personally consider that an employer that resorts to that kind of
interview is probably not really all that good at hiring, and a company that
isn't good at hiring is rarely a company worth working for.

Another common kind of technical interview will, instead of going through
random technology questions, follow a similar pattern but with more 'book
questions' than practical questions. Algorithms and all that. While this kind
of interview is harder to game than the first, it's still IMO relatively low
quality, because it has to either be very basic, or rely on information that,
if actually needed on the job, you could just figure out by going to a
reference. It's not as if there's that much to gain by having employees that
have memorized The Art Of Programming. What I really want, algorithms-wise, is
someone that can research an algorithm, or choose one from some alternatives.
I do not care if you do not know how to build an optimal quadtree to calculate
collisions in 2d space: What is valuable is that if I tell you that you should
calculate said collisions, you can actually find an algorithm that works, and
could explain it if asked.

So all in all, that kind of technical interview if often a crapshoot, as you
can never know exactly which kinds of algorithms the interviewer will be
interested on that day. Which is why the best you can do to prepare for that
kind of interview is to just figure out what specific kind of questions are
going to be asked.

And finally, there's my favorite kind of technical interview: Actual live
coding, either from a well defined problem statement, or by working on an
existing codebase, which one hopes has been handed to you a little bit in
advance. This approach is straight out of Peopleware: You'd not hire a juggler
if you've not seen him juggle, right?

So, in short. depending on the interview type, either try one of the many
random sites on the internet that dole out technical questions, read some
basic algorithms book, or if handed a codebase, study the heck out of it.

