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?
Get that job at Facebook (2012)
71–80 of 174 posts
Re: Get that job at Facebook (2012)
#72Earlier 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…
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)
#73I 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…
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)
#74Re: Get that job at Facebook (2012)
#75Maybe 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)
#76I 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…
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)
#77Never 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…
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)
#78Earlier 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…
Re: Get that job at Facebook (2012)
#79Earlier 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…
Re: Get that job at Facebook (2012)
#80> "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…
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.)