top | item 343549

My Facebook Interview

60 points| edw519 | 17 years ago |209.85.173.104

24 comments

order
[+] ChadB|17 years ago|reply
My Google interview a few years ago was very similar. No matter how confident you are, it's amazing how nerves can cause you to stand there at the whiteboard babbling like a newborn.

Google actually had me do two on-site interviews (one in my hometown and one in Mountain View). The first one went very well. I had a great rapport with the (single) interviewer, and had fun solving the (single) problem he gave me.

The Mountain View interview went more or less like the one described in the article. Marathon style. Had good rapport with some of the interviewers, less so with others. Once you start stumbling your confidence starts to fall apart, and it can really hurt you for the rest of the day (the interview lasted all day).

I also didn't exactly end up with the job. They offered me a testing position with "fast-track" promotion to engineering. I passed on that.

Good advice in the article though: practice problems on a whiteboard at home or with friends. Especially fundamental problems that you learned in your first algorithms class and the like.

[+] nihilocrat|17 years ago|reply
Yeah, when was the last time you wrote code on a whiteboard when you WEREN'T in an interview? Definitely good advice, but I would caution that it's just an interview skill, and only serves to improve your performance rather than your content.

Also, you should remember from your test-taking skills that time asleep is more valuable than time studying. Thus, as pointed out, you should really make sure you're well-rested.

[+] Hexstream|17 years ago|reply
Reading the technical questions made me realize how crappy a programmer I am, algorithms-wise.
[+] plinkplonk|17 years ago|reply
"Reading the technical questions made me realize how crappy a programmer I am, algorithms-wise"

The good news is that this is very fixable.

I could answer the questions in the article without effort but this is a very different situation from about 3 years ago when I wouldn't have been able to answer even one of these.

I really started hitting the Algorithm books(Skiena, Cormen, if anyone is interested ) about three years ago and am now comfortable with thinking "algorithmically" - at least for sequential algorithms.

Studying algorithms to a fair degree of competence is very feasible even for non CS folks - I have no degree in CS and am entirely self taught. The tough part was working through proofs - As I was reading about unit tests for the answers , either in the original article or the reddit comments, I forget which - I was thinking it might be better to write down a formal proof that the algorithm works.

If I face tough questions on parallel/concurrent algorithm, I'd probably take a while to answer or fail completely - I need to look into parallel/concurrent algorithms in the coming year.

[+] streblo|17 years ago|reply
The interview process is definitely an intense one in this field. One thing to keep in mind when you're answering technical questions is that the interviewer is just as interested in hearing you think out the problem as they are in hearing the right answer. Thinking out loud is sometimes a good strategy if you run into a problem you can't answer on the spot.
[+] qqq|17 years ago|reply
This is hard to read because they specifically asked for a short line count, but it's not really very complicated. an if/else, a map, and a recursive call. Could maybe do the string manipulation more cleverly, but the obvious (assigning a new string to an index) is destructive in ruby.

  h = {'a' => ['A', '@', '4'], 'b' => ['B'], 'c' => ['C']}
  def foo str, h, pos=0
  (pos>str.size-1) ? [str] : ([str[pos..pos]] + h[str[pos..pos]]).map {|new_char| foo(str[0...pos] + new_char + str[(pos+1)...(str.size)], h, pos+1) }.flatten
  end
  p foo('abc', h)
[+] babul|17 years ago|reply
With all the institution name dropping, somehow I suspect a weaker candidate from a big(ger) brand name university would be hired over him and his main chance was to measurably prove he was better at programming, which sadly he failed to do. We all have our bad days.

Also, I really dislike the fact that FaceBook have yet to reimburse him, even after having >1year to do so and especially considering they have $MM and he was a student at the time! It reminds me of an interview I had at MXTelecom years ago, a company with ~40 employees that generated >$120M each year, which refused to reimburse interview expenses until "after" the interview process for them (read several weeks) was complete and which never did. Moral of the story: always be clear about payment of expenses before attending interview (especially if you are a student - do not be afraid to clarify and if need be force the matter), and chase up what you are entitled to.

[+] mynameishere|17 years ago|reply
didn't at first want to work for facebook because he thought it was a toy, but was eventually persuaded and now loves it

...

Apparently he's responsible for the "Gift" feature in facebook (you know, the hole-in-a-box/heart/pantie/etc. little graphic you can gift to people?). He was the sole person responsible for that.

Fight fiercely, Harvard. It amazes me that code-up-a-copycat-in-a-weekend websites like facebook think that they need 1st rate engineers.

"It was either the little graphic gift heart, or control systems for helicopters..."

[+] sofal|17 years ago|reply
Control systems for helicopters are developed by soulless clock-punching factory workers, marching to the slow beat of enormous, impenetrable bureaucracies under the iron fist of stifling, heavyweight processes. Inquisitive engineers need not apply.
[+] vecter|17 years ago|reply
Facebook scalability is quite impressive. I think you do need first rate engineers for that.
[+] dustineichler|17 years ago|reply
Really good read. Only thing, I hate excuses...

White board problems are killers, no matter how well you know your stuff. I definitely advocate this too.

I'm interested if anyone else here has interviewed at fb, I'd love to hear more about this as I'm working out solutions to their programming puzzles too.

[+] ErrantX|17 years ago|reply
Facebook definitely sounds like a decent place to work. Them and Google are places I hope to take influence from if I ever make it to having an actual physical office space :P
[+] rokhayakebe|17 years ago|reply
BTW Worio returns decent results for search queries.