16 ms·
Ask HN: Can engineers from Google or Facebook solve whiteboard questions easily?
I don't know any people from those companies. I am just curious.
- dekhn 8y agoI work for Google and have never been good at the "Here's an NP-hard problem you haven't heard of, write correct code for nlogn solution on whiteboard in language of choice" question. I had to train extensively (reading CLR, practicing) to be able to pass. However, large numbers of engineers at Google are very good at solving whiteboard questions. A lot of it comes from practice, a lot comes from knowing the common problems and solutions, and a lot comes from knowing the algorithmic primitives from which modern algorithms are born. For many, whiteboard questions are "fun"- in the same way my parents like to do crossword puzzles for the intellectual exercise, Googlers like to discuss challenging, abstract-but-related-to-ads-or-search questions.
- TomMarius 8y ago> algorithmic primitives from which modern algorithms are born. What is a good way to learn more about these?
- LandR 8y agoThe only reason it seems to even learn them is to pass an interview... What a utterly stupid and broken process. All it's testing is recall, that you've memorized some algorithms that 99% of developers will never need. Especially when these are really hard problems that people have studied for years, to think that anyone who hasn't memorised the solution is working this stuff out in an hour on a whiteboard is craziness.
- franzwong 8y agoI would say it depends. I have been working in this industry for 12 years but I don't need to use those knowledge. However, if you read source code of popular frameworks and systems, they use a lot of those algorithms and data structures.
- TomMarius 8y agoI'd learn it just for the knowledge, I have no desire to go into the interviewing process again. I agree that interviewing is a broken process.
- BJanecke 8y agoThere is nothing about learning how basic data structures and algorithms work that won't help you in your day to day development. You might be "fine" without it in a certain category of job, but rather than be dismissive about it you could be excited about having a massive wealth of information that you can use to do your job better. There will always be something else to learn, wether it be how to apply Domain Driven Design to your work or how to work with graphs when munging data. It's always worth it. [edit] Run on sentence
- octorian 8y ago> There is nothing about learning how basic data structures and algorithms work that won't help you in your day to day development. Having a basic understanding of these things is NOT the same as being able to regurgitate them on a whiteboard, under the stress of the interview process.
- LandR 8y agoExactly, I don't need to know this stuff of the top of my head. I can look it up...
- lordCarbonFiber 8y agoThe reason we test for things is to verify you have enough domain knowledge to "look it up". A bad interviewer will ask you to write quick sort on the board, because if we've already gotten to the point of "implement quick sort" yeah we can just look that up. However, if you're given a collection of nodes and asked to do something with them; that's a bit more interesting. If you know nothing about graph traversal, or have never seen a tree (both not uncommon in people claiming to be principle engineers in my industry) how do you even know what to search for? Best case is you're smart and waste time coming up with a new solution from first principles; most likely it just never gets done.
- gumby 8y ago> The only reason it seems to even learn them is to pass an interview... While I agree that the process is broken, a solid understanding of algorithms and data structures is very important for developers at my company. And nobody knows all, or even most of the algos or data structures! But we do have large amounts of data and some pretty complex analytic problems, and a poor design can cost a lot of time and AWS $. Likewise over-engineering something small is a waste of time not just in writing but maintaining it. I agree that most e-commerce or business web developent probably don't need this level of formal skill. Whiteboard questions are useful, but not for figuring out trick questions. Instead for figuring out how the candidate approaches problems.
- kamaal 8y agoThose look like software design skills. Also the type of systems you describes use something like Hadoop, and use things like Hive and Pig on top of it. Once you get the data out you use Python or R. And you generally use a standard library to work with. That really SQL + general programming. What new problems are you working on that require you to invent novel algorithmic techniques?
- C4stor 8y agoEven after choosing a technology (like Hadoop), there's a lot of difference between the best and the worst algorithm to solve a problem. For example, the reduce phase of MapReduce is pretty much "apply the algorithm you want on this List", and that's where knowing good list algorithms (for example) shine.
- kamaal 8y agoSorry, in almost all cases its really choosing over several ways of Joining the data, not writing SELECT *, not writing cross joins and learning SQL well. Which why I ask again. Please list your problem which is so novel it requires you to invent a novel algorithm. Please note statistics is a science that has existed for centuries now. Unless you are in a university, its highly unlikely you have a problem that will need to you to work on something that novel.
- intkj 8y agoWhat better way is there to try and get the best assessment of someone’s coding ability in a 45 minute timeframe?
- TomMarius 8y agoIMO not doing it. Why'd you do it? There are much more important factors than someone's ability to do a whiteboard exercise while under stress. You can e.g. check their Github, ask them to make a simple example project at home, etc.
- sgc 8y agoThis. Test them using the tools they will be using every day.
- LandR 8y agoYou aren't testing their coding ability though you are testing their ability to remember how to implement a very specific algorithm.
- fsloth 8y ago"these are really hard problems that people have studied for years" Because of this. So that when you encounter a problem, you know how it can be solved efficiently. If you disregard existing knowledge, you are likely to spend a lot of time cooking up something complex and half-assed that creates an unnecessary maintenance load. Like music is composed of fundamentals, similarly most problems in computing can be decomposed such that familiar approaches can be applied to them. I think the categorization of Aho's "Foundations of Computer Science" is pretty much to the point on which fundamental formulations are practical to know.
- kamaal 8y ago>>If you disregard existing knowledge, you are likely to spend a lot of time cooking up something complex and half-assed that creates an unnecessary maintenance load. Unless you are stuck on an Island coding during a vacation, not one person on earth faces this kind of a situation. Almost anybody doing anything apart from basic beginner level coding work knows to look up to a solution on the internet if a solution is not scaling already.
- fsloth 8y ago"Almost anybody doing anything apart from basic beginner level coding work knows to look up to a solution on the internet if a solution is not scaling already" This applies to some practical areas, but some are murky and need more than agile google-fu to waid through of an algorithmic jungle to a solution that provides added value to end user. There is a discipline and domain dependent threshold where the internet suddenly becomes obscure and unhelpful when one is trying to find solutions. In these instances either you are solving the wrong problem, or the problem is quite complex and/or does not have a closed form/ready solution. The best thing to happen in these instances is that one can limit ones input domain just so that it maps to some algorithmic concept or another. It's not rocket science, but in these instances having an intuitive feel toward the big O behaviour and various algorithmic constructs is really, really helpfull. Sometimes you just need to implement your own fudged QR decomposition and understand a little bit of numerics, or build custom octrees and whatnot. Couldn't really do it without my books. I do CAD and computational geometry stuff, YMMV.
- BJanecke 8y agoThis book https://www.amazon.com/Data-Structures-Algorithm-Analysis-C-ebook/dp/B00DESYHRC https://www.amazon.com/Data-Structures-Algorithm-Analysis-C-... Don't let the "in C++" scare you If you google about you'll find free copies of older editions online
- fsloth 8y agoI find my problem mapping methodology often leads me to remember these three books: Aho and Ullmann: Foundations of Computer Science (old but really, really, really good) Steven Skiena: Algorithm Design Manual Abelson: Structure and Interpretation of Computer Programs
- 52-6F-62 8y agoAfter a quick search, this came up: Foundations of Computer Science, full book: http://infolab.stanford.edu/~ullman/focs.html http://infolab.stanford.edu/~ullman/focs.html Also turns out Skiena's website is a very large resource! http://www.algorist.com/algorist.html http://www.algorist.com/algorist.html
- amelius 8y ago> Here's an NP-hard problem you haven't heard of, write correct code for nlogn solution on whiteboard in language of choice I guess that would be a trick-question then, as nobody ever solved an NP-hard problem in linearithmic time.
- elromulous 8y agoI think that was meant to be a hyperbole.
- Silhouette 8y agoIndeed, although it's not unheard of for mathematics lecturers at university to throw in a question within a twenty-question problem sheet for their course that is actually equivalent to some important unsolved problem, on the off chance that one of their students sees things in a totally new way and makes a ground-breaking discovery. Solving something NP-hard in linearithmic time would certainly qualify...
- dekhn 8y agoMy favorite was this question, quoted verbatim from a test in my biophysics grad program: What is the time resolved flourescence of a fluorophore in 4 dimensions? The solution, explained to me by my friend who was a very smart physicist, was the first time I heard the word "tensor" (this was a long time ago, long before machine learning used that word) and I was obsessed with the idea that there was all this cool math you could use to solve hard problems.
- lynal 8y agoDo you have a cite/example of a lecturer doing that on an exam? Are there any examples where that has been successful? I had never heard of that happening! It would be extremely cool if it ever worked.
- trocadero 8y agoNot an exam but: >An event in Dantzig's life became the origin of a famous story in 1939, while he was a graduate student at UC Berkeley. Near the beginning of a class for which Dantzig was late, professor Jerzy Neyman wrote two examples of famously unsolved statistics problems on the blackboard. When Dantzig arrived, he assumed that the two problems were a homework assignment and wrote them down. According to Dantzig, the problems "seemed to be a little harder than usual", but a few days later he handed in completed solutions for the two problems, still believing that they were an assignment that was overdue.[4][7] >Six weeks later, Dantzig received a visit from an excited professor Neyman, who was eager to tell him that the homework problems he had solved were two of the most famous unsolved problems in statistics https://en.wikipedia.org/wiki/George_Dantzig https://en.wikipedia.org/wiki/George_Dantzig
- jasondclinton 8y agoI have worked at Google for 7 years. I am a SWE and mostly agree with the parent. I am, I think objectively, a pretty good software engineer and often couldn't solve my peers interview questions in the time allotted. I try to do my part by conducting interviews with questions that I think demonstrate the ability to actually code and think abstractly as opposed to regurgitating some random algorithm that has been memorized. I ask a simple CS 100-200 level, one-word-answer question about an algorithm and then move on to a coding question. Despite the difficulty of some of the questions that others ask, often the interviewer wants the interviewee to pass and so will throw a hint. It's important to keep commicating because that is how those hints will be delivered. Ironically, I never interviewed because I came in from an acquisition. Yes, I was very lucky.
- wyldfire 8y ago> I had to train extensively (reading CLR, practicing) I didn't know what "CLR" was, so I searched around: Cormen, Leiserson, Rivest's "Introduction to Algorithms" [1]. [1] https://en.wikipedia.org/wiki/Introduction_to_Algorithms https://en.wikipedia.org/wiki/Introduction_to_Algorithms
- abvr 8y agoYes, it's usually abbreviated as CLRS.
- dekhn 8y agoApparently they added an author since I last studied. Damn, that was over 10 years ago.
- abvr 8y agoYeah, quite a bit must have changed or more likely evolved through the years, so a lot of the pseudocode and algorithms have been modified or added for instance, topics on dynamic programming, memoization and the like have had more emphasis. Several revisions to examples in basic tree algorithms and additions of some too have arisen. You could consider brushing up on a few things as a casual read perhaps, especially on the new topics. Also, another book I found great was Skiena's Algorithm Design manual. [1] https://www.quora.com/What-is-the-difference-between-CLRS-second-edition-and-third-edition https://www.quora.com/What-is-the-difference-between-CLRS-se...
- dekhn 8y agoThat's OK, I don't plan to read any CS books in the future, with the exception of The Art of Computer Programming, which I feel, after many years of training (including a decade as a SWE at Google), I'm finally ready to enjoy.
- abvr 8y agoOh yes, one of my bucket list kinda goals in life is to be able to get to a level where I can grok TAoCP at a visceral level and understand the underlying mathematics used to derive the algorithmic complexities and how they all function. I think any computer science person who is passionate about the topics should give it a try at some point in their lives.
- tootie 8y agoHere's my real question: How often do you solve those kind of whiteboard problems in your daily work? Obviously, you'd never be forced to solve them in 45 minutes while being judged, but how often are you actually solving computer sciency kind of problems in general as opposed to solving more software engineering type of problems?
- dekhn 8y agoAlmost never. I use a whiteboard, but only to draw architectural diagrams. Very few engineers at google actually do hardcore CS on a regular basis.
- jfasi 8y agoI often do, both for fun and to prepare myself to give a question I'd like to use in an interview. The thing about interview questions at Google is there's a very fine line they need to walk: if they're too easy they give no useful information about the candidate, and if they're too hard they can never be solved in 45 minutes, again yielding no useful information. You also need to be able to provide some hints, because the vast majority of candidates need a prod in the right direction now and then. As someone with access to the entire canon of Google interview questions, I've gone through the 20 or 30 with the highest rating, and none of them are ridiculously hard. The general pattern is either 1. a coding problem, meaning a relatively easy algorithm with plenty of opportunities to screw up the implementation so we can see how well you code and how well you catch your own errors, test your code, etc and 2. an algorithms problem that's really just a dressed-up version of some basic algorithm like BFS or dynamic programming so we can see if you can make the leap from theory to application. Obviously I'm at an advantage here because I've seen most of the questions in use today, but whenever I encounter a new one I can intuit what's being asked and what it'll take to solve. I'm sure other companies have different sorts of questions that optimize for different things, but for our questions once you do enough of them you can sort of do any of them. -- By the way, in my experience, those seem to be the biggest pitfalls for both job candidates at Google and programmers I meet in the real world. Sure, you crammed algorithms before you came here, but can you apply them in any real-world way? Sure you know your web/mobile app framework back to front, but will you hit a wall when asked to do something novel? Sure you can write a for loop to iterate over a data set, but will you fall on your face when that data set is petabytes in size? I've become good at Google's questions because they generally test for those two things: nitty-gritty coding skills and an ability to generalize basic algorithms. The best candidates are those who know their algorithms inside and out, have the ability to break down and transform a problem until they can apply something in their toolkit, and have the coding chops to translate their concept into an implementation. All skills which, you may notice, make for a good engineer. If you've ever wondered why we still do whiteboard interviews, that's why. Except you can use a chromebook now if you prefer, but you get the point.
- franzwong 8y ago> Sure you can write a for loop to iterate over a data set, but will you fall on your face when that data set is petabytes in size? I also asked a question in HN yesterday. It looks like there are more questions on data structure and algorithm for big data. However, books I read don't focus much in this area. As I haven't worked on big data before, that would also be a challenge for me.
- pdpi 8y agoWhat do you mean by "whiteboard questions"? The ones I had at my FB interviews are questions I would describe as "any competent engineer should be able to solve most of these in an interview slot" sort of questions — Simple data structures (sometimes explicit, sometimes implicit as part of the problem statement), simple strategies (breadth first, depth first), and a basic understanding of time (and space!) complexity. Of course, you can hike up the difficulty a tonne (e.g. by replacing plain binary trees with red/black trees) and progressively fewer people will be able to solve those, but in my experience that's not common in an interview environment at FB. Ultimately, the fact that the interview process includes whiteboard questions means that people at those companies _do_ perform decently (for some definition of decently) at those problems — that's how people are selected.
- sadamznintern 8y agoThat’s because the FB process explicitly optimizes for speed. I recently finished a loop where I solved 2 problems optimally in 2 interviews and 1 in the last one and I was rejected. The speed required makes me skeptical many people can solve these problems in the required time without luck of having seen similar problems before.
- UncleMeat 8y agoDid they tell you this? I feel like a lot of candidates think they nailed it when really they missed important things. I'm not sure I've ever had a candidate solve my question fully and optimally. This of course is nowhere near necessary to get a good score but I think that thinking "yep this is as good as it gets" is a common error. The hire rate is also super low at the majors so it could have also been noise.
- sadamznintern 8y agoAre you at FB? One of them did tell me this after his round (said we got further than he thought we would), the other one explicitly said my solution was optimal and what he was looking for. The 2 questions per interview "rule" is an open secret now among people that have interviewed there. I've never heard of someone who only answered 1 per round get a follow up or an offer. *Also, they generally don't move onto a second question if they don't think the first one was good enough.
- gerbercj 8y agoI currently work for Google, and enjoy whiteboard interview questions. When the questions are well designed there should be a relatively trivial, brute-force solution. As that solution is explored, it should highlight a bottleneck (time, space, etc.) that leads naturally to a more elegant solution. I really enjoy the excitement of finding the inflection point between the two. In addition, be aware that Google now offers Chromebooks for interviews at many locations, in case folks are more comfortable typing than writing. A recruiter can confirm if that option will be available. (See https://careers.google.com/how-we-hire/interview/#onsite-interviews https://careers.google.com/how-we-hire/interview/#onsite-int...)
- habosa 8y agoI work at Google and no it's not easy for us either. I've heard many of my coworkers joke that if they went through the interview process again they'd probably fail. That said I see two kinds of interviewers. One kind (the good kind) takes a medium difficulty question and uses it to explore the candidate's coding, algorithms, communication, and problem solving skills. The other kind has a super hard question with a single algorithmic solution that tells you nothing about what kind of engineer the person would be. This kind of interviewer takes too much pleasure in being a gatekeeper to Google.
- vonmoltke 8y ago> I've heard many of my coworkers joke that if they went through the interview process again they'd probably fail. I don't see how companies that claim it's hard to find talent can be OK with a system that would reject more than a small portion (<5%) of their current productive engineers. Edit: fixed word sense ambiguity
- mrep 8y agoBecause they think false positives are really bad and you can always reapply.
- meestaahjoshee 8y agoI see it like getting into a top college. Would your average college student be able to get a 2300+ (1500+ ?) SAT score if they had to take it again? Probably not unless they re-studied and prepared for it - which I think is the same answer for FAANG engineers and whiteboarding questions. Also, good SAT scores don't always translate into good college students and the same could be said for good whiteboarding skills don't translate into good software engineers or vice versa.
- kart23 8y agoThat's why standardized testing is becoming more irrelevant in college admissions.
- 8y ago
- tinderliker 8y agoI am a SWE at Google, and yes, most Googlers are pretty good at solving whiteboard problems. It's not like we are born with those solutions in our heads, but we enjoy solving those questions especially with other people. It's a lot of fun to "explore" answers to these questions, and that's what I think interviews are all about. I know HN hates whiteboard problems, but just like anything, you get good with it if you're having fun solving them.
- franzwong 8y agoI also want to see how you guys solve these problems. People on youtube videos already know the answer. They just told you how to solve it. But I can't see how they approach to get the answer. I think that part is the most interesting and valuable part for non-talent like me.
- yomansat 8y agoHere's one: https://www.youtube.com/watch?v=XKu_SEDAykw&t=11s https://www.youtube.com/watch?v=XKu_SEDAykw&t=11s
- sadamznintern 8y ago>They just told you how to solve it. But I can't see how they approach to get the answer. I think that part is the most interesting and valuable part for non-talent like me. I ran into this too when I was preparing for a loop, especially for more complicated DP and recursion problems. I found a website called gorecursion [0] on Reddit and he is very good at describing these solutions from the naive case to the optimized case very well. This helped me quite a bit, but I still didn't get the offer. [0]: http://www.gorecursion.com/ http://www.gorecursion.com/
- wsy 8y agoIn my experience, you can't learn that skill by watching others. It is a practice, like playing chess, or writing Math proofs. So IMHO the only way is to train. Start with simple problems, and continue from there. Bang your head against problems for a few hours before looking up the solution. Over time, you will get better. Disclaimer: I'm myself not very good at algorithmic puzzles. For a job application I took a vacation to train solving coding tasks, and was getting better every day. I got that job, but guess that for a Google application I'd rather have to train for 3 months.
- social_quotient 8y agoAny good examples of “whiteboard questions”, I’m not super familiar with the phrasing.
- mathattack 8y agoA friend who transferred internally to a SW engineering position at Facebook mentioned they probably couldn’t get in the front door.
- HugoDaniel 8y agoYes because they only hire the absolute best
- sadamznintern 8y agoTop 1% of intelligence
- icedchai 8y agoAbout 8 years ago, I got an interview at Google. I didn't really even want to work there... I just wanted to see what the place was like. So I made it through the phone screens, went to the interview, and I failed. It was still a good experience!
- sadamznintern 8y agoSame, except about 1 year ago instead.
- HugoDaniel 8y ago"I got an interview at Google. I didn't really even want to work there... I just wanted to see what the place was like" ... sure
- icedchai 8y agoI wanted to see if I could get in. I don't like large corps, period.
- smt88 8y agoIntelligence is hard to define. There's no scientific, widely-agreed-upon definition. Even if there were, algorithm tests on whiteboards would be a poor test, because they also involve prior knowledge of the task and a very specific type of intelligence. In my experience, social intelligence is a better predictor of success in any workplace, anyway.
- plasticchris 8y agoThere is a great video lecture where a guy talks about how tough his committee was, and they denied a series of packets only to be told that the packets were theirs! Very reassuring.
- morazow 8y agohttps://youtu.be/r8RxkpUvxK0?t=536 https://youtu.be/r8RxkpUvxK0?t=536
- mattm 8y agoI came across a guy on Reddit a while back who was currently employed at Facebook. He thought he'd try making a video of him doing one of Facebook's interview questions thinking it'd be easy for him to do. He stumbled through the problem and didn't end up solving it in the timeframe that would have been allowed. It was good of him to still post it but it showed that someone currently employed at Facebook would have been screened out at the phone call stage had he applied again without any preparation.
- sadamznintern 8y agoI remember that video. I thought it was hilarious because the question was so easy anybody that has done leetcode would be able to identify it and code it in like 5 minutes. I've gotten it at 4 different companies!
- fspear 8y agowould love to watch this, can you share the link?
- deleted 8y ago[deleted]
- daly 8y agoBALL-PITS and CLOWN NOSES I worked with a guy, Bob, in our college computer room. Bob had returned to get his BS after many years in industry. He had great stories. He also had great advice. He taught me that you can learn a lot about how a company will treat their employees by paying attention to the way they treat you during the interview. He suggested several sign that indicated it was best to just "walk away". If you go into a restaurant for a professional lunch meeting and they have a ball-pit / swing set /etc. it might not be the most professional place to hold the meeting. Just walk away. If you go to a 5 star restaurant and they want you to wear a clown nose (Everybody Does It!) Just walk away. The big scam is "We hire the best and the brightest". "We mandate a whiteboard test (Everybody Does It)". It is my opinion (based on experience) that companies that insist on a whiteboard test, despite years of programming on your resume and open source code, are either Ball-Pit companies (who don't know what it means to be a professional) or Clown-Nose companies (who know what it means to be a professional but still treat you like a commodity). Just walk away. When you object, please reference one study in a journal that shows that whiteboard tests are effective in any measure when used during interviews. I understand why Google does it. I've even interviewed there. They get thousands of resumes (which they never read, at least nobody did at my interviews). They have to weed out the "learn coding in 6 weeks" crowd. But you're a professional. You should expect to be treated like one. You don't ask your surgeon to cut up hams in an interview. You don't ask your builder to nail two boards together. Professional accountants are not interviewd by bank tellers and ask to count change. Google, like Microsoft before it (remember the "why are manholes round? quizes?"), have combined the marketing claim "We hire the best and brightest" with the ball-pit mentality of whiteboarding. Google HR (sorry, People Resource?) SHOULD be embarrassed but apparently they, and upper management, LIKE ball-pits. A real professional interview involves a discussion about what the company does, what it current problems are (aka why are they hiring), and a discussion of if you, as a professional, have the skills to solve the problem. What do they need? How can you contribute? It is likely that your interviewer has no idea what you are being interviewed for and cannot answer these basic questions. We, as professionals, should consider whiteboarding as an insult. Just walk away.
- marssaxman 8y agoI'd have to "just walk away" from the entire industry, since I've never once in over twenty years had an interview which did not involve a demonstration of my ability to reason through a problem and communicate a proposed solution using conversation and a whiteboard. I am a professional, yes, and thinking about problems and communicating about solutions is my job; why should I be offended that someone wants me to show them how I work? Why would I ever want to hire someone incapable of demonstrating their skills in such a simple, straightforward way? If you can't solve a toy problem and explain your solution, or at least have a conversation about the constraints and tradeoffs as you work on it, how am I to imagine there is any chance you could be a productive teammate?
- hzay 8y agoI worked for FB. I like the whiteboard problems and many other engineers like them too, and I enjoyed discussing or solving similar problems over lunch. That's probably why they're so prevalent in interviews -- I don't believe they actually predict a candidate's success in a company. Btw in college, I used to compete on websites like topcoder, spoj, etc for fun. The interview processes of many companies drastically favor ppl who did that in college, at least while hiring in the <10 year experience range. edit: also worked for google, same story edit2: I believe most people can learn to solve these problems because a lot of it is mixing and matching algorithms/techniques that you've practiced. It just takes time and practice and exposure to a wide variety of problems and crucially, confidence. I've seen people who somehow strongly believe that they're not the "algorithmic type" and will never be able to solve these even if they spend months working on it. :( I've tried and failed multiple times to convince those ppl that this is a very learnable skill.
- sadamznintern 8y agoHow do I force myself to find doing those problems to be fun? To me they just seem painful because they really expose how stupid I am even if I know he basics.
- hzay 8y agoIt's okay if you don't find these problems to be fun. Some people like crossword puzzles, some don't. If you can't solve a problem, it doesn't say anything about you, except that you haven't yet practiced using that particular algorithm/technique enough. It most definitely does not say that you are stupid, although some ppl would have you believe that. I'd recommend that you only solve problems that are extremely easy, on websites like https://www.spoj.com https://www.spoj.com or https://www.topcoder.com https://www.topcoder.com or old google code jam questions. Pick a single website (I recommend codejam) and do only the easy ones for a few months. It's hard to argue against the happiness that comes when your program passes the tests. The point is not to sharpen your skill but to get used to the feeling that your program passes ALL the tests cases. If you get to a stage where you're completely sick and bored of easy problems, pick a slightly more difficult problem with basic algorithms like plain BFS or DFS. Try it for just a day or two and when you can't solve it, read the published solution. Try to understand it, apply it manually to the test cases and once you're sure that you've completely grasped the solution, implement it and see if it passes all the tests cases. Take it slowly, and return to easy problems often. This could take you pretty far in terms of enjoying the process. :) At least that's how it worked with me -- I liked the high of getting a program "accepted".
- sadamznintern 8y agoYes they absolutely can.
- smt88 8y agoThe other comments for this post seems to cast doubt on your assertion that they all can. Also, solving them in an interview is radically different from solving them for fun.
- sadamznintern 8y agoI know a lot of people at top companies. All of them have an innate ability to do these algorithm problems better than people like me - they can crank out solutions quickly and get offers almost everywhere they try.
- kjeetgill 8y agoThe question I recently got that I found annoying was this: Given input (4, 2, 3, -1, 5) and output (-30, -60, -40, 120, -24) what's the function between them? I don't actually mind doing whiteboard interviews even on minimal prep. I've gotten a few of the "flagship" company offers and failed a few. I think part of it is internalising that nothing is going to guarantee you anything. You can always hit a question you bomb on and have an interviewer that will move on or bury you for it. Phone screens are 2-4 questions and on-sites can add another 6-10. A 5% bomb rate for an on-site question will put you into the 60-70% pass rate. I'm confident that if I do all the interviews I'll land atleast one offer but if you're putting all your eggs in one basket you're going to have a rough go of it.
- jfasi 8y ago> A 5% bomb rate for an on-site question will put you into the 60-70% pass rate. I'm not sure I follow the math here, can you expand a little?
- kjeetgill 8y agoI just punched .95^10 (.59) and .95^6 (.73) into Google. I mean they're made up numbers, the point I was trying to get at was that you can do fairly well on these things but you just need to fail one question to fail in total. But if you do even two interviews your chance at getting one offer jumps to 1-.4^2 thru 1-.3^2 (84-91%). (Am I out of practice? Did I do that wrong?) -- I tapped out painful on my phone.
- jfasi 8y agoI suppose the math checks out, but I disagree with the model: the whole point of doing multiple interviews is to get a variety of opinions based on the knowledge that bombing an interview just happens. You're assuming that bombing one disqualifies you, but that's not true.
- kjeetgill 8y agoYea, sure? I sorta agree and disagree but it's a little beside the point. My point was addressing the frustration with whiteboard interviews. It sucks to feel qualified and still get rejected. That doesn't necessarily mean they all way outclass you (they might!). If you treat interviewing like applying to colleges (3 or 4 big schools, a few backups) you're going to be a lot less burned by the system. Sure, hate the system. But we've covered blaming the interviews. But that's not helping anyone right now. As to the model, in my experience if you do sufficiently poorly on one and leave any doubt on another no one interview will save you. Sure you could add in the probability of failing two vs one. But that's numerically the same as just making that .95 a .9. It's a made up number, so what. The conclusion is kinda the same: doing pretty well can still lead to a failure for any given job, but you can still do pretty well in your job hunt.
- HillaryBriss 8y agoI have no info about whether Google/Facebook programmers can solve whiteboard questions easily so I expect this comment to be down voted but ... I'm consistently surprised by the fact that, despite hiring programmers who are the world's most elite, Google's products and services are just kind of ... plain/average/boring. The products and services are far less amazing than Google's engineers. It's like Google takes in geniuses but outputs kind of boring, standard, average quality products and services with a surprising number of problems and deficiencies.
- franzwong 8y agoIt looks like they enjoy creating it instead of making it popular for the end users. Google+ is a good example.
- Eridrus 8y agoThis is basically the selection criteria for getting a job, why wouldn't they be?
- Aardappel 8y agoFrom the average skill level of Google engineers I know, I would say yes, most would do a very solid job on the average interview question. However, you probably wanted to know if that means that they would all get back in if re-interviewed, and the answer is no. Google is famous for tolerating huge numbers of false negatives in exchange for a small reduction in false positives. So, by definition, many would fail, even if they are capable Google engineers. When I interviewed, I knew nothing of this process. Which was probably good, it would have made me a lot more nervous if I had know what lottery I was about to enter. In fact, I was pretty arrogant, seeing that typical questions were "just CS", and thinking my CS knowledge was pretty solid, I didn't even do any prep work. So I was probably pretty lucky to get in. My own assessment of the 5 interviews I had were that 3 of them went very well. 1 went so-so (the interviewer assumed I was a webdev and ask me all sorts of specific server balancing questions, whereas I have worked mostly on compilers and game engines.. I managed to do ok-ish since I do know distributed systems). The final one I felt went badly since there I actually didn't manage to solve the problem the interviewer asked (it was one of those more puzzle-y questions), but I guess I somehow did ok, since I did what you're supposed to do in such a situation: show that you're a good communicator and problem solver even when you don't know the answer. I was dissapointed in all these interviews since I was hoping for interesting questions specific to me (how did you implement this type inference algorithm?) which never came. Of all the interviews I've conducted for Google since, I've only had a 1:40 ratio of seeing people being accepted, even though plenty seemed highly capable to me. Usually some other interviewer didn't have quite as good a time with them as I did. You really need to make all of them happy to pass. To other answers that joke that these interviews are the hardest thing you'll do at Google, I'd like to disagree. At least in the teams I've worked, I've done things that thoroughly stretched my abilities, way beyond the level of interview questions. Of course they're of a very different nature, but that is the point: interview questions are very distilled, idealized, and problem solving in the real world is very messy, and to my mind at least, much more interesting.