- "Oh, you're using a laptop"
- "Do you really need to use that?"
- "Just write it on the whiteboard"
- "It would be easier to see on the whiteboard"
They also didn't give me a mouse, so using the trackpad was slow.What I hate most about whiteboards is how you can't easily insert lines so you have to leave lots of space. I tend to write code like an onion rather than top down.
I think one way to do well in that interview, is to pretend you're the professor and they're a student, and you're working through course material.
In the end, it's just showing them that you passed the socio-cultural hurdles they think are necessary, even if they no longer explicitly check GPAs and which school you came from at interview time.
Why?
Google is more often than not the first job these employees have after school, and many stay there almost forever after. A large percentage are masters or PhDs.
Google is founded by two Stanford grads, both children of academics, who never worked in the industry outside of Google.
Academia is hence the reference point against which Google measures things.
Google is structured in many ways just like a university. Publish or perish (Design docs, PRDs). Thesis committees (perf "calibration" committee, interview committees, etc) and review (intense code review). Even down to the physical "campus" structure. On site cafeterias, even housing/dorms (GSuites, etc)
It's something that was very foreign to me having worked in the industry for a decade before, without a degree.
If that's what they want, they should give out the questions in advance, and have the candidate prepare a slide deck. No professor conducts class by having students show up and fire random questions at them all semester.
More explicitly, if that's what they want, they should say that.
That's one of the higher leverage activities for an instructor. Anyone can go read a book, watch a video, or do some practice problems, and lecturing at a bunch of students isn't a great way to convey information, either in absolute terms or compared to those alternatives. The instructor's job is to tell you which books to read, why the material matters, and contextualize the course against other things you care about. The particular road they tell you to travel depends on where you currently are, and a 2-way conversation is critical to getting good results.
https://en.wikipedia.org/wiki/Dysgraphia
In some ways I'm grateful for Covid's impact on the job market because I now have many alternatives to physically drawing on a whiteboard. I can use TikZ as fast as my professors can draw, and I can put that on a monitor in a conference room. I've even used it on exams before.
I would probably struggle for reasons unrelated to my actual competence as a programmer if I was forced to use a physical whiteboard during an interview. Your comment made me appreciate that I'm graduating into a different world than 4 years ago.
Big mistake. The method names get so long I was kept running out of space on the whiteboard and it took forever to write it.
I don't remember exactly what I wrote anymore (it was over a decade ago), but this site[1] has some examples of really long property and method names in Cocoa (its framework), like:
splitViewControllerPreferredInterfaceOrientationForPresentation
or
initWithBitmapDataPlanes:pixelsWide:pixelsHigh:bitsPerSample:samplesPerPixel:hasAlpha:isPlanar:colorSpaceName:bitmapFormat:bytesPerRow:bitsPerPixel:
Anyway, for that and other reasons I didn't get the job (I apparently didn't prepare quite the right things, despite preparing for a few hours every night for the two weeks prior, which is how long the recruiter gave me before flying me to Mountain View, so my performance for at least two of the six interviews I had that day were a bit weak).
Screening interviews do take place in a shared doc or other editor, I believe.
Is this what lots of the folks mean when they claim tons of candidates “can’t even code?” Syntax or some names aren’t right for some particular language?
Shit, I forget the syntax for “for” loops or what the right way to get an array’s length is or what this language’s way of declaring a constructor looks like in languages I’ve written several hundred of lines of in the last few days, routinely, while under no real pressure at all. I crib off my own surrounding code for syntax hints constantly.
I’ve been doing this north of 20 years, and tend to end up as the guy to go to for tricky problems wherever I work, but I would fail 100% of whiteboard code-writing tests that gave any fucks about it being remotely correct in any particular language. I think the last time I could maybe have done it was when I knew only one language, and it was Perl, and I mostly wrote it in notepad—so, like, the first year or so after started writing code.
Or even using V = std::vector<T>;
for a concrete type T
Solves the problem. If someone denies you this, you don’t want to work there :)
Don't get me wrong I think it's silly, but