
Ask HN: I suck at technical interviews. How can I get better? - alokedesai
I go to a top-ranked school, I have a great GPA, but I always freeze up during programming interviews. How can I improve my technical interview skills?
======
gdewilde
I went to the worse schools, I have no skills, really the interview is all I
know, I've done it a million times. (hahaha)

One good trick is to take charge of the interview.

There are standard questions the interviewer must ask (every time he does an
interview) Try to answer all of those before he gets to ask them. This renders
him without things to say. Then you get to ask your own questions.

Change the discussion from "why do we want to hire you?" into "why do I want
to be hired by you?" When will I get a raise? when will I get promotion? when
will you get to sit where he is sitting? And where will he be at that point?
How are ideas treated here? Is one supposes to show initiative or not?

Will you get locked away in an office or will there be other people on the
floor? Who do you get to work with? Have him tell me something about your
future coworkers.

My favorite one is to just bluntly ask why their product is better than the
competitor. I ask that because when it is asked from me I want to be able to
answer it precisely the way I'm suppose to.

Show an interest in the interviews, the guy is doing that all day long, is he
having fun? Did he see many good candidates? How many interviews will they do
for a single job opening? Does he enjoy his work? Don't allow him to just sit
there pretending to be interested in your life. Show an interest in who he is,
what he does and where he comes from (or she)

You can be empathic about it but working down your list like a robot is
equally impressive.

Talk fast but not to fast, keep eye contact but don't gaze.

If their argument 'why you want to work there' is good enough and their
product is good enough end the interview before he does, ask if he made up his
mind already, when do I start? You don't want to pressure him but you have a
lot of other interviews you would rather not have to go to.

You want him to have the impression that you are putting serious work into
finding a job - but not to much.

Good luck!

:-)

~~~
ScottWhigham
Maybe this is good generic advice to some, but this is not how to "pass" a
technical interview. In a technical interview, the interviewer needs to
determine where your skills lie - would your skills fit within the team? Does
what's listed on your resume match with your answers? Is your learning book-
knowledge or from experience? How do you respond when shown a very difficult
problem? You can't BS your way out of these by "taking charge" and trying to
trick the interviewer to move on to soft skills questions.

Maybe your advice works in certain situations but, against a full on neck
beard who cares only to see if you know data structures and OOP, your advice
would guarantee that you do not pass the interview.

~~~
gdewilde
True, working fast is not an excuse to be sloppy. Your questions are just
better than mine but one can still answer many of them before they are asked.

------
vitovito
The short answer is, practice. Literally, interview more. Apply to jobs you'd
never accept an offer from to get the practice.

The long answer needs more information. Why do you think you suck at technical
interviews? How do you know that? If the answer is "because I haven't gotten
an offer," what makes you think it was the technical portion of the interview
you failed? What parts are you not good at? When do you freeze up? Why do you
freeze up?

------
gramerc
I have worked at Microsoft, Google and Facebook as a software engineer, going
through the full interview process every time.

The thing to realize is that being good at technical interviews (as done by
the above companies) is a skill unto itself but it is a skill an intelligent
person with a comp sci background has the ability to get significantly good at
after a 1 to 2 months of disciplined preparation. - I went to a top ranked
school myself and had a comp sci degree but was very intimidated by technical
interviews until I realized that this was no different than all the other
other intellectual hurdles/gauntlets I had successfully navigated up to that
point by giving myself time to thoroughly prepare.

Get "Elements of Programming Interviews" and give yourself 2 months to
prepare. Start to with "1-month" plan in the book spending at least an hour a
day at the very minimum. (I have worked through both Elements of Programming
Interviews and Cracking the Coding Interview in their entirety and while both
are good, in my experience Elements of Programming Interviews was clearly the
better preparation in terms of technical depth, breadth of exposure to the
kinds of questions I faced in the full-day interviews, and succinctness of
coding solutions)

Get dry-erase paper/notebook or a white-board and work through the problems by
hand including the coding (important!). For the first week or two give
yourself an honest focused couple of hours to wrestle with a problem before
looking at the solution. it is not enough to settle for "I think I know how to
solve this" \- Actually code up the solution by hand and step through it with
some simple cases. This is important and it allows you to develop confidence
in your ability to think methodically through a problem as well as giving you
an opportunity to develop mental heuristics for how to tackle and test
unfamiliar problems. Developing confidence in your ability to think through
interview-style problems is every bit as important as exposing yourself to
interview-style problems. As you progress, you will be working towards being
able to deconstruct a problem and be ready to start coding up a high
confidence solution in 15 - 20 minutes.

"Talk to yourself" as you try to solve a problem to simulate explaining your
thought process to someone as you go along.

When going through the solutions in the book, do not gloss over a detail you
do not understand. Go online and find alternative explanations/references if
you don't understand some detail of the solution provided.

After a few weeks of this kind of daily disciplined prep, you should start
feeling pretty good and your confidence should start building nicely. Lots of
interview questions are variants of each other and once you have enough
breadth, you start quickly being able to key into the "type" of question and
possible solution approaches almost as soon as you hear it.

Last thing is when you feel ready to start doing interviews, do not interview
with your "top choice" first. If you can find someone that has done interviews
to give you a mock interview, great! If not, schedule interviews whose outcome
you are not as attached to (relatively speaking) first.

Hope that helped.

~~~
alokedesai
Thank you for this advice. I was always under the impression that it should
come naturally, so when I didn't do so well during the interviews as some of
my friends, I started worrying that I shouldn't be pursuing programming as a
career after graduation.

~~~
sjg007
Nah man, just like the SAT. Prepare.

------
peachepe
[https://www.interviewcake.com/](https://www.interviewcake.com/) should help
you with the typical fizz buzz tests.

------
HarlowDuDy
Practice and convince yourself before the interview -- whether it is true or
not -- that you do not need the job. Take the pressure off the outcome and you
will go into it with a different mindset. I've even gone so far as to repeat
over and over to myself on my way to an interview that "I don't need this job"
and my mindset really changed! Doesn't hurt to try :) And good luck!

------
incision
1.) Read up on the routine where you're going to be interviewing. If it's a
better-known company there will be plenty available.

2.) Work through one of the popular coding interview books [1][2].

3.) Practice off-keyboard things like white-boarding and public speaking. Get
up in front of your white board and work through a problem like you're
teaching a class on the subject.

I recognize that 1 and 2 might feel like gaming the system a bit - they are,
but as long as companies continue to practice contrived interviews targeted
preparation will naturally follow.

As stated, you don't lack the ability to perform in general, just within the
artificial confines of an interview.

1: [http://www.amazon.com/dp/098478280X](http://www.amazon.com/dp/098478280X)

2: [http://www.amazon.com/dp/1479274836](http://www.amazon.com/dp/1479274836)

------
michi
Keep in mind, many interviewers are purposefully giving you ridiculous
questions to try and trip you up. Calming your nerves is a very common
problem, and can be challenging to overcome. It sounds like your problem is
not a matter of knowledge, but a matter of delivery. Here are a few immediate
things to try:

\- Practice makes perfect: find someone to give you a mock interview. Do this
as often as necessary until you conquer your problem. \- Caffeine, adderall,
etc, can make you much more anxious. You need to be calm. \- Don't feel
pressure/rushed, and _don 't panic_. Slow down. If your mind races under
pressure, that's completely normal, but it can be controlled. \- Its ok to not
entirely know the answer. Start by responding with what you do know. Once you
begin speaking, the ideas will start flowing. Many technical questions are
"loaded". To actually solve the problem in the best way possible, you need
_way_ more information than they give you. This will cause your mind to race.
Try to qualify your response with your thought process, "if this or this, I'd
do this. If something or another, I'd probably do this." \- Practice speaking
with confidence. Take a deep breath, all the way down into your belly, and
then use that air pressure to make your vocal chords "sing". Having a strong
vocal tonality will resonate confidence inside your head, and inside theirs.
Also, don't be monotone/boring. Find/express energy and enthusiasm without
sounding fake or cheesy.

Being nervous for an interview is normal. I've interviewed a lot, and I always
get nervous. Its just something you have to deal with. Public speakers and
pick up artists (approaching women to ask them out) are two areas that you can
find a _ton_ of advice for calming your nerves.

Introverts can have a hard time finding their inner personality. Practice
makes perfect. Try to start as many conversations as you can each day. Don't
force it, become natural at engaging conversations with other people. This
will help all areas of your life, including interviews.

~~~
michi
Why can't I update this comment. I keep trying to reformat and click "update"
and it doesn't work.

------
eshvk
Programming interviews are a game. It is not a reflection on your GPA or your
school or how intelligent you are. It is simply a collection of parlor tricks
because we as an industry have no fucking idea how to evaluate someone who is
relatively new or has no social reputation.

So dissociate yourself and detach yourself from the process. Others have given
you tons of advice on this process. The secret really is to practice. It is
hard. But it is doable. Good luck, mate.

------
iroot
You can never be completely prepared for programming interviews. How well you
do in a particular programming interview depends on whether you have had any
experience working on similar questions/problems in the past. So, bottom line
- program as often as you can.

------
n0body
Same as you improve anything, practice. In this case that means do more
technical interviews, apply for the jobs, even the ones you can't do/don't
want to do. It's all experience and interview technique depends on that.

------
braunshizzle
Just found this handy resource on GH
[https://github.com/andreis/interview](https://github.com/andreis/interview)

