Live data from Hacker News

Get that job at Facebook (2012)

facebook.com

71–80 of 174 posts

Re: Get that job at Facebook (2012)

#71
post #36

Earlier quoted context omitted.

one I was given in an interview: You're working on the front-end development for a chatting website. Each conversation gets it's own 100x200px div and they are placed on the screen such that two conversation windows are never intersecting. We want to display a new conversation window, write an algorithm to determine where a conversation can be placed such that it does not overlap with any current conversations. Assum…

Am I reading the problem incorrectly or is that just ridiculously easy?

As stated this seems really easy. I think it is supposed to be more like Meebo where the users can resize/move every window (i.e. they dont have to be aligned to any boundary) and they recieve a new message. The Meebo software wants to place a new 100x200 window not on top of any existing window. Write the algorithm to determine where to place it. Then generalize the algorithm to WxH. Hard enough? (If not, find an algorithm that does this in linear time)

Re: Get that job at Facebook (2012)

#72

Earlier quoted context omitted.

The thing that really bothers me about these postings is the advice that you should 'prep'. Conceivably, many applicants will already have a job that requires them to code 8 hours a day. But somehow, the skills required to pass their interview are so out of line with what a programmer does day to day, that extracurricular studying is required. It would suggest that the interview itself selects for mostly irrelevant s…

Another reason I am not fond of this- it is easily hackable. I know some pretty average people who prepared for months, went through all questions they could find online, ignored their day jobs and cleared the interviews, while some really talented people could not. Funny that this got brought on the Facebook thread. Though I never applied at FB, I have 'mentored' two people who made it through the process. Mentoring…

Its very easy to game the interview at big web companies. I mean even if they ask all these text book academia related questions- Algo/DS ones etc.

I remember once there was a question on Quora about an IIT BTech guy who had offers from all major web companies. Some one asked him how he did it. And his advice was that you had to simply 'practice'. Simply go out on the internet check for good interview forums work on it an hour every day. Even if you are actually a worthless programmer on the ground. You can pretty much ace any interview with simply practice.

This also reminds of my Math classes in pre-university college here in India. I would generally try to solve a problem in more than one way and show it to my lecturer. One day she scolded me badly, that my experiments might end up in me scoring less marks. Her point was the evaluators were used to seeing a certain pattern of answers over years. And if the student had a new innovative answer, they would simply mark it wrong because it didn't their 'one true' answer, even if the solution was more elegant and better than the common pattern. Therefore the only way of scoring high marks was to practice all the common patterns.

Rote learning works at all levels.

I remember some days back I watched a interview of RMS on youtube, and he was asked a question on how you could be a good programmer and what books you had to read. And he gave a straight reply- You had to simply work on some hard real world problems/projects and bring them to closure. That was his advice.

Too bad these days we check people on everything apart from their actual work.

Re: Get that job at Facebook (2012)

#73

I really like this kind of post and I wish more companies would write about their expectations before you actually get to the interview. Still, it seems like rather run-of-the-mill process. It will certainly filter out the bad, but you may miss some very good workers who work in different ways. Facebook still seems to be totally focused on code problems, and doesn't even mention if what you've already built is import…

Hi. I work at facebook and do many interviews.

Facebook still seems to be totally focused on code problems

I would say that statement is categorically false. In fact, the article lists 4 criteria, only one of which would be "code problems". The interview certainly has a focus on coding, but it most assuredly is not a total focus. And people can, have, and will pass the coding bar, and still fail to get an offer.

stuff that someone has made // communication skills, especially how well they can explain things they have worked on.

Both of these are critical parts of every facebook interview.

From this post, Facebook seems more interested in making sure developer can re-re-re-implement merge-bubble sort-reduce

I don't think that is a well supported inference from the post in question.

Re: Get that job at Facebook (2012)

#75
> "Practice writing code in a simple text editor without syntax highlighting or completion macros."

Maybe applicants shouldn't be able to "undo" during the interview? Or maybe applicants should be able to manually convert the code to assembler? Or, heck, have them use one of those behemoth computers with the blinking lights that we have to plug wires into sockets to program?

I mean...why should we rely on any technology that has been developed to make software engineers more effective and that the majority use daily? That would be like if we let sales people use tools they rely on, like charisma, during interviews!

The only sensible argument I've heard for why companies interview with programming puzzle questions is that it "takes too long" to do an interview better (like the way simonsarris pointed out Sencha does). At the point a company is unwilling to look at applicants as humans, and instead treats them as numbers/percentages, I wonder if they're a company worth working for any way.

Re: Get that job at Facebook (2012)

#76

I really like this kind of post and I wish more companies would write about their expectations before you actually get to the interview. Still, it seems like rather run-of-the-mill process. It will certainly filter out the bad, but you may miss some very good workers who work in different ways. Facebook still seems to be totally focused on code problems, and doesn't even mention if what you've already built is import…

This echoes the best interview I ever had, which finished with the interviewer starting me with a problem ("This functionality is running slow and hanging a lot") and had me walk through how I'd diagnose the problem, from the front end to the database: he was interested in what metrics I'd gather, what question I'd ask about how things work, who I'd want to rope in for help with particular parts of the problem, and so on. It was all drawn from a real-world problem they'd solved a few weeks ago.

I've used that ever since when I've been a technical interviewer. It's fascinating hearing how people go about solving problems, and it tells me a lot about their actual skills.

(One of the best responses for a sysadmin role qas a quiz around sudenly degraded performance and the first question was, "What's changed? I'll check the change management to see what's gone live recently.")

Re: Get that job at Facebook (2012)

#77

Never interviewed at Facebook but have been offered roles at similarly hard to get places. Though I am working at my own startup now, the absurdness of the interviewing process at majority of such places confounds me. In short, I can't cope up with them well without going through quite a few glassdoor type questions of that respective company. And partially it is because most interviewers already have a set of soluti…

The thing that really bothers me about these postings is the advice that you should 'prep'. Conceivably, many applicants will already have a job that requires them to code 8 hours a day. But somehow, the skills required to pass their interview are so out of line with what a programmer does day to day, that extracurricular studying is required. It would suggest that the interview itself selects for mostly irrelevant s…

I agree that most of the work that needs to be done in this industry could be done by a well-trained monkey. And there are plenty of well-trained monkeys doing said work. But you really want more competent people doing it because you never know when you'll randomly encounter something that needs more ability than just cutting and pasting within a known template.

As an example of why, consider this famous Brian Kernighan quote, Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? I've certainly been in the situation where the website is crashing, nobody knows why, but we need it fixed immediately. And solving the problem under pressure like that is twice as hard as debugging it normally.

When things go pear shaped, you really want someone available to debug it who is both competent, and familiar with the code in question. This is easy if the person who wrote the code is competent. But if the person who wrote the code is not amazingly competent, you may be stuck with your choice of competent people who don't know the code, and incompetent people who do know the code. Neither of whom is in a good position to fix the problem.

This is hopefully not a situation that comes up very often. It is not something most of us get a lot of practice for. And we put a lot of effort into avoiding a pants on fire situation. But ideally you want all of your programmers to be able to think at this level. (Even if they mostly demonstrate it by avoiding problems in the first place.)

Re: Get that job at Facebook (2012)

#78
post #70

Earlier quoted context omitted.

The thing that really bothers me about these postings is the advice that you should 'prep'. Conceivably, many applicants will already have a job that requires them to code 8 hours a day. But somehow, the skills required to pass their interview are so out of line with what a programmer does day to day, that extracurricular studying is required. It would suggest that the interview itself selects for mostly irrelevant s…

(Author of the post) Consider this: In any job you're going to do "normal" stuff the majority of the time. The other times, you have to pull out A-level work. It's not 24x7, but when the time comes you have to be able to do it, eg writing a parser for an obscure query language that will get executed $X billion times per day, so it better be small, correct, and fast. We ask people to prep because we want to know if yo…

Thanks. That kind of answer is what I'm most curious about. What exactly is the A-level work that is not "normal stuff" that you want your candidates to be prepared for.

Re: Get that job at Facebook (2012)

#79
post #60

Earlier quoted context omitted.

I would assume that you have an arbitrary number of windows already displayed that you cannot move.

In that case, it's probably most space efficient to place each new window next to an already visible window or at an edge of the screen. So keep a list of possible candidate positions. Each of these positions represents either an edge of the screen or a position directly above/below/to the left/to the right of an existing window. You will need to calculate different offsets for each of these circumstances to generate…

You know, for people who have taken graphics classes, this seems like a much easier question because they know about AABB trees. That is the problem at the heart of the question. Also, your idea about candidate positions is wasteful. Just invert the tree so that it contains empty space instead of full space. Then, on insert, remove from the tree.

Re: Get that job at Facebook (2012)

#80
post #75

> "Practice writing code in a simple text editor without syntax highlighting or completion macros." Maybe applicants shouldn't be able to "undo" during the interview? Or maybe applicants should be able to manually convert the code to assembler? Or, heck, have them use one of those behemoth computers with the blinking lights that we have to plug wires into sockets to program? I mean...why should we rely on any technol…

Here is one answer for you.

Many programmers will take longer to configure their environment than you have available for the interview. Therefore if you tried to let them interview in the programming environment of their choice, there would be no actual interview. (And you'd have to undo whatever they did before the next interview.)

Post reply on HN