How I Embarrassed Myself in My Interview With Google(globalnerdy.com) |
How I Embarrassed Myself in My Interview With Google(globalnerdy.com) |
Iterating over a hash slightly wrong when writing code in a google doc during an interview is such a stupid, trivial thing to be judged on, whether it's you or someone else doing the judging. It's clear from the "My lame attempt" example that the basic concepts are understood, and if he's written a series of articles about the Enumerable module then he probably knows it better than the majority of professional developers working with the language.
If this is a serious article, then it really highlights everything that's wrong with tech interviewing.
A programmer without a portfolio of source code is like a painter without a portfolio paintings.
I assume Google scouts are usually looking to hook the exceptionally rare "Monet" and "Picaso" software engineers swimming around in an ocean overcrowded by "PC techs".
There is a quote by Linus Torvalds that is fairly relevant here. "Talk is cheap. Show me the code."
Your resume is nice... Cute even. But without the code to back it up, there is nothing to critique your actual skills.
Perhaps another side is that he didn't seem to be guided to the correct solution during the interview process, which would concern me more than not getting it right first time if I were hiring.
CRUMB : BREAD :: (A) ounce : unit (B) splinter : wood
How much confidence would you have in a version of the SAT that was reduced to just one question which determined the entire score?
It's exactly analogous to tech interviewing. It's like saying, oh he couldn't even get that analogy right! He can't do analogies. Same thing with giving people one programming question. Much less nitpicking that one question...
So we are forced to go on lots of interviews and just hope that we happen to quickly grok the one or two problems they give us -- so we'll look "perfect" in that short period of time. which is eventually almost certain given enough interviews. but you can't be super confident to pass any particular interview you might have had your hopes on.
Looking back, it was pretty silly but man did it really kill the confidence of 19 year-old me when it took me 10 minutes to work out that it detected numbers that were powers of 2. It really gave me a negative impression of Google's interview process (that and the complete radio silence afterwards), which I still think about when they send me their bi-annual recruiter emails. Funnily enough, the last email I got specifically mentioned that I had "done really well in the recruiting process in the past".
Umm, sorry, no. You wouldn't believe what kind of 5-level-nested-if C++ statements you could find in Google's codebase. Google might be known for its technical abilities, but "affinity to functional programming ideas" is generally not one of them.
Programming languages are powerful things with which you can do a lot of very different things and tackle very different issues. Sometimes it's database querying, sometimes complex data structures, sometimes parallelism, genericity, business data modeling, etc. etc.
There should be a list of "warm up" exercises somewhere to help people prepare for general tests and make sure they've touched at least every subject once before going live.
Also, did you not sign an agreement with Google that you wouldn't share interview questions before you started interviewing? I think sharing questions is generally considered somewhat uncool.
People who reject physical reality should receive a bit of negative conditioning about doing so...
He should have chosen a language he is better at. If Ruby is indeed his top language, and he's rusty at that, then perhaps OP just isn't fit for a coding job at this point in time?
- A language with a REPL so that I could check my ideas in a terminal window. - A language that would reduce the amount of typing I'd have to do - A language I that I was half-decent at (at lease at one point)
And Ruby fit all those criteria.
"So, I found your resume... blah blah blah, you say you've done XYZ, blah blah blah, send me a copy of your resume."
WTF?
I said "um... you're google - don't you already have all my information?" a bit jokingly, and she laughed a bit. I then told her I wasn't at my computer, but if she Binged my name, my site would come up, and she could grab a resume from there. A few mumbles later, I got "OK, got it! I'll get back with you in a couple days with the answers to those questions!" I'd asked a couple questions about the job. That was early August - no followup. As unprofessional as any other hack recruiter imo. I guess I shouldn't have expected more, but I did.
tldr: I told Google to Bing me.
"Do you have a more recent resume available? The one I have looks like was last updated in 2007" would be far more respectful - it would show you're looking at it, parsed it out, and are giving the other person a chance to polish things up if they want.
"HEY! I just found your resume! .... Send me your resume!"
"Waiter... I was just looking at your menu... things look really good. Could you please bring me your menu?"
It just sounds stupid.
A good engineer spends about 95% of their time discovering new things to learn about their craft. An even better engineer uses what other engineers have already discovered and shared with the world to further their understanding.
If the world only consisted of the "even better" engineers things like this wouldnt ever exist. http://swtch.com/~rsc/regexp/regexp1.html
When I hear, "I want you to develop a mini google.", I feel that the only right answer to the question is, "No thats not a problem that needs to be fixed anymore. Lets actually fix a real world problem that affects real world people."
There are very few new generation software engineers that are truly hackers at heart. Its really sad when a company like Google doesnt even know how to look for them anymore.
http://en.wikipedia.org/wiki/Inverted_index
As for the interview, I really wouldn't sweat it. Even if you didn't do well in the eyes of your interviewer, 1. there are several interviews that they are looking at, not just one, 2. people understand that folks get nervous and can screw things up sometimes, and that whiteboard (or google document) coding isn't the best measure of intelligence. Because of this, they're usually more interested in how you respond to feedback than the merits of your first attempt, and 3. there's a lot of luck to any interview process - what questions get picked, etc. and even if you don't do well I wouldn't discourage you from trying again in the future.
If Google just wanted people to take existing publicly known parts and hook them together, they would be recruiting people fresh out of community college instead of fresh out of masters and PhD programs, and they'd be offering around $50k/year salary.
Google is trying to find people who can create the parts that ordinary programmers hook together.
Also, having the "this is not a problem" attitude is a red flag; what else would this person not consider a problem when I hire them?
If you honestly are looking for a job and aren't looking to make some kind of F-U 2 The Man statement, do yourself a favor and don't give an answer like that.
If you were asked to write a regex engine as an exercise you'd say "No thats not a problem that needs to be fixed anymore."?
How would you expect to be able to improve performance of regex engines without understanding how a basic regex engine works?
It all depends on the tone and the body language and if they're able to continue with guidance.
Google interviewers are interested in how well you can code (or design a solution) in a whiteboard for 45 minutes. I'm not claiming that it's the best way, and who knows, it might be the absolutely horrible way to interview candidates, but that's the way it is here.
It works as long as majority of the CS population dreams of a Google job. There are so many candidates that having a high false negative rate really doesn't matter. However, as Google slowly becomes less popular, it's current interviewing procedure might not work anymore.
I think that having high-quality open source project is a reasonable indicator of a person's technical abilities. For companies with a smaller stream of candidates, it would be silly to ignore such sources of information.
By the way, I am always surprised how obsessed people are trying to get into Google. After some persistent bugging, I went through a phone interview. I was invited for a follow-up interview, but decided that they could not offer the kind of position I was interested in. (No, I don't want to work 18 months in site reliability engineering when my interest lies with natural language processing.)
I'll start doing stuff on Github when I genuinely feel like it (probably soon, I have a few pending personal projects that would make sense there), but recently it feels too much like you should do stuff on Github because it's going to impact your future. Similar to how you should get a college degree, should nurture your LinkedIn profile (not sure anyone cares about that anymore), and so on. Bleh.
(Non snarky response) I dunno. I joined Google in 2008, and as far as I know Google was always like that. So, unless you claim developers have preferred Facebook etc. to Google for more than 5 years now, it's probably not related to the interview process.
But advice really depends on the context of the person: what they've done, what degrees they have, what type of job they're looking for, etc. But to address the type of people the "show me the code" response is geared towards: instead of a github profile I would say build actual products.
Code in isolation is hard to understand, even to the point where its nearly useless. But having a couple of full blown web applications that do something useful shows all an employer needs to know (even if they have 0 users). Everyone can understand actual sites that look polished and professional, and shows that this person will bring value to the company (whether from a business perspective or from being a competent programmer). Good coding practices can be taught or enforced through process, but being able to construct an actual non trivial product is what employers really want.
How the code actually looks is less important than what it does. Of course, feel free to put the code on github if you want, there are some interviewers that might consider that a bonus. But for most people its too much effort to make any practical sense out of what they're seeing. Just a repository of code without any context doesn't help.
http://www.glassdoor.com/press/wp-content/files_mf/133228554...
Also base rate is higher at Facebook, and interview difficulty is rated lower at Facebook.
Somewhat disappointing, as I'm a huge fan of Google.