
Why I Studied Full-Time for 8 Months for a Google Interview - avinassh
https://medium.freecodecamp.com/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13
======
msoad
I worked at Google. This makes me sad. Sad to see people are treating a for
profit company like a religion. Google is a good workplace compared to other
companies but it's not a religion and it's not perfect. As other commenters
said it's not the thing it was before either.

I left Google to work on something more interesting and I can't be happier. If
we're going to hire people, I'm not putting any weight on their work
background.

~~~
cm2187
It reminds me of graduates who want to get into investment banking. They have
a ranking in their head of which bank is better than which other, and make a
massive deal out of getting into #2 instead of #1 or #3. The reality is that
down to #10, they will likely get a very similar experience and chances are
they will have gone through 2 or 3 of those banks on their list anyway by the
time they are 30.

And at the end of the day, what makes most of your experience is the team you
work with rather than which of the 50,000+ employees organisations employs
you.

~~~
eigenvalue
There is signalling content associated with being at the number 1 bank (and a
top group within that bank for that matter; e.g., the financial institutions
group at Goldman Sachs). If you planned on staying at an investment bank for
your whole career then this might not be so important. The majority of people
who start these jobs hope very much to jump ship as soon as possible to work
on the buy side (hedge fund or private equity), and in that regard the
signalling content is very important because there are so many good candidates
for any available spots.

------
gravypod
> I’ve spent thousands of hours reading books, writing code, and watching
> computer science lectures, all to prepare for the Google software engineer
> interview.

Shouldn't you just be doing this anyway if you want to be a good computer
scientist? That's how you learn. You constantly take in new information and
attempt to apply it and Computer Science is one of the most enabling fields of
this form of learning since 1) we all love to churn out an "Experiment" every
once and a while and have it fall into being a small side project that makes
us a few k and 2) almost EVERYTHING is free! All the info is made by basement-
dwelling nerds who sit at home and build cool ass shit and as such they put it
all on the internet! Being one of these basement dwelling nerds, it's frigin
amazing to have a wealth of all of the fields best research at my fingertips
just a google away and I love learning this stuff not for an inevitable goal
of "Being a Googler (tm)" but instead of furthering what I know about the
world.

If the author is reading this, good on you for learning but don't worry about
being a googler if you can do this then you're better then the average googler
because you're in the top 1 maybe 2% of all computer scientists if you
continually want to learn more. Google even thinks that way, look at their
higher level employees like Rob Pike, people who think programmers must be
limited because they aren't able to think as well as him about abstractions.
Don't waste your time at google. Start a company, build something amazing for
yourself or do contract work for others, write these blog posts to get more
clients, and make the world a better place. If you're this smart you don't
need to run a hamsterwheel for a huge Google-sized corporation.

~~~
linkregister
I agree he's way ahead of the game; being an engineer at Google would be a
step back unless:

1\. He gets placed as a staff engineer or director.

2\. He gets a new shiny project that for some reason he has reasonable
autonomy over.

Otherwise he'll get tired of the big-company politics. I can't imagine why a
self-starter like this would want a set of bosses.

He's already at the next level, building his own companies (likely an app here
and there). He may not be making millions but he's got the fundamentals down.
I would think that most folks on HN would much rather be able to own their own
businesses rather than being an employee at a large company.

Edit: further down some commenters investigated and figured it out: this blog
post is marketing for a Google interview-prep training he intends to run.

[https://news.ycombinator.com/item?id=13195257](https://news.ycombinator.com/item?id=13195257)

~~~
ryandrake
Interesting how you consider "building his own companies" to be the next
level. Maybe indeed this is a commonly held HN view. I've always thought doing
a start-up (or working for a medium sized company) is what you do early on, in
order to gain the skills needed and prep for the end goal: Working for one of
the top prestigious companies. Look at all the start-ups that are evidently
founded for the sole purpose of being acquired by one of the Big Boys.

~~~
gravypod
He's an ex-mil, current-genious computer scientist. Working for google would
restrict him to google work.

Working as a contractor, with a military background and a well documented
solid computer science background (not traditional of course but still rock
solid), he can pretty much right his own tickets in any R&D field. I can't
think of a better person to contract out too: worked intel, speaks Korean
(Southern dialect I presume), and proably has held a clearance because of his
MOS.

He could work on anything that goes kaboom, vroom, flys, or pushes the
boundries of human understanding (maybe even a combination of the three!).

Hell, you could even just do "boring" old software development on contract and
make sure the infrastructure behind the world doesn't fall apart (That's what
contracting programmers do). If you can branch into embeded development you
could work on medial, networking, sensor, mining, and aerospace gear.

I understand the appeal of Google, but I'd probably say that if you're the
type who likes to self study, who is so motivated that you will devote 8
months of your life to getting something right, who will pour over a book for
days on end until you've soaked up every bit of knowladge, and you're someone
who can take all of that and put it into solving problems then I don't think
your talent will be adaquatly used at Google. Google isn't that special unless
you're going to Google to say "I work at Google!"

Working for yourself, on your own timeframe, doing what this person obviously
enjoys (learning and applying that learnt knowladge), all while being paid
exorbitant amounts of money to build or help build things that push the
boundries of human knowladge and possibilites sounds more fufilling then
fixing support ticket #449,823,335,465 for Module #32,388,556 in
Chrome/Search/AdSense/Cloud software.

But I don't know, that could just be me.

~~~
sn9
Why are you calling him a "current-genius computer scientist" for studying the
foundational subjects of an undergrad CS degree?

~~~
gravypod
Because I've found most masters and PhDs don't have a rock solid understanding
of ALL of the Computer Science undertones.

Some are good at datastructures, some are good with algorithms, some are still
studying concurancy, parallelism, and distributed systems, and the rest know
cryptography (which I hold as not being a Computer Science discipline).

Very very few people have a rock solid grasp of everything (that I consider)
in the CS field. If he underwent this curriculum and actually learned all of
what he said he did he's a genious. He'd run circles around most people in a
university who claim to know the material but are 5, 10, 15 years out of
study.

One of my professors is running a class on C and writes everything like K&R
(and doesn't use free after he allocates memory. He just allocates and
forgets!). Another I have is teaching a programming language concepts class
and he says "All of these crazy lazy evaluation nonsense languages are
useless" in regards to the entire LISP liniage.

Again, by doing all of these you're far ahead of the curve.

~~~
sn9
What are you talking about?

This guy doesn't know all that. He might have it on his list, but he's still
in the middle of learning the core subjects of a CS curriculum.

And pretty much any programmer could take the time to study these topics in
depth and achieve that level of competence with them. Most choose not to.

~~~
gravypod
> Most choose not to

That's the point I'm making. He's ahead of the game just for trying.

------
bshimmin
I feel like this is some sort of promotional piece, but I can't quite get the
angle - is he a fictitious individual made up by Google? Is this an attempt by
Apple to make Google employees look weird? Is he a real person who's looking
to publish a book?

Perhaps it's entirely legit, but it just seems so, so strange to me.

~~~
kaspm
There are those of us, of a certain age, for whom the "web" was at best a
novelty while we were in school. Even through the original .com bubble,
becoming a web programmer wasn't the same as "CS". EE and CS were disciplines
for which you got hired at Microsoft (gold standard at the time), Oracle,
Western Digital, HP (on the decline), etc. It wasn't that cool.

Then Google happened. Google elevated the Web into a real software engineering
platform, and suddenly this novelty thing we were doing was taken over by the
hardcore CS graduates.

Our friends and family were like "why don't you go work for Google" and we had
to explain how what Google does and what we do are different.

I think that for some people, especially those who have worked in Web their
whole careers, the desire to work in that kind of product environment is very
appealing. So I would say this person is probably legit in their desire to
work at Google.

I have no opinion on whether working at Google is worth it or not. But even if
you end up not liking it, I suspect just being there opens a ton of future
doors. It's a win-win if this guy is successful.

~~~
ryandrake
Yea, I got similar advice during undergrad (back in the nineties, when
dinosaurs roamed the earth): The web is a toy. It's not for Serious
Developers™. Serious Developers™ do real time embedded systems, device
drivers, systems programming, control systems, etc. Don't worry about HTML
(which isn't a "real" language for Serious Developers™). Learn C and assembly,
and microprocessors. Then Netscape happened and I found myself wondering if I
bet on the wrong horse....

2 decades later I'm still not sure!

~~~
kaspm
An interesting grass is always greener perspective. I have an impression that
if you studied C and embedded programming, switching into a Google environment
and working on the web is much easier than if you started with Web/HTML and
tried to switch into embedded systems.

I took the web route and always dreamed about tackling C and embedded systems.
I did some hobby work to learn it but without doing it every day at work,
tough to keep it going.

------
swingbridge
The very fact that "preparing for 8 months for a Google interview" is a thing
highlights all the things that have gone wrong at Google and their widely
panned bad recruitment practices.

The process has become about recruiting people that are good at the silly
process and not about recruiting the best people. Probably OK if Google is in
'megacorp looking to feed more skillled cogs into the machine' mode (which it
mostly is), but unlikely the process finds the person that builds the next
Google.

~~~
sowbug
He studied C++, Unix, algorithms, data structures, and system design. Is
learning that stuff a "silly process"?

~~~
Volt
For the express purpose of working at Google? Yes.

------
ender7
(disclaimer: I work at Google)

Google is a great company to work for, but there are many great companies out
there. Don't close off other possibly-great opportunities because you're
focused on working for a single place. Some random thoughts:

\- Hiring at Google, despite our best efforts, is a mostly-random affair. The
process is optimized to avoid hiring bad engineers, at the expense of
frequently rejecting good engineers. If you get rejected, it doesn't mean
anything.

\- The average kind of eng work at Google is much like that at any other
extremely well-run coding shop. You may spend a lot of time working on backend
code that unglamorously glues two communications protocols together. It won't
require a deep knowledge of fancy algorithms, but it will require a dedication
to code quality, sustainability, testing, and personal productivity.

\- Or you may get to work on the Next Big Thing, but keep in mind that most
NBTs never see the light of day. It's an exciting work environment, but you
have to deal with a lot of chaos and a lot more politics and uncertainty.

\- The benefits are great, the work environment is great, and the average
quality of your coworkers is great. This is the best thing about Google. If I
were going to work somewhere else, I would prioritize these aspects.

\- Google, like all large companies, is an uneven experience. Some excellent
engineers get hired here who never really "click" \-- they get put on projects
they don't find interesting, they don't get on with their coworkers, etc. The
vast majority of your coworkers will be really outstanding, but there will
always be at least one person who you think is kind of an idiot. Most managers
are great, but there are still a few assholes. If yours is, then you won't
have a good time. Google does its best to minimize all of these problems via
things like how it handles promotion, but there's only so much it can do.

Long story short: self-improvement is its own reward. Doing things is how you
prove the truth of that improvement. If you can combine that with a great work
environment, you're pretty set.

------
untog
It fascinates me the extent to which he regrets not getting a Computer Science
degree, and says it impacts how hireable he is. Obviously, data point of one
here, but I don't have one and it hasn't come up once in my career.

 _You may not see web development and software engineering as different
positions. Both involve programming and craftsmanship, but software
engineering adds to it knowledge of data structures and algorithms, compiled
languages, memory considerations, and understanding the impact of coding and
architecture decisions on the machines where they reside._

I think that's a simplistic view of what "web developer" is these days. I work
in the web for most of the time and I absolutely have to do deal with memory
considerations as well as code and architecture choices. And if you're a full-
stack developer you're likely dealing with some kind of compiled language on
the backend.

 _In brief, Google is a company that hires smart, creative people, and treats
them well. Google rewards merit, encourages big ideas, and gives employees the
freedom to make good decisions for the user._

I very much question that, in 2016.

~~~
duderific
> It fascinates me the extent to which he regrets not getting a Computer
> Science degree, and says it impacts how hireable he is. Obviously, data
> point of one here, but I don't have one and it hasn't come up once in my
> career.

Same here, except for when I interviewed at Google. :) I was interviewing for
a frontend position, and I got through the interviews ok and was passed along
to a few departments. Payments was interested in hiring me, so I got passed
back to the "hiring committee" who has the final say. I started receiving
emails from the Google recruiter (who was the go-between between me and the
hiring committee) with specific questions about my degree (Anthropology from
Berkeley), the timeframe I attended and what my GPA was. In the end, they
decided not to hire me, even though the Payments team had expressed interest
in hiring me, even saying "we'd love to have you on board." I can only
conclude that it was specifically because of my education (or lack thereof).

~~~
majormajor
Google HR seems generally terrible at keeping things straight since they're
such a massive company.

I had a recruiter call me up "hey just wanted to follow up, I see you
interviewed with us 6 months ago and did great, wanted to know more about why
you aren't working here and if you might be more interested now" and had to
tell him "well, I didn't ever get an offer, so that would have something to do
with it..."

------
charlieegan3
This has been posted quite a few times in the last few days:
[https://hn.algolia.com/?query=why%20i%20studied%208%20months...](https://hn.algolia.com/?query=why%20i%20studied%208%20months%20for%20a%20google%20interview&sort=byPopularity&prefix&page=0&dateRange=all&type=story)

Most of the relevant comments are at
[https://news.ycombinator.com/item?id=12649740](https://news.ycombinator.com/item?id=12649740)

------
preordained
Something wrong with this guy...all this future Googler talk with disclaimer
asides about "what if I don't get hired"...and yet he's talking about how you
can do it and your success plan.

Anyhow, in general it's getting really weird hearing more stuff like "Google
is the best" and "I just have to work there". I question your judgement if you
are making these sort of statements as an outsider. At least join the party
before you drink the koolaid.

~~~
ubercore
Honestly, if I'm a hiring manager at Google, this would turn me off. I
wouldn't reject him outright, but it's a yellow flag in terms how effective
he'd actually be performing his job.

------
projektir
This makes me wonder...

The idea of studying for the sake of making it a certain company, for some
reason, turns me off. Never had the personality to do things only because a
parent/teacher/company wanted me to do it.

But, if there was something more fundamental to study for, like a certificate,
or a project, or a competition (something more advanced than a hackaton),
that'd actually be really interesting. The relative success or failure with it
could, then, provide feedback. I guess Project Euler is kind of close, but
it's a bit too much of a one-person affair, and only the right answer matters.
In other areas, there are often communities where more experienced people help
out the less experienced while collectively getting better, and there are
tangible goals at every step. Video games come to mind.

Unfortunately, all I've seen is always around data structures, small scripts
and hacks, time-gated, overly simple, and promote what I would call bad code
or shallow understanding. It makes you good at the events in question, and you
can get some certificate, but whether or not it's actually making you a better
developer is suspect and the correlation is often backwards, if anything.

So the only solid goal a lot of people see is getting hired by X company, and,
by extension, getting better at interviews. Because that's something you can
measure and get good feedback from and it's a lot simpler than trying to
figure out what being a good software developer means.

~~~
jiaweihli
I would bet that a lot of companies consider certifications to be a negative
signal when evaluating candidates.

Likely because the certifications aren't meaningfully standardized, so there's
not much point in seeking external validation unless you're not confident in
your skills.

------
ilaksh
I used to think the CS-y whiteboard interview stuff was a complete waste of
time. But now I look at it as a way to prove objectively you have a computer
science skill/knowledge-set. Which is nice because it evens out the playing
field because many who have the degree don't have the skills and many who
don't could acquire them. So its like a bar exam.

There is still an issue though because computer science base knowledge
generally lags behind industry-relevant practical knowledge. For example,
algorithms and data structures generally accepted as core knowledge do not
take enough advantage of today's relatively high RAM availability. And there
is not enough emphasis on higher-level components.

You could argue that everyone has to know that old-fashioned basic stuff well
and then layer on newer knowlege or perspectives, but I think some of what is
considered computer-science core knowledge should be replaced with newer
practical things like understanding components and modules and being able to
use contemporary tools.

So maybe less emphasis on optimizing algorithms at the procedure level for
starters. It might be more important for most engineers to be good with
profiling tools and understand the order-of-magnitude differences between
memory/CPU/network latency etc. than do be able to do a third-degree low-
memory optimization of a function.

~~~
plussed_reader
"For example, algorithms and data structures generally accepted as core
knowledge do not take enough advantage of today's relatively high RAM
availability."

Wouldn't it be prudent to keep your algorithms as lithe as possible? I would
think an algorithm/scheme that chews up large amounts of ramm would be
perceived as inefficient?

Kinda like the dumpster fire that is Chrome, currently.

~~~
ilaksh
Case in point. Read the Google engineering articles describing the work
optimizing V8's memory usage. That primarily involved using profiling tools on
lots of web pages and then changing the initial size of buffers.

But they still have to use relatively large buffers from an old-fashioned CS
algorithm perspective and they couldn't make them smaller without impacting
performance the other way. And they can't know that without doing the
profiling on the whole system.

So yes you want functions to be lithe but you have to also focus some time,
skills and knowledge on optimizing the entire system using tools and real-
world data.

------
marsrover
> Wherever I end up, I’m going in as an entry-level software engineer. I’m not
> going in with 15 years of software engineering experience because I simply
> don’t have it. When it comes to this stuff, I’m the equivalent of a fresh CS
> grad.

Talk about selling yourself short. You've been a web developer for 15 years. I
would think you've progressed a little further than entry-level.

~~~
hahamrfunnyguy
You'd be surprised! I've interviewed many "veterans" (and worked with a few!)
who just don't have the chops.

In the world of web development, the developer who knows just enough to skate
by without a proper understanding of algorithms and design patterns seems to
be the rule rather than the exception.

Kudos to him for acknowledging it and trying to do something about it.

~~~
rhizome
_skate by without a proper understanding of algorithms and design patterns_

In your estimation, what are the most important algorithms and design patterns
to know for _web development_?

~~~
hahamrfunnyguy
When I say web development, I am really talking about web application
development. The same skills that apply to a native developer apply to a web
developer.

On the design pattern side, MVVM and MVC are integral to modern web
development. Inversion of control and delegates are used in many JavaScript
frameworks in server side frameworks like Node and .NET

Knowing about different search algorithms comes in handy, as does knowledge of
data structures and encoding. With understanding basic CS fundamentals, you
can better understand how the framework is doing things under the hood and
make informed decisions with how to proceed with a given implementation. It
also really helps with troubleshooting when things go wrong.

~~~
rhizome
That 99% of algorithms and design patterns are apparently "nice to haves" in
web development means deficiencies in them do not constitute "skating by." I
only raise this point because there appears to be a huge (and possibly
intractable) disconnect between practical needs and theoretical ones when it
comes to hiring.

------
jondubois
The thing about constantly learning new things is that after about 10 years
you start to forget the old things. The new stuff kind of overwrites the old
stuff after a while.

What I find annoying about technical interviews is that they force me to
review useless, basic stuff that I learned 10 years ago instead of asking me
about all the cutting edge (and much more interesting/difficult) stuff that I
have learned more recently.

~~~
goda90
If you're forgetting it after 10 years, then maybe it's not important. And the
alternative shouldn't be the new stuff, because we don't know if that's
important yet. It should be the old stuff that people don't forget.

~~~
jondubois
Exactly. It's not important... Except for the interview - Which is my point.

------
sixtypoundhound
Sorry, the concept here is mildly depressing.

Go study for 8 months to be awesome, focusing your time on subjects directly
related to improving your awesomeness.

If your awesomeness happens to match a need at Google, great. Otherwise,
you're still awesome and will wind up somewhere worthwhile....

------
yawz
When I saw that title, I was torn between "because you're an idiot" and
"because you know what you really want". I'm old enough to know that everybody
has an opinion, but I can't help but thinking that studying full-time for 8
months for a job interview is wrong. 8 months is a very long time, and I can
easily think a dozen professional contexts where such a time could be put to
much better use. It is sad.

~~~
yeukhon
Put the possible self-promotion, what not aside, I'd be happy to study for a
few months without worrying about working full time if I have revenue
generating on the side. This is like attednding hacker school for 3 months and
my sole goal would be to learn to make something I never had a chance to do
it.

This is like preparing for marathon for 12 months every weekend. I am happy to
do this just to make myself more knowledgeable with computer science.

I graduated with a degree and I am sorry to say I haven't really make use of
my knowledge greatly because there isn't much to use algorithms or data
structure in my position (I work as a DevOps) to the extend of building
something truly amazing.

------
simmons
I started reading this thinking it was nuts to put so much effort into
targeting one specific company. But by the end, I couldn't help but admire his
willingness to set a goal and put in some serious work to accomplish it!

------
dudul
It reads like a PR piece. If it had stopped at "Now I want to be called a
software engineer and I'll study for that", it would have been a nice story
about setting goals, and working to get there or whatever. But the whole
"Google is so freakishly awesome dude! I need to work there!! it's the most
better company in the world!" is kind of a turn off.

I can't believe that Google Careers site actually recommend that candidates
should study "Cracking the Coding Interview, 6th Edition". This is completely
nuts to me.

~~~
deeteecee
honestly, that book has become like the standard now. i agree that it's
completely nuts but here i am, reviewing it even after being in the industry
for at least 3 years.

------
tayo42
How are these people that study for what ever company so certain they'll even
get an interview? I'm still waiting for Google to acknowledge my application
from last year lol.

~~~
tempw
he has a referral, it's said on the post.

~~~
Retra
And now he has the post, so even Google can google the magnitude of his
devotion to them.

~~~
JupiterMoon
[https://news.ycombinator.com/item?id=13195131](https://news.ycombinator.com/item?id=13195131)

------
jefferson123
This should not be promoted as a case study, or a success story for people to
aspire to emulate.

I hope this guy the best, but he obviously has some mental issue and he's
trying to find solace in talking about it publicly.

~~~
rhizome
What's the obvious part?

~~~
jefferson123
I think it's the goal he chose that is making it obvious: devoting his time on
earth to landing an entry level job at some company -- a hyper materialistic
and anecdotal "goal" at best.

Calling it a goal is funny because it has no value for life, to go all
Nietzsche about it.

This is just drinking the capitalistic kool-aid and confusing it with
something loftier. I call this a mental issue.

~~~
rhizome
Nietzsche had his own mental problems, not the least syphilis, but in the
spirit of life's values let's go to the text:

"Much that passed for good with one people was regarded with scorn and
contempt by another"[1]

1\.
[http://4umi.com/nietzsche/zarathustra/15](http://4umi.com/nietzsche/zarathustra/15)

------
mathattack
Isn't it really, "Why I studied full-time 8 months for a Google job." This is
actually shorter than the 4 years of a BS in Computer Science for the Google
job.

------
whatever_dude
[https://en.wikipedia.org/wiki/Goodhart's_law](https://en.wikipedia.org/wiki/Goodhart's_law)

I'm sure he has learned a lot, but when you study with an interview in mind,
you're not necessarily studying to be a good developer; you're studying to
look like one. There's some correlation, but it's not the same thing.

~~~
prashnts
This is so true. There are coaching centres here in India, pulling in millions
each year to prepare kids for the premier engineering institutes here.
Hundreds of thousands of kids join these, but I am still to see even 10% of
them working on interesting problems. Like another comment here notes, most of
them are becoming a commodity.

------
divbit
Hmmm... I can't quite fault the guy if that's what he really wants in life - I
put about 3 months (an entire summer) into unpaid studying for grad school
prelims (i.e. I didn't request a teaching assignment for the summer) and ended
up being the only person to pass all three exams at once that fall (Note: I
think there were a couple people that passed the exams by spreading them out
over the space of a year or two).

On the other hand, this seems like something you can only easily do if you are
young / no kids / or have tons of savings (rich)... (I strongly doubt my wife
would put up with me doing this now) so hopefully for the crop of people that
want to work there it is not the norm / maybe their age diversity would
benefit from making applicants work record count for a bit more or something,
idk.

------
tristor
I appreciate all the effort this guy has gone to in order to document his
process and progress. I don't know if I agree that the end goal is worth the
effort, but along the way he's collected a nice corpus of knowledge that any
strong computer engineering person should know and made it accessible to
others.

For myself personally, I don't have a strong formal education in CS, I'm just
a smart cookie who picks things up as a I go along. I've also never worked as
a purely software developer type role, since I'm Ops/Hardware/Sec focused. But
all of the information in here is stuff that is gold to know. I'm definitely
going to be using this as a resource to understand the pure CS stuff better,
even though I have no intention of ever pursuing a job at Google.

------
londons_explore
Most Google engineers, if asked nicely, will give a mock interview and give
feedback on if you're (in their personal opinion) above the hiring standard.

There are thousands scattered all over the internet - just scout one out and
ask.

------
ctvo
Did he actually get hired?

~~~
Fluid_Mechanics
Rejected for being over 30.

~~~
sizzzzlerz
I've been expecting somebody to point that out. Google is notorious for
finding excuses to reject otherwise competent interviewees who happen to be
above a certain age. They always hide behind "You're a great candidate,
but..." and then list a weak excuse to not give them an offer. It's illegal
and immoral but almost impossible to prove.

------
KON_Air
This is just "preposterous". Either the author has an overblown image of
Google or has no selfesteem.

------
fapjacks
This makes me feel weird. I interviewed at the Googleplex one time for an SDE
position and got an offer that I turned down. I didn't prepare at all. I
didn't even get very much sleep the night before.

------
eva1984
I think we need to make a clear distinction between 'Working for Google is
cool' and 'There are many cool people working at Google', otherwise this cult
worshiping is never going to stop.

------
geebee
Great write-up, thank you to the OP for putting this on the web! I have a few
thoughts on it.

First, I'm not all that surprised someone would study for 8 months for an
interview at Google. I interviewed there (no hire) and gave myself 3 weeks. It
wasn't close to enough time, and I've taken a lot of formal math and basic CS
plus data structures. Just too rusty, especially at a whiteboard. I could
easily have spent 3 months.

Various people here have cautioned against working at Google, and I know
people who worked at Google (as SSE's) who cautioned me about it when they
heard I was interviewing. No, not in a "run away" sense, more of a "don't get
too starry eyed here, it's not that great" sense. But salary-wise, a SSE role
at Google would have paid a hell of a lot more than I make right now. I'm just
saying, I can see why people put in the time. And plenty of people do love it
there.

My advice to people who have more of the fundamentals is to get a copy of
"Cracking the Coding Interview" and just making damn sure you can do the hard
problems in 45 minutes at a whiteboard. Memorizing won't help you, you need to
understand what you're doing on a deep enough level that you can solve similar
problems you haven't seen before.

I also recommend knowing basic data structures like the back of your hand.
Really, you can't be trying to remember how to program a queue or stack, or
traverse a tree, not if you need to use these concepts to solve a more
complicated problem in 45 minutes at a whiteboard [1].

Now, on to the other side here...

I love a few things about software. I love it that an econ major who self
studies intensely can get "high level" jobs. I love it that no cartel controls
entrance, and can force everyone to do a 3 year grad degree with tuitions at
50K+ a year. I love it that really smart people can move at a faster pace
because they learn quickly.

However, I don't love it that corporations are essentially our gatekeepers.
The "google interview" shouldn't e called an interview, it should be called
the "google exam". Calling it an interview creates an ambiguity that confuses
people outside our industry. I know people who work in other fields, and while
knowledge is probed during interviews, what they go through is vastly
different from what we go through in software. My "interview" at Google was a
series of whiteboard exams.

Here's what I don't like about this - someone like the OP here studies,
intensely, and takes his exams. Suppose he didn't get the job. Well, how _did_
he do? If you take the actuarial exams, or the nursing boards, or the bar, you
get a sense of how you did. There is more transparency around the test. There
has to be.

As far as I know (based on what I've read about this interview process at
Google from people who know, including the author of Cracking the Coding
Interview), my name, along with very formal numerical scores, along with
photos of the whiteboard after each interview/exam, are in a database at
Google. However (yes, for legal reasons), I am not allowed to know more that
the vaguest details about this.

A formal exam, in almost every field, has a published study path. It is graded
in a way that is audited to ensure fairness and consistency. It must not be
capricious. A student has an opportunity, often, to try again. Your hard
study, should you pass, leads to a lasting credential respected by industry.

We get none of this in software. I honestly do believe that the tech exam is a
big part of why a lot of people quit software development or never enter it in
the first place - this in a field where CEOs regularly lobby congress and the
president to lament a shortage of tech talent.

We do need to fix the technical interview. I think the first step is to
realize that it is a formal exam, and that as such, it needs to come with the
usual benefits and considerations afforded to people who take formal
professional exams in other fields.

~~~
rockdoe
Did you factor in cost of living when doing the salary comparison?

~~~
geebee
I already live in SF, but yeah I agree it should be a consideration.

------
fdsfsaa
This guy is sad. All those people on Quora who ask unending questions about
Google are sad. They're suckers. They've eaten up Google's marketing.

You want to know the reality? Whatever's special about Google is long gone.
Management let the smoke out a long time ago. Nowadays, Google is just another
big software company, with all the opaque politics, purposelessness, and
random nonsense that comes with being a big company. It's sad to see people
strive to be a faceless drone.

~~~
ryandrake
(Disclaimer: not a Googler)

Like it or not, Google is consistently ranked near the top or #1 on all of
those "Best places to work" lists that get published from time to time.
Everyone I know who has managed to get hired there sings its praises, and none
of them have left (yet). I think it's unlikely that each one of their opinions
is fueled by Kool-aid. There's something to it.

I don't think this guy is sad at all. I really admire what he did. It's pretty
inspiring/motivating actually.

~~~
dublinben
The median employee tenure at Google is only 1.1 years, so clearly lots of
people are leaving. [0] They are right in line with much-derided Amazon.

[0]
[http://www.slate.com/blogs/business_insider/2013/07/28/turno...](http://www.slate.com/blogs/business_insider/2013/07/28/turnover_rates_by_company_how_amazon_google_and_others_stack_up.html)

~~~
evanws
Median employee tenure is almost entirely dominated by things other than
employees leaving. A company that is not hiring will not have any new
employees and as a result have a really high median tenure.

The question you really want to ask is: what's the percentage of people
leaving each year?

~~~
Retric
~40% which is a _really_ bad sign.

PS: Median tenure of 1.1 years + company sizes this and last year gives you a
good estimate of turnover.

------
cagataygurturk
So desperate. It is like going to gym to date with Adriana Lima.

------
isaac_is_goat
For crying out loud, what is wrong with people today.

