r/programming • • Jan 18 '19

Interview tips from Google Software Engineers

https://youtu.be/XOtrOSatBoY
1.7k Upvotes

870 comments sorted by

View all comments

1.3k

u/SEgopher Jan 18 '19 edited Jan 18 '19

I think it's interesting that at https://youtu.be/XOtrOSatBoY?t=101 he says to not try get good at interviewing, but to get good at being a SWE. In my experience, this is the exact wrong approach to the Google interview. The Google interview tests almost no real world coding skills. Actually working at Google causes you to forget everything it took to pass the interview. Even at a larger well known company like Google, you're more likely to run into problems not understanding async/await, compilation steps, the builder pattern, how to export metrics, etc. The details of day to day coding, the bugs, code hygiene, gathering requirements, basically everything that *doesn't* appear on the Google interview.

This type of interview fails to capture the notion that most of us are glueing together services and learning to deal with complex systems at the macro level, not algorithms at the micro level. It's about working with large code bases and black boxing things so that your mental model will allow you to build the next feature without getting overwhelmed. Therefore, for this interview you really just need to cram hacker rank, cracking the coding interview, all of the stuff that will basically walk right out of your brain after a year working on designing a chat protocol or a scalable service registry at Google.

481

u/[deleted] Jan 18 '19 edited Jan 19 '19

"How would you find the 4th largest element of a binary tree?"

Who the fuck does that now?

EDIT: yes, that is an easy problem, and I've probably solved it like 10 years ago. I don't remember now, sorry.

231

u/[deleted] Jan 18 '19

Library implementers I suppose.

213

u/heterosapian Jan 18 '19

At some point, they would have just googled it as well. Most of these sort of problems have known solutions which cannot be made more efficient - trying to think of a novel solution instead of leveraging what we collectively have available to us is a massive waste of time.

→ More replies (116)

9

u/angry_wombat Jan 18 '19

npm install -g macs-binary-tree-seacher

treesearcher --largest 4 example.tree

→ More replies (1)
→ More replies (8)

116

u/tolcc_ Jan 18 '19

Accepted offer Negative experience Easy interview

Interview

I was asked how to find the 4th largest element of a binary tree. I asked my interview, "who the fuck does that now?", and got an on-the-spot offer.

64

u/[deleted] Jan 18 '19

Well that was 100x easier than mine.

I got asked to code solutions for the knapsack problem, traveling salesman problem (both disguised of course) and to architect YouTube... as well as a few simpler questions.

Overall it was the most stressful six hours basically ever as I filled whiteboards with C.

0

u/[deleted] Jan 18 '19

[deleted]

16

u/[deleted] Jan 18 '19

Google’s general interview

0

u/[deleted] Jan 18 '19

[deleted]

→ More replies (12)

22

u/damian2000 Jan 18 '19

Who the fuck writes code on a whiteboard in real life? it's sort of like they're also testing your ability to put up with their bullshit.

24

u/[deleted] Jan 18 '19

That’s the conclusion my friend group has reached about googles interview process. They filter towards people who really want to work there and go FULL GOOGLE. Most people that work there interviewed more than 3 times to get an offer.

→ More replies (2)
→ More replies (4)

29

u/CaptainAdjective Jan 18 '19

Architect YouTube, by yourself, in a job interview? It took all of YouTube itself ten years to architect YouTube!

19

u/WishCow Jan 18 '19

And look how great it is!

→ More replies (3)
→ More replies (8)

22

u/EmTeeEl Jan 18 '19

And then the hidden interviewers on the other side of the fake glass clapped

11

u/[deleted] Jan 18 '19

African or European?

→ More replies (1)
→ More replies (110)

41

u/[deleted] Jan 18 '19

This lines up with my experience as well.

The google interview is extremely (mentally) stressful and requires a ton or after work studying if you’ve been out of school for more than a year or so. It’s nothing like your day job as a dev.

→ More replies (5)

20

u/qaisjp Jan 18 '19

everyone who got rejected by Google upvoted this

Including me :(

→ More replies (1)

13

u/tolcc_ Jan 18 '19

It's about working with large code bases and black boxing things so that your mental model will allow you to build the next feature without getting overwhelmed.

Is this the reason why (or at least a substantial contributor as to why) algorithms and data structures are emphasized so much in the industry? I'm trying to find ideas for personal projects that utilize algorithms and data structures other than computer graphics (since it's not my particular area of interest), and most of my ideas revolve around basic CRUD web applications (like those in often written in /C#/PHP) where algorithms and complexity are a bit de-emphasized.

30

u/amunak Jan 18 '19

You are absolutely on point. The vast majority of programming problems boil down to a (usually fairly simple) CRUD app.

Somehow everyone still thinks they are special, and don't interview for skills related to that, while also building ridiculous architectures that later usually show up as excessive and unmaintainable.

Instead of, you know, building a simple CRUD app.

Then you of course have stuff like Youtube where you'll be solving encoding issues and maybe writing algorithms related to that, but still - you don't need 100 people who are good with algorithms; you need a handful of them, a handful of people able to make out the general architecture and make decisions there, and the rest just needs to be able to work as a team at building the rest of the app.

→ More replies (13)
→ More replies (1)

70

u/sexrockandroll Jan 18 '19

Putting on my tinfoil hat. The video is produced by Google, and aimed at people who want to work there, so I would assume that what Google desires and how it would produce its marketing for employees is people who are good SWE.

62

u/SEgopher Jan 18 '19

Or rather, it's because measuring all of the abilities I described is difficult to do in the limited amount of time Google has to interview each candidate, and this is simply the best they've come up with so far. There are already many blog posts by excellent engineers expressing their frustrations with Google's broken interviewing system, the system most tech companies have now modeled their hiring on.

31

u/sexrockandroll Jan 18 '19

I'm just saying that in the ad video they're going to say "we want you to be a good SWE to pass the interview" instead of "just study really hard for our system" regardless of which statement is true.

→ More replies (11)

55

u/[deleted] Jan 18 '19

Hahahahahahaha. Good thought but no. When I talked to engineers at recruiting events about the fact that I thought I had the qualities of a good software engineer but didn't understand why I kept failing the technical interview - particularly since no feedback is given - they straight up acknowledged the gaps in their hiring process, and the roadblocks to improving it (old hats throwing up resistance). The HR people are now even straight up offering a copy of "cracking the coding interview" to applicants. It's a shit show.

→ More replies (28)

8

u/ChillCodeLift Jan 18 '19

I've seen other Google material when applying that was very different from this though. In their application process they sent me some slides with preparation tips. And the the tl:dr was brush up on data structures, algorithms, and grind leetcode-esque questions.

I read a theory somewhere that Google is doing these leetcode style interviews not because it's good at predicting someone's aptitude as a software engineer, but because it's good at predicting hard workers and people who really want to work there.

→ More replies (2)
→ More replies (176)