10 ms·
Yeah it sucks to have to study stuff that's mostly irrelevant to your job in order to get that job - it truly does, I despise the system! - but it is worthwhile
by sanderjd 6y ago
Yeah it sucks to have to study stuff that's mostly irrelevant to your job in order to get that job - it truly does, I despise the system! - but it is worthwhile to shift your perspective to considering the ROI of doing that study. The dirty secret is that CS-y interview questions are easy compared to the job. It's just much much harder to debug some novel bug that crops up in the cracks between the myriad components that uniquely make up the system you work on, or to figure out what your users want and how to build that, or to respond to having the good problem of scaling more quickly than expected, or tons of other things successful professionals in the field regularly do as part of their day to day work. It's deeply lame that experience with these much more difficult things is not expressed through the typical CS-y interview process, but if you can do those things, you can definitely learn to do the CS-y stuff. Reversing a binary tree is easy; look it up. Yes, you have to learn how to traverse a tree, and no, that's not likely to be very useful knowledge in your work, but it's not very hard to learn. You can spend 100 hours studying and nail pretty much all the CS-y questions, and that could literally have a return of a million dollars over five years; I don't know of many opportunities that offer such a good possibility of returning 100k per hour. It sucks, I hated studying elementary stuff after I was already a successful professional, and I was a nervous wreck during the interviews, but it is very hard to argue with it from a purely ROI standpoint.
- decafninja 6y agoA lot of FAANG engineers seem to report that the interview was the hardest thing that they've done, harder than anything they do as part of their actual job. It's probably not that the leetcode problems are ultra hard to solve (though they can be). It's also the combination of the artificial time constraint and the high pressure interview setting - which is a very different kind of pressure than you typically experience on the job.
- msoad 6y agoFAANG has a system for firing people who can't cope with the complexity of the job. There is a huge survivors bios. To be a FAANG engineer you need to be able to pass the interview and have the skills (mostly people skills) to navigate a large system.
- pbhjpbhj 6y agoSurely companies account for this in their interview teams? Or are they just haplessly floating on the narrowly applied intelligence of their workers? (Or something else, not suggesting a divalency).
- gregors 6y agoI don't know if it's true but during a video talk there was a story that a team of googlers were secretly given their own feedback ratings and they didn't hire themselves. https://youtu.be/r8RxkpUvxK0?t=534 https://youtu.be/r8RxkpUvxK0?t=534
- erik_seaberg 6y agoAmazon introduced the notion of a “bar raiser” who expects a candidate to be stronger than 50% of the staff. It’s sort of appealing, but if your attrition is unbiased (you lose equal numbers of strong and weak staff) the right edge of the bell curve seems too small to keep up with it.
- ijidak 6y agoThat's software in general. The core money-making algorithms don't take many human bodies to develop. At Google, 500-600 researchers and core algo developers likely do most of the heavy lifting. Otherwise, 90%+ of their developers are likely solving routine problems. Although, most of them likely convince themselves that only the "chosen ones" among mankind can do what they do. The reality is that most of software, even at the FAANGs, does not require the type of interview questions these teams enjoy asking.
- sanderjd 6y agoFWIW, I don't think most people at big companies are at all convinced that they are the "chosen ones". I think they are glad to have good jobs that have a higher than average potential to contribute to projects that are useful to people.
- sanderjd 6y agoOh I agree, but yes, I think it's the giant amount of pressure and negligible room for error that makes it so hard, rather than the difficulty of the material.
- mgarfias 6y agoYup. I failed the last one I had (I’m an SRE/ops guy). I realized the proper solution the next morning after sleeping on it. I just couldn’t pull it out of my butt in the 30 mins I had. Sux. I’ll get there one of these days.
- vlod 6y agoThat's exactly how I work. I usually take the dog out for a walk and "bang" a really cool answer magically appears. I find it extremely annoying to come up something while someone watches me as if I'm an idiot.
- goostavos 6y agoFAANG guy here, interviews are hard in that they have absolutely nothing to do with your day-to-day job. If I were to go through the interviews again right now I'd make a massive fool of myself. I'd say it's basically common knowledge that prior to making any hops, you've got to take at least a month or two to grind leetcode problems so that you're back in that head space where you can solve pointless problems with high efficiency. Interviews are also hard (as I frequently comment around here) because, once you've seen how the sausage gets made, you realize it's basically still a crap shoot which comes down to the loop you get. If you get an unlucky roll and end up with the personality type which views interviews as a chance to show how much more clever they are than everyone, then you've already failed. Their ego is tied to their "high bar" and impossible question set, and you're just fodder for them to show off that "high personal bar" during the de-brief.
- svaha1728 6y agoYup... it’s like asking your doctor to draw the Krebs cycle from memory.
- nwienert 6y agoHa! My hobby is pharmacology and I’m always having to refresh myself on various steps of Krebs. We need a Ninja Nerd[0] for CS I guess, I’ve found it incredible. [0] https://youtu.be/rr7IRYLqleg https://youtu.be/rr7IRYLqleg
- sanderjd 6y agoRight, but you can't become a doctor without spending many thousands of hours and hundreds of thousands of dollars gaining credentials. But you can become a highly compensated software engineer by spending a miserable day answering pointless questions on a whiteboard. I would personally prefer the credentialing approach because at this point it would be easy for me to get the credentials. But the low barrier to entry also has advantages.
- dTal 6y agoFor that matter, I'm not sure that the way medical education is done is something to aspire to. Years and years of exhausting sleepless tedious grind, at the expense of any instruction on deductive thinking or bedside manner; if at the end of it all they can't even draw the Krebs cycle from memory, then what the hell is the point?
- cloverich 6y agoIts also a different kind of problem. Its not really problem solving, though it masquerades as such. Its memorization. Plain and simple, you know the techniques or you don't. Studying at length for those kinds of problems is extremely unfulfilling, especially for curious minds who have long realized there are far more actually interesting and useful problems to solve out there than there is time left to live. And yet, here we all are jumping through hoops because nobody has figured out how to test for real job skills.
- sanderjd 6y agoIt isn't pure problem solving but it also isn't memorization "plain and simple". It's a mix. It's unlikely you'll see exactly the same question as one you studied. The problem solving portion is figuring out how to apply one of the techniques you've learned to a novel problem.
- deleted 6y ago[deleted]
- withinboredom 6y agoThere are only so many algorithms and so many patterns.
- colinmhayes 6y agoRecognizing the pattern is the problem solving part of the problem.
- cloverich 6y agoI think the argument is that recognizing the algorithm part through the (usually thin) facade is very easy, once you know the (common) DS&A questions well. I.e. there is a lot of challenge in learning the algorithms, and little to no challenge in recognizing it through the problem. Examples where a person knows the underlying DS&A very well but is unable to recognize the nature of the problem would be a great counter argument.
- sempron64 6y agoAnecdotal counterpoint: Passing FAANG-style technical interviews are the easiest thing I've done. Learning new frameworks and coding standards, surviving code review, dealing with difficult team members, dealing with ever-moving business goals, and just about every other aspect of work, including the coding, has been harder. I admit that I have never had to invert a link list as part of my work (Graph traversals I definitely had to do, actually). But I have had to submit to arbitrary technical demands and to learn and use technical materials I did not enjoy or agree with architecturally in order to successfully complete projects. So in that, studying and practicing to pass the technical screen is similar to the job. Employers want someone who is able to (sometimes!) bite their tongue and just do the work assigned.
- carpedimebagjoe 6y agoI think the rationale at the scale of this point in FAANG is to hire as many people as possible and see who can't hack it (pun intended). In the early days, they had to be more choosy about narrowing the talent pipeline with harder interviews. Actually, I remember one IT-style interview 12-ish years ago with a certain FAANG that shall go nameless that had this sorta narcissistic/sorta dumb hiring manager, whose profile picture was a shirtless muscles pool pose, believed that a technology I inherited and was forced to use was an interview deal-breaker. And, at the time, I was at an IT department at Big Name university down the street where there were much more complicated and interesting things going on, like remotely uninfecting and patching worm-laden systems and putting together a fully-redundant/HA VMware cluster that had an FC SAN and blade servers (the thing back then).
- ryandrake 6y agoNot just FAANG jobs. In almost every job I've ever had, the interview was by far the hardest part. There's such an enormous stream of candidates, and no baseline "bar exam" to qualify people, so companies have to make the interview bar extremely high in order to be able to manage the candidate flow and sufficiently minimize false positives. I'd guess 99% of engineers never have to do CS trivia as part of their day-to-day job.
- decafninja 6y agoI've been on interviews at some companies that have no brand name recognition/prestige, and probably do not have legions of candidates trying to get in. But they've thrown me harder leetcode questions than FAANG.
- sanderjd 6y agoIt's a bit perverse but the problem is that hiring people who can't do the job well is much worse for a company like that than it is for a big company with lots of slack in the system. Not only do they have to pay a person that isn't contributing enough, but the more senior folks on the team have to spend more time mentoring, so it's a double drain. This drives the process toward a higher bar after getting burned a few times.
- decafninja 6y agoI can understand that - but if I (or my company) were in that situation, I would not even use leetcode interviews.
- wdb 6y agoGoogle projects on Github are a good reflection of it. The code quality of these projects sometimes. You wouldn't be able to get away with that in smaller companies.
- okprod 6y agoI like Automattic's process where you work/contract on the job first before a hiring/acceptance decision.
- tanjtanjtanj 6y agoSo they aren't hiring people ho currently have a job? Every job I've had since starting my career explicitly would not allow this.
- okprod 6y agoThey're pretty flexible about the trial project, which is contract pay, including choosing an open source project. Though I think you definitely need to want to work at Automattic to go through the hiring steps though, including onboarding as customer service. Note I don't work at Automattic, I know someone who went through their hiring process but declined due to salary.
- notacoward 6y ago> You can spend 100 hours studying Is that an equal burden for every candidate, in every life circumstance? Or does it privilege certain groups over others? The ROI isn't the point. Requiring preparation unrelated to the job is highly suspect, regardless of the return.
- sanderjd 6y agoIt privileges younger less attached people with more free time over more experienced people who are more likely to have families. Note that I was the latter kind of person when I did this, and trust me, a credentialing solution like the one in essentially every other professional field would have been way better for me, but there are also advantages to having a lower barrier to entry than those fields.
- nunez 6y agoHonestly I'm okay with a super-tough theoretical interview when a very high and very comfortable compensation and benefits package is at stake. Every other job I can think of that pays nearly as much as tech requires years of education/apprenticeship, brutal exams, and less flexibility around things like location, work/life balance, and dress code.
- sanderjd 6y agoRight. I despise the interview process we've landed on in the industry, but have slowly and painfully come to terms with it as a decent bad way of doing it to balance between having some competency bar and the usual heavy gatekeeping solution.
- dTal 6y ago>You can spend 100 hours studying and nail pretty much all the CS-y questions, and that could literally have a return of a million dollars over five years; I don't know of many opportunities that offer such a good possibility of returning 100k per hour. ...check yo math?
- antman 6y agoIt's even worse asking candidates propabilities, linear algebra and presenting them with real problems (NOT cs) and ask for applied algorithms, most failing miserably and then seeing on glassdoor that they found the interview easy non technical but got no offer. Most even miss that the discussion was about algorithms (I am not telling them explicitly).