5 ms·
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 inte
by kubrickslair 13y ago
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 solutions that they are looking for, and can't appreciate novel solutions and at times even better time/space complexity if they do not fit the standard mold. In my experience only some very hot startups had smart/ open enough interviewers to appreciate new solutions or see the relevance of new CS research results that may solve their question.
Before one starts attacking me on being a CS philistine, I want you to ponder on my background- current work involves designing & implementing pretty intricate & complex algorithms, and earlier research & publications in a range of ML related sub-fields, mainly NLP & recommender systems. I also read CS papers for pleasure, code in multiple languages and did reasonably well in programming competitions- no longer participate, latter is many years ago.
For a similar experience, though from a far more accomplished person, see Tanya Khovanova's blog post on hiring 'the smartest people in the world':
http://blog.tanyakhovanova.com/?p=402 http://blog.tanyakhovanova.com/?p=402
Also, FYI I don't resent the system a lot. It is better than it being an old-boys-club; I just dread going through the bootcamp of memorizing/ revisiting trivial stuff in case I ever have to look for a job again.
- CoolGuySteve 13y agoThe 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 skills if that is a problem they're having with the process.
- ritchiea 13y agoThat baffles me as well. I made another comment in this thread [1], but what really dwells on my mind is: do companies that interview like Facebook really believe that my day-to-day as a programmer has so little to do with the work I would do if were to work at their company? I'm particularly curious as someone who only did a bit of CS in school and became a full time programmer from work I did as a hobbyist. And if the answer is "yes, your work has nothing to do with the kind of work we do at Facebook, Google, etc." it's not so much that I'm appalled but actually even more curious about the jobs at those companies than I am now. [1] https://news.ycombinator.com/item?id=5623861 https://news.ycombinator.com/item?id=5623861
- kubrickslair 13y agoAnother 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 as in, helped them make sense (and see the general pattern) of the solutions which they saw online but could not appreciate/ understand on their own. Though I guess they had lesser trouble regurgitating the solutions in the interviews.
- ritchiea 13y agoI think that raises another question. You assume that they don't want the process to be hackable, what if they just want someone to see the patterns in those solutions because they believe those patterns arise in the work they will be doing at Facebook?
- kubrickslair 13y agoThough I doubt that, it might be true that being good in algorithmic puzzle-solving (as opposed to real-world algorithmic research/ development) helps employees in their day-to-day work. And I do think they maybe missing some real gems because of it. But in my opinion, they just need an easily definable and quantifiable process. And they are happy to look the other way when they see covert cheating/ hacking as long as it clears the process. And there is no denying that there is still a decent ability threshold which most covert cheating people too will pass, which I guess suffices the corp needs. I am a far bigger fan of pair programming after a basic phone screen, but large companies just can't do that.
- kamaal 13y agoIts 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.
- somethingnew 13y agoI made another comment on this thread [1]. I wish instead of having to prep for interviews like this, I could just present a portfolio of clean code I made myself (non-proprietary of course) or my github. Unfortunately most of the grads they're hiring have no serious code to show for themselves. [1] https://news.ycombinator.com/item?id=5623922 https://news.ycombinator.com/item?id=5623922
- aristus 13y ago(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 you can do that level of work.
- ritchiea 13y agoThanks. 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.
- rhizome 13y agoIt reads like a category error to me. My experience is that the coming times that require A-level work from memory are emergencies and the "$X billion times a day query parser" ones are not, allowing more iteration and collaboration.
- aristus 13y agoYou may be right, but all I know is my own experience. The query parser example is real; I had to do something like that recently in order to more deeply analyze some performance bugs.
- rhizome 13y agoThe process you describe in the essay is portrayed as one of policy and iterated improvement at Facebook, oriented around "How We Do It," with your GP example meant as support for that process as relates to "prep mode" approaches to interviewing at FB. It sounds like you're backing away from that, though. Was your query parser work done under the pressure and constraints of an interview environment? Would you have been able to write that parser in the same form at a white board during your actual interview?
- btilly 13y agoI 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.)
- pbreit 13y ago> really bothers me about these postings is the advice that you should 'prep' Advice to prep bothers you? Wow! I thought it went without saying that any endeavor of import benefits from prep.
- Evbn 13y agoIf you don't care enough to skip a couple of episodes of Mad Men and warm up your brain before you come in, you aren't interested in working here.
- charleslmunger 13y agoThis was my experience interviewing at Facebook. I spent one interview solving a problem in a way that was more efficient than the default, recursive solution. My interviewer was obviously disappointed, and wondered why I wasted so much time when a less efficient solution would have sufficed. That was the exact opposite of my experience interviewing at Google, and when I got an offer from Google I took it.
- Evbn 13y agoKnowing when to not microoptimize is a skill. Honestly, you should have decided based on compensation, geography, etc. The jobs are similar. But you microptimized :-)