12 ms·
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
by CoolGuySteve 14y ago
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 skills if that is a problem they're having with the process.
- ritchiea 14y 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 14y 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 14y 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 14y 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 14y 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.
- kubrickslair 14y agoAgree on all points. Interesting that you brought IIT up. Though I barely cleared IIT JEE and did not attend it for I could not get CS at any of the good schools, I had the feeling that it was becoming more and more hackable with the proliferation of coaching institutes. When I was in a top 5 PhD program which attracts the best of IIT K/B/M guys the quality drop became more evident over the years. There were and are still very bright IITians at my school, but I saw more noise coming in at later years. And for those who are not aware- there are cram shops in India which 'train' you to clear Google/ Microsoft interviews. And this has been going for at least 6 years, if not more. Now from talking to my friends in India I get the impression that the superficial interview difficulty is higher in India than the Bay Area for similar companies. And that is despite the work quality being much higher in Silicon Valley. It's all very funny and ironic.
- freshfunk 14y agoFrom the post: "Good coding problems are fractal in nature. They can be extended arbitrarily to gauge the depth of your knowledge. For example, you might be asked to solve a problem any way you want. Then you'll be asked to solve it again in constant space or sub-linear time." You could prepare for months but if you don't understand the core CS concepts then it's difficult to hack these kinds of interview problems. Having a solution is one thing, but coming up with 3 different solutions to the same problem based on various constraints (preprocessing, space/time constraints) requires understanding. If they "hacked" this, then thru likely understand the concepts well enough such that its sufficient for the job. Also, interviewers should ask if they interviewee has seen the coding problem before and come prepared with a backup. Interviewers are also looking to see if the interviewee derives the answer too easily. Usually scraping the surface reveals whether the person really knows what they're talking about or not.
- kubrickslair 14y agoI don't disagree with anything you say. As I mentioned earlier that all people who hack such interviews do have basic understanding/skills requisite for the corp, quite enough to play the gymnastics of the interviews. A good interviewer does try to gauge whether the answer was known to the interviewee. But I have seen that happen far more at hot startups than big companies- primarily because of their more stringent process which leaves less wiggle room for guess work and is more tuned towards concretely judged parameters. I just don't like the facade of 'hiring the smartest people' in the world, when their mechanism largely filters just well-trained average people. And I most certainly don't want to sound condescending, so I apologize before-hand. But I probably used a different definition of average than what you or most people here may have in mind. I know quite a few ACM ICPC world finalists, am a region finalist myself, and have conducted/ published CS research with reasonable impact. So I was simply using my PhD program peers as good, and people with lesser (proven) skills as average. My fault, but I hope you can see what I was trying to say.
- Evbn 14y agoWell trained average people are good enough to do great things. That is a feature, not a bug.
- Evbn 14y agoWhy couldn't talented people also game the interview?
- jarek 14y agoWhy would they bother to? Is there a shortage of opportunities for talented people to apply their effort instead of cramming an interview?
- somethingnew 14y 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 14y 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 14y 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 14y 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 14y 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 14y 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 14y 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 14y 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 14y 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.