14 ms·
It's becoming obvious to me that my time is better spent learning to solve these riddles rather than actually becoming a better developer. I have a job search c
by digianarchist 6y ago
It's becoming obvious to me that my time is better spent learning to solve these riddles rather than actually becoming a better developer. I have a job search coming up at the end of the year and whilst I've managed to largely avoid companies that ask this type of question, I believe it's seriously constraining my career.
I can't speak for everyone but the whiteboard interview has prevented me from leaving jobs earlier, moving jobs more frequently and left me avoiding certain companies altogether.
- grumple 6y agoI wonder if that isn’t the point, to increase developer retention and reduce competition for devs.
- rightbyte 6y agoIt would be a "tragedy of the commons"-like effect for companies that don't adhere. I would guess that is just an unintended effect and that there is no master plan behind making recruiting expensive, slow and inaccurate.
- jdietrich 6y agoOr it's part of an organised cartel between the major SV employers to reduce salary competition and employee turnover. https://en.wikipedia.org/wiki/High-Tech_Employee_Antitrust_Litigation https://en.wikipedia.org/wiki/High-Tech_Employee_Antitrust_L...
- rightbyte 6y agoI am not ruling out the possibility that there is a "recruiting should be hell" cartel but I believe there is no general bad bureaucracy HR bloat cartel and that it is an unintended effect, hazing, esprit de corps, HR self interest etc. The conspiracies are probably more simple like "no poaching" or wage cartels?
- an_opabinia 6y agoSurely the generous pay is the biggest factor for retention? Competition is ill defined in the labor market because people aren’t fungible. So it’s hard to really point to hard evidence, so and so practice leads to so and so change in salaries or increase in retention. Aside, nobody said this guy was looking for a low paying job. High paying ones want leetcode. Google will pay a higher salary to a 21 year old than a Miami firm will pay to someone with 10 years of experience. Nobody will ask you these puzzles outside of ~5 markets in the US. They also pay way less.
- benrbray 6y agoAnecdotally I would say job satisfaction is at least as important a factor in retention, at least until employees are old enough to have started a family. Many young people (age 20-30) I know are in a situation where they are paid large sums of money ($100k-$200k) for extremely dull work. I've seen most of my friends from college quit their FAANG job in search of something more fulfilling, often at a 50% or more pay cut.
- fractionalhare 6y agoThat could be part of it, but I don't think it's the primary reason. Rather I believe it's just one example of a more general, emergent phenomenon in capitalism, in which the top decile of jobs in high paying careers converge to interview methods which are a legal proxy for IQ testing. It is a game of cat and mouse between candidates and companies. The candidates want high pay and interesting work, and the companies want only the top n% of candidates for their work, for some metric of their choosing. However many candidates a company has to choose from, they will devise some way of choosing the best among them. The methods for determining the best become (in my opinion) increasingly pathological as the surplus of candidates increases. In tech, the result is that the past decade has seen a supermajority of the most lucrative, mainstream jobs moving to a local maximum: whiteboard interviews based on data structures and algorithms. In response, candidates have gamified the process of studying for these metrics using Leetcode, and so a cottage industry of adult test prep was born. Other industries use extreme credentialism or other methods to cut down on the vast majority of resumes they see, and there likewise emerges a cottage industry of professional preparation to break into these careers at the highest level. The companies use these methods because they see an absolute glut of candidates and become risk averse to bad hires - because after all, if they can attract so much talent with high pay and prestige, why should they suffer possible duds? This is how we end up with the, "Google is okay with passing on false negatives but can't tolerate a false positive in their hiring process" reasoning.
- lowiqengineer 6y agoIt's funny/depressing to think all of my depression stems from not being able to do these problems fluently.
- mettamage 6y agoAccording to the believers it is an unbiased way of predicting whether people are capable for the job. Google has done a lot of tests and these style of interviews predict job performance best [1]. Assuming this is true then to me it means that universities and work experience are too heterogeneous as a measure of job performance. In my experience that is true. Not sure how well the argument holds up if everyone is simply going to study algorithms though. [1] clement mihailescu says it on his YT channel somewhere in a vid.
- username90 6y agoIf you work at google you can go find those studies yourself, they are public internally. At least you could when I worked there.
- TrackerFF 6y ago> [1] clement mihailescu says it on his YT channel somewhere in a vid. The "co-founder and CEO of AlgoExpert, a website that helps Software Engineers prepare for technical interviews." argues that algorithmic / technical interviews are the best predictors for future job performance? Well color me shocked.
- logicslave12 6y agoI was working on a “startup”/kinda just unemployed for two years. I studied leetcode hard, and got hired into a 300k a year job at FAANG. I know nothing about testing, git, software process, roll outs, dev ops, etc. I barely know how to do software engineering. What an idiotic hiring process.
- fspear 6y agoCan you share some tips on how you achieved this? What did you do if you got stuck on a question you just couldn't solve? Did you look at the answer and memorized it? How many questions did you solve? Were they mostly mediums or hards? What about system design, any specific resources you used?. I keep coming back to leetcode every few months but I always get stuck on mediums so I'd appreciate any tips you can share!.
- deleted 6y ago[deleted]
- sukilot 6y agoDo you think it's unlikely for you to learn those skills quickly? People who have all those skills earn over $300K at those companies.
- biztos 6y agoTo be fair, a lot of people who have none of those skills also earn well over $300K at those companies. Just like grinding leetcode can get you in the door, the skills you need for advancement are not necessarily the same ones you need for making good software. I hope the parent makes the best of it and becomes good at the craft, it will make the job a lot more enjoyable even if it may not be the fastest way up the ladder.
- kudokatz 6y ago> the skills you need for advancement are not necessarily the same ones Exactly this. I suggest learning how to fabricate (or at least exaggerate) "impact" to get promoted. It's the fastest way to make money once you're in the door. Show how much of a team player you are to deliver cross-team, impactful results specifically by stepping on bodies to get there--it'll make you rich!
- jorblumesea 6y agoWorking at the companies that often ask these questions (FB, Goog, Amazon, MS, Apple) work at scales that many other companies don't. They also develop novel frameworks or work on problems that might interest you. Example: if you want to work for a cloud service provider you need to jump through these hoops, even though regurgitating Rabin Karp or Tarjan's has little to do with day to day engineering. Another example: Canonical (Ubuntu) Microsoft (windows) and Apple (OSX) all ask these questions. If you want to have a part in building an OS you will get asked these questions. Basically if you want to work at "big tech" start grinding and don't stop until you move into management.
- non-entity 6y agoI really wish I could leave the field altogether, but the alternatives are things I hate even more or incredibly steep paycuts.
- biztos 6y agoHave you looked into being a software person in a non-software (or only "software-enabled") company? You'd probably get a pay-cut vs. FAANG or whatever, but it wouldn't exactly send you tumbling into the working class. I really enjoyed working on software in biotech, for example, where I started my career... and sometimes think about returning with all my software-company chops to see if it's still as fun!
- non-entity 6y agoI suppose it might depend on the domain / industry. Biotech sounds like it has the potential to be interesting, but I currently work for a large non-tech company and have worked in government and don't like the being considered the cost center or having to deal with the seemingly unending layers of bureaucracy.
- biztos 6y agoIn biotech, at least back in the day, bureaucracy depended on company size and nationality, and there never seemed to be enough hackers for all the random tech stuff that needed doing. I'm sure it's changed a whole lot since then but as a general point, it was a lot more diverse along any vector you like than the software world. Maybe you should find a startup with no layers of bureaucracy and no cost centers yet? This being HN, there are plenty of them around.
- biztos 6y agoI am trying to resist cynicism, but I too am thinking that after my upcoming sabbatical if I want to get top dollar I should just invest in power-grinding at the leetcode gym. Still hoping to find a friendly startup though, since some of the MegaCorps are lifestyle-incompatible and I'm already used to making a lot less than Googlebucks.
- PragmaticPulp 6y ago> after my upcoming sabbatical if I want to get top dollar I should just invest in power-grinding at the leetcode gym Given that top dollar can mean potentially a six-figure raise over median salaries, that doesn't exactly seem like a bad deal. All things considered, Leetcode is remarkably accessible relative to the barriers of entry in other high-paying fields like law, medicine, certain finance careers, and so on. It's a mostly-free website that you can work through at your leisure from the comfort of your home, with plenty of Google results to walk you through the questions if you run into a problem. Have you spend some time on Leetcode already? I could see how the questions could be daunting to new grads, but I didn't find it all that painful with several years of industry programming experience. Don't get discouraged by the sheer number of Leetcode problems. You don't have to do them all to get value out of it. The key is to do a couple per day in your free time (lunch break, while you eat breakfast, whatever). Any consistent practice will add up over weeks or months.
- biztos 6y agoActually I love leetcode (the website) and do it for fun once in a while, and if I decide to go for a big grind later on then I don't think I'll particularly mind that part even if it doesn't get me my ticket to the Google Bus. The risk of cynicism is that I've been doing this for 25 years or so and there are some things I'm quite good at that can add a lot of value to a company, but it appears that the highest-paying outfits will judge me on things that are at best very tangentially related to how I can make/save them money. Sorry if my comment came off as anti-leetcode, I have a low opinion of the thing so many people use it for, not the site itself. Before hearing of my impending sabbatical I was even planning to subscribe to the "pro" level and build it into my work routine, just as way of differently exercising my brain once or twice a week.
- TeeMassive 6y agoI'm glad that I am not alone. I've done mostly non-UI C++/C#/Java/Python stuff, mostly business level rules and devops and evangelizing good practices such as CI and clean code and git (you would be surprised how many people don't even know how what it is or how to squash and rebase). Having studied computer engineering we did not really focus on algorithm but more on lower level stuff and signal processing. I do not really fit any of the "standard" interviews. I've done the TripleByte interview and other top 100 corporation interviews and they all seem to assume a computer science formation or if not than assume you are a web dev. So yeah, I know how to implement most algorithms efficiently, I just can't remember how to describe exactly Dijkstra's from memory or how to balance a tree on a whiteboard under stress. I've seen them, I learned them, but 7 years after not using them I forgot (and frankly don't care).
- wtracy 6y agoFWIW, I've found that companies outside the valley, particularly those that don't see software as their primary product, are more interested in work samples than puzzle solutions. Try broadening your search to things like aerospace and medical technology companies.
- non-entity 6y ago> Try broadening your search to things like aerospace and medical technology companies. Not sure what the correct name is, but most job listings I've seen for these industries strongly prefer people with prior experience in them because they have to follow strict frameworks / processes for safety reasons.
- cactus2093 6y agoKind of a meta point, but why do you call it the whiteboard interview? I think that was more popular 5 to 10 years ago, actually writing code or pseudocode on a whiteboard. In my experience the leetcode style questions most companies use today have you actually write and execute code in a sandbox environment. It may be that the algorithms you’re required to come up with are still overkill in that they’re things you would not normally need to write from scratch on the spot without being able to references any resources in your day to day work. But as far as the format goes, this style of actually writing and executing code is clearly an improvement on the write-code-on-whiteboard style of interview. I feel your pain though, the weeks of study that almost any good engineer needs to put into preparing for interviews can be pretty grueling.
- anon349852034 6y agoI have 2 friends who work at the Amazon office in Denver. Both work on boring projects utilizing internal tools Amazon built over the years and completely hate their lives. But the salary and stock options make them stick around. You can look at this as "Omg, this is total shit. I'd never want to work here." or "I don't mind suffering 4 years to get fully vested, get the fuck out of dodge and enjoy retirement a little earlier than others." Both of my friends picked the latter.
- lowiqengineer 6y agoI’m gonna take a wild guess and say that if it was Google they wouldn’t have that opinion, eh?
- snypox 6y agoWhat do you mean?
- yodsanklai 6y agoI spent a lot of time practicing leetcode, interviewed a bunch of times (4 times, about 25 technical interviews) at FAANG without getting an offer. They always tell me it was very close (or even that I passed, but they didn't find a team in the following month and asked me to reapply). What leaves me with a bitter taste is that they don't seem to value the experience on my resume (e.g. OSS and tons of github projects, blog or scientific articles, things written by me they could actually check). It feels like they will favor a candidate who can solve leetcode problems a little bit faster to someone who is a more experienced SWE. Also the whole thing seems pretty random. Also practicing leetcode feels like wasted time. It's not uninteresting but after you solve 500 problems, it starts to get uninspiring. There are cooler things to do for personal development, especially when you already have a demanding job. But well, that's part of the game... at least the rules are clear, and the interviewers/recruiter are usually pretty nice.
- andreilys 6y ago“ Also practicing leetcode feels like wasted time.” I think take home assignments are worst in terms of wasted time. At least your leetcode skills are transferable whereas take homes rarely transfer.
- eastbayjake 6y agoOne of the big unspoken reasons these questions stick around: they cause little imposter syndrome anxiety for the senior engineers who need to conduct the interview. You ask a candidate to code a toy problem, and the candidate either knows the "trick" to solving it quickly or they don't -- very little risk for you as the interviewer, you're just watching things play out. But if your interview requires you to pair program on real code like you'll do in your actual job, it opens up a lot of room to look dumb in front of an interviewee. You have to handle bugs on the fly. You have to look up (for the 5000th time in your career) whether you should be using Array.slice or Array.splice in this case. You go back and look at a similar implementation in your code base for a template instead of coding from memory. And that's a shame because the live coding exercise is both a better predictor of hands-on job success and it's a better recruiting tactic: you've just had a vulnerable, collaborative experience with someone who will actually be working with you on a regular basis and you get a sense of whether you'd actually like to work there. But we keep doing these algorithms exercises because they require such little effort or interaction from engineers who are doing this interview in between two meetings with no prep time.
- virtuous_signal 6y ago>And that's a shame because the live coding exercise is both a better predictor of hands-on job success and it's a better recruiting tactic I'm very interested in this claim. Every interviewing-is-broken thread, someone mentions that pairing, or take-home exercises, or work samples, or their favorite method, are better predictors than algorithm problems. On the one hand I doubt any but the biggest companies could conduct studies on this; on the other hand individuals at smaller companies might honestly remember only those times their hires filtered through this method were successful, due to confirmation bias. So it seems like an inherently difficult thing to study. Whereas, algorithm questions lend themselves easily to a "rubric" and seeing, 1 or 2 years later, if higher "grades" corresponded to better job performance.
- bradleyjg 6y agoEven for the biggest companies the analysis is only going to be as good as the internal performance measuring system and how can a company gain confidence that is working? There was a long discussion in the GCP thread yesterday about what google has been hiring and promoting for over the last ten years and what culture that produced. Any look-back at hiring methodology vs success at google is going to embed that implicit strategy. Among other things that means another company should very much not extrapolate from Google’s experience—-even if it is based on solid data analysis—-unless they are trying to replicate that culture.
- n_f 6y agoI think these interviews test whether or not you're willing to work hard-- you can't just use critical thinking to get the answer, you actually need to study to learn all the tricks. That's an important characteristic to screen for imo.
- deleted 6y ago[deleted]
- fn1 6y agoI would just keep my confidence. After all your job is to develop, not to solve whiteboard-puzzles. If you have to solve something, and can't because it's dumb, or partially dumb, then just explain your opinion to the interviewer. If they weigh that against you, then it's not a good company for you anyway. Example: An interviewer once asked me details about POSIX-portability of shell-commands in devops-pipelines. I didn't know the answer, but I had done devops successfully for many years so I replied: "I'm not sure, but I don't really need to know that, because I put all my scripts in http://shellcheck.net/" http://shellcheck.net/" Which was a completely satisfying answer for him and one he didn't hear before. So points for me.
- pmiller2 6y agoYour link doesn't work. I think HN makes you leave a space between the URL and the quote if you want it not to mangle the URL.
- AJRF 6y agoI think these questions are bad for interviews because they cause so much anxiety for candidates. Minimising that will give you a better interview, as if the candidate is more relaxed that’s going to be a more accurate picture of a day to day working patterns. I like pairing for interviews on a simple problem in a real app in the tech stack your hiring for. But really spend effort easing the candidate in rather than barking orders as soon as the come through the door (or join the video call these days I guess). I absolutely love doing Leetcode/HR myself - and think they’ve made me a better programmer. I’ve frequently found times when coding where a “trick” has improved code in my side projects (I’m really interested in making bits of productivity software so trees, graphs and ways of speeding up searching over large portions of text are a real help). Just grinding them out probably isn’t helpful to everyone but go in with an open mind and you’ll be surprised what you learn.
- mindentropy 6y agoYes it is. I had to make this decision as to whether I want to work on my personal projects, explore interesting topics or grind leetcode. To actually work on good projects the first step is leetcode. I have a lot of interesting projects and I can talk a lot about OS kernels and bluetooth. To get to companies working on such interesting projects the gate will be leetcode type judges website. The questions they later ask are rudimentary and none of your effort on going deep into the such interesting topics matter.
- FrozenSynapse 6y agoFor a good developer, those whiteboard problems should not be hard. In my experience, the people who are better at those “riddles” are learning and adapting more quickly.
- hinkley 6y agoOne could, I suppose, split the cost by doing the exercises in a language you are still learning. Unfortunately, Leetcode only has one of the two languages I'd like to learn, and the one I'm probably less likely to find a job doing.