
My Google Interview and Lessons Learned - tgoldenberg
https://medium.com/@tomgoldenberg/my-google-interview-and-lessons-learned-43109881c521#.h71nifn79
======
brian-armstrong
I've noticed a trend where Javascript people are unwilling to learn other
languages, confining themselves to being in one small little niche forever.
Hasn't it always been said that good programmers will make an effort to become
familiar with multiple languages?

~~~
apocalyptic0n3
That may be true, but I languages can be taught and learned on the job, and
frequently are. When giving an interview, you're generally more concerned with
processes, how the person thinks and solves problems, how they learn on the
fly, etc. In each interview we give, we generally set them up for JS and PHP
(we are a PHP shop), depending on the question but also give them the option
of switching to a language they are more comfortable with. We can teach you
PHP relatively easy; I came in with no PHP experience and was able to start
building in Silex in under a month. What we care about is understanding basic
architecture, database interaction, OOP principles, some design patterns, etc.

So I think his choice to stick with what he knows and focus on learning
algorithms was a good one. He could learn Java or Go or Ruby prior to the
interview and then find out that he was placed on a project developing in
Python, assuming he took the job. Languages are generally easy to learn and
teach; best practices, algorithms, design patterns, etc. are what's hard.

~~~
brian-armstrong
How would you know how easy or hard it is to learn a different language if you
haven't done it yet?

------
danilocesar
"After the usual explanation that it was a “close call”, I asked what I could
have done better and was told that I needed to be more consistent."

Probably he just gave another "usual explanation" from his handbook. That's
the problem when you have a recruiter as a proxy between you and your
interviewer, specially when you get the negative answer. When they get the
"No" answer, you are not profitable anymore. You are now a liability. A time-
consuming problem they have to deal with. With that couldn't-be-more-generic-
feedback, it seems to be your case.

Would be better to reach your interviewers directly and get feedback from
them.

~~~
khedoros
Google gave me the answer "Unfortunately, we can't provide you any feedback
from the interviewers." A couple weeks later, they sent me a questionnaire for
me to provide _them_ feedback.

I suppose that if I'd made notes of each interviewer's name, I could've taken
a guess at their Google e-mail addresses and tried to contact them directly,
but that's definitely not something they would've made easy for me.

~~~
gniv
Or you could ask for their email. I give my google email to the candidates I
interview, if they ask.

~~~
tgoldenberg
I asked for the email addresses of my interviewers to thank them personally
but was told they weren't allowed to give them out.

------
SloopJon
He didn't get the decision he wanted, but he got it in a week and a half,
which is a lot better than I've come to expect.

~~~
kafkaesq
I have one, and only one, expectation from companies after an interview:

 _Please respond by the time you say you will, more or less._

It is amazing how many companies seem to be "unable" to come through on this
very modest expectation.

~~~
kyrra
In Google's case there are a lot of people in the pipeline that all need to
respond before you get an answer. All your interviewers need to get their
feedback in. Any internal or external referrals need to provide feedback. And
once that's all together, it needs to be presented to a hiring committee (and
there are more steps after this that can take time).

(Good) recruiters at Google strive to get their candidates answers as soon as
possible, but the most they can do, at times, is hound the person that is
holding up the process.

~~~
kafkaesq
These companies can take _all the time they want_.

The problem is that they continually bait candidates with promised turnaround
times that very seldom have anything to do with reality.

~~~
khedoros
My second interview out of college with EMC led to about a month and a half of
waiting, but resulted in an offer at higher pay than I had expected.

A more recent interview with Google got me a "no" in about 4 business days.
Whatever else I could say about the process, at least they stuck to their
promised window.

------
SoulMan
I am not sure how Google/Amazon/Facebook judge a programmer by asking to write
"production ready" code on few sheet of paper where one can not rearrange
blocks, edit. How many does it in real world ? Unless its 1977 and you are
doing FORTRAN in punch cards.

~~~
honkhonkpants
Much of the interview process is used to determine if the candidate can
program a computer at all. It's pretty obvious in the opening minutes if I ask
you to write out a simple function in your chosen strong language (such as
strlen, if you said C) whether you can or cannot do this. If you can stand
there and write out something like:

    
    
      size_t strlen(const char* str) { [return something] }
    

Then at least I know that you've ever programmed in this language before,
which sets you apart, strangely enough, from 95% of the applicants. I won't
even care if you write the return type as int instead of size_t, as long as
you're obviously aware that every function declaration must have a return type
(or whatever the requirements of your language might be).

From there we can start talking about graph traversal or whatever, to
determine what you know about complexity analysis.

It's really not about "production-ready code" but fluency. When you speak your
native language you don't constantly bumble and make errors and leave out
important words. It should be the same when you write code in your favorite
programming language, and whether you can or cannot do so becomes readily
apparent in technical interviews.

~~~
bogomipz
Is it true that they don't care what language you know, and that it doesn't
have to be one of either - Java, C or C++?

I have heard that what they are looking for is your problem solving skills and
your ability understand the problem space and the tradeoffs.

But then I've also heard that if you are not proficient in a statically typed
language that will hurt your candidacy. I am not sure if this true. I would
that is someone has good CS skills and good problem solving ability that they
could pick up any language statically typed or not.

Curious what someone more in the know regarding Google/FB/AWS has to say on
the matter.

~~~
honkhonkpants
I did my google on-site interview entirely in Perl which at that time was my
strongest lang.

~~~
bogomipz
So the idea is that as long as you have good CS fundamentals and problem
solving skills, what language(s) you know doesn't matter as you will likely be
able to be pick those up as you go?

Is that still true then?

Did you get the job?

------
leothekim
I've seen Google interview questions before, and I don't find them
unreasonable except for the fact you're forced to write things out on a
whiteboard. The bigger problem I have is the 5 on-site interviews. Coming up
with a solution that is 100% correct and optimal and well-coded for all 5
interviews would be physically and mentally exhausting for me. I have two
young children, so sleep deprivation is my constant reality. Not to say no one
else in my position can do this, but I certainly can't.

------
pklausler
You know, if I knew nothing about the law, but assumed that I could skim a
couple books and pass the bar exam, I'd have to be some kind of combination of
arrogant, disrespectful, and crazy.

~~~
bradleyjg
That's not a great example. There's a six week bar exam course that most law
graduates take because law school doesn't do anything to prepare students for
the bar exam. Take any reasonably intelligent person with strong written
English skills, have him take one of these six week courses including doing
all the homework, and he'd likely be able to pass the bar.

Practicing law is a different story. Although a significant percentage of law
school has very little relevance to the day to day practice of law it would be
an exaggeration to claim that law school doesn't do anything to prepare you
for practice as I claimed for the bar exam.

------
dudul
"In each one, I was given a technical problem and asked to whiteboard my
solution."

Can't believe Google is still doing this crap. 5 whiteboarding exercises,
seriously? How dumb is that. One OK, two why not. But maybe part of the
interview could be spend talking about, you know, architecture, past
experience, workflow, etc.

~~~
crimsonalucard
I've talked to a research scientist at facebook who commented on this exact
issue. They've debated this, the issue is that architecture, past experience,
workflow are all things that can be taught to anyone.

Google and similar companies aren't in the business of hiring anyone who can
just learn anything. Given enough time anyone can develop skills to be a
programmer. However, google is in the business of hiring people who are
intellectually superior. People who can do things that can't necessarily be
taught.

You complain about 5 whiteboard problems because most likely you won't be able
to solve 5 whiteboard problems. This does not mean you're a bad programmer.
However, the guy who can solve those problems without an issue has a higher
probability of having higher intelligence and better programming skills than
you.

~~~
palakchokshi
But the whiteboarding questions and their successful completion by the author
clearly shows Google is hiring for skills that the author was able to learn in
1 month. Architecture, workflow, use of proper design patterns, etc. are
things you learn from past experience.

~~~
khedoros
There's "successful completion", and then there's what Google is looking for.
They want optimal code, and they want you to explain your thought process as
you're writing. They want you to hit all the subtle corner cases without being
prompted (and for you to verbally note why you coded it that way).

You solved the problem if you give them the O(n^2) answer, but they're looking
for the more complicated O(n) answer, because then they'll get to present you
with the 2nd and 3rd variations on the question, rather than spending time
refining the first.

------
curiouscat321
I've noticed that some people seem to way overprepare for Google interviews in
particular. I get that they're hard, but how much practice do you really need
for, say, a phone screen?

~~~
linkregister
Given that the acceptance rate for on-site interviews is under 20%, I'd say
the vast majority of us who have interviewed actually underprepared.

~~~
johnward
I wonder how many people realize, halfway through the phone screening, that
they don't care enough about Google to jump through those hoops.

------
sulam
I interviewed a coding bootcamp person in SF and found them to be quite
competent and able to handle stuff at a level I've seen from engineers with
3-5 years of experience in the field, along with their CS degree. Other
interviewers also had a positive experience with this person and we made an
offer, but in the end they decided to take a competing offer...from Google.

------
crimsonalucard
Seriously one month of studying algorithms and he's prepared? I had the
impression google interviews were a lot harder than this.

~~~
buckbova
Well, he wasn't offered the job. So, we'll never know how prepared.

Practice does help for these whiteboarding style questions.

I completed a bunch of
[https://www.hackerrank.com/](https://www.hackerrank.com/) problems prior to
my last set of technical interviews and it definitely helped keep me sharp. My
day to day CRUD work is rarely helpful in that regard.

~~~
agumonkey
Don't you feel strange knowing you may be asked number theory question when
you might end up writing casual CRUD ?

ps: hackerrank is neat.

~~~
crimsonalucard
It's strange but why hire a rocket technician when you can get a rocket
scientist with the same skills (+more) for the same price?

~~~
agumonkey
Because a boredom frustration depressed scientist may not be the best thing in
life ?

