11 ms·
I do find it a little ironic that as an industry we started doing these interviews as a "least common denominator" - from senior engineers to fresh college grad
by helen___keller 5y ago
I do find it a little ironic that as an industry we started doing these interviews as a "least common denominator" - from senior engineers to fresh college grads, everyone occasionally needs to do a search or a sort or a lookup table, and people should recognize when "loop in a loop" n^2 solutions aren't ideal.
And we tuned it from there to into its own sort of mini-SAT with an accompanying preparatory industry and culture.
I find it as a reminder of my fungibility as an engineer: I get paid absurd sums because of supply and demand, not because of my skills; anybody who can game the leetcode exam (and the architectural diagram quiz and the personality quiz) can walk in and take the same 300k income I have. If enough people do so, wages could be pushed down by employers.
Thankfully for my mortgage, that hasn't happened yet and probably won't happen soon.
- Jensson 5y ago> If enough people do so, wages could be pushed down by employers. Thankfully for my mortgage, that hasn't happened yet and probably won't happen soon. You know that already happened? Like 15 years ago was what it looked like before every started practicing, today most people are practicing. If they fail to take your job today then it is because they failed to pass the interviews even with extensive practice.
- helen___keller 5y agoRight now engineering demand is far outstripping supply. If the tides shift and big tech starts tightening their belt, leetcode practitioners will start competing 100 engineers for 10 positions at big tech, and that's when salaries get pushed down. Most books and blogs on professional growth say to have some sort of talent or skill that makes an organization need you. That way, you aren't fungible and have leverage. Right now my "skill" that I demonstrate is leetcode and the only leverage I have is that big tech needs more engineers and have to bid against each other for my fungible work. The moment tides shift, myself and every other leetcode practitioner are basically fucked. When will this happen? Ask a fortune teller.
- Jensson 5y agoThere is a finite supply of STEM minded people, the extreme salaries in programming has already shifted many of those to programming. The job climate today is basically the same as 10 years ago, the interviews looks the same, the salaries are a bit higher but around the same etc. So as far as I know this is the stable point where the people staying in other STEM jobs prefer those jobs over the money, and you wont attract more of those unless you pay even more than companies do now.
- zenithd 5y agoI think this is probably spot-on. Anyone who has taught introductory CS courses at an average public college/university (so, not a huge R1 state flagship) can tell you that getting into programming is not easy. Plenty of students who I would describe as "smart enough" have an incredibly hard time learning how to program. The bar is a lot higher than most people here seem to believe.
- leetcrew 5y ago> If the tides shift and big tech starts tightening their belt, leetcode practitioners will start competing 100 engineers for 10 positions at big tech, and that's when salaries get pushed down. it's already like this just for positions at random software companies paying $80-120k. the percentage of applicants to google that end up getting offers is estimated to be in the low single digits (if not below 1%). and frankly, I suspect big tech companies already hire more engineers than they "need", just to deny them to rising competition. I don't think you're wrong about the moment that the tides shift, but it seems we are still quite far from that.
- cageface 5y agoI've begrudgingly been doing leetcode for the last few weeks in prep for looking for a new job. And a lot of it is stuff that I have never needed in 20+ years of coding. But I will say reviewing the graph algorithms hasn't been a complete waste of time. It's good to at least know what they are, what they can do, and what their tradeoffs are. I realize I was a bit fuzzy on these.
- tra3 5y agoSame. Some of the the questions/solutions are very aesthetically pleasing. While I find it pretty satisfying, I still have a million things I'd rather be doing.
- cageface 5y agoI should also add that of the several interviews I've done so far all but one asked practical implementation questions. And the one that did ask more leetcode style questions only asked easy ones. It would be different if I were applying at FAANG style companies I'm sure.
- silicon2401 5y ago> I get paid absurd sums because of supply and demand, not because of my skills This is how everything works. You can get paid a lot for selling a stock that has appreciated (demand for it went up) without having any skills in investing, just luck. You can also be an incredibly talented musician or artist and get no money for it because there's no demand for classical musicians these days (I've seen this happen to every single one of my classical musician friends. They all have to go into teaching or change careers).
- helen___keller 5y agoSure, my point is just that (among top corporations), engineers have been largely reduced to commodity goods. To tie it back into the subject of interviewing: If you are interviewing for a PostgreSQL expert, then it will be both harder to find someone who fits the bill and that person will have more leverage to negotiate a better salary. That person knows how few engineers (relative to the total pool) have worked on the PostgreSQL codebase and can explain the internal workings and implementation details and relate it to your projects. In a hypothetical future where there's 100 engineers for every 10 commodity engineer positions, that PostgreSQL expert position will still be hard to fill.
- Jensson 5y ago> Sure, my point is just that (among top corporations), engineers have been largely reduced to commodity goods. But that was always the case. Lets say you can save a company millions of dollars by being competent at SQL. Guess what? Any of the millions of people who are competent at SQL could also have saved that company millions of dollars. Why not just hire anyone of those? You are a part of the sea of programmers with similar skills as yourself, that is what you are selling and what companies are buying. So to set yourself apart from the sea of others you show you are smart enough or hard working enough to pass coding interviews, since most of your peers who also know SQL can't pass those.
- Frost1x 5y agoFor programmer or engineer though, it's now a gamble to invest heavily and be that expert in a single technology. In medicine, expert/specialists have large population pools and simply accident or genetic defect rates they can rely on to have customers for their speciality. You can specialize on a specific body part and become a dentist or ophthalmologist and be assured there will be sick people who need you and are willing to pay (unless of course we cure/eliminate the problem you solve which rarely happens). If you're in software and know the internal workings of Postgres, well that's fine and dandy iff a business decides to use Postgres. Maybe they chose MariaDB or something else arbitrary instead. That highly specialized knowledge you have about Postgres is highly dependent on demand as it always has been. The difference now is that for any given technology, there seem to be a sea of competing options, so the risk of your expert time investment having no demand is quite high. The salaries may be high but I'd argue they're not high enough for the time, effort, and risk to become a specific technology expert anymore. I have expert level knowledge in systems that now have almost no demand. It's a waste of my time to maintain them at this point, the risk and opportunity cost is far far too high. There was a time when you could become an expert or near expert of about 1-3 competitors for a specific library of infrastructure and those skills were incredibly valuable, highly transferable, and in demand because the pool of competing tech was so low. Now I can't even keep track of number of just say database or database like applications teams may choose to use. There's more diversity than there is demand to justify and sustain the evel of diversity we now have, IMO.
- azemetre 5y agoI'm honestly completely fine with this, and my worry is that the industry wants to move towards a more "accredited" role with organizations similar to doctors, lawyers, or other professionals to keep others out. Why am I worried? Because if you're a competent programmer you can spend 3-months to a year studying for these interviews and make $200k+ in TC. You don't need a degree or even much work experience to achieve this. You don't have to come from an ivy league school or have powerful connections, you simply need to understand a few common leetcode patterns and system design. If you can understand for loops, variable reassignment, objects & arrays, and some other unique operators like modulo or booleans you can likely answer 70% of LC type questions. That's an extremely low bar, and all it takes is dedicated practice. Even if you don't want to leetcode, there are still plenty of well paying jobs that pay more than the average household income whose barrier to entry is even lower. What other job or industry honestly has this option? I honestly feel like software develop is the truly last "middle class" industry (if salaries kept pace in other jobs for the last 40 years).
- whimsicalism 5y agoI don't think it's true that your educational background doesn't matter at all. At least at the tech co where I work in ML, every single one of my peers has a PhD and while I don't, I went to Harvard.
- jlund-molfese 5y agoIs Harvard known for having a particularly strong ML program compared to other schools which aren't household names, like UIUC and Georgia Tech?
- whimsicalism 5y agoPer capita it is probably stronger than many schools, overall I doubt it is better - and certainly not than top CS schools. That said, in undergrad for ML, I think some of the more important things are giving you a strong basis in linear algebra, vector calculus, and numerical computing - and I certainly got that there.
- yarky 5y ago> I get paid absurd sums because of supply and demand, not because of my skills; There's limited offer because it's a rare skill, not sure what you mean by "not because of my skills" since your skills are rare hence valuable to the market. > Thankfully for my mortgage, that hasn't happened yet and probably won't happen soon. The keyword is "hopefully". This already happened to physicists with nuclear power if I recall my history lectures.
- helen___keller 5y ago> There's limited offer because it's a rare skill, not sure what you mean by "not because of my skills" since your skills are rare hence valuable to the market. Leetcode doesn't make companies money. They can't tie it to their revenue. Being paid because of my skills means I can walk into an interview, say "I'm a domain expert in X and my last client saved $Y thanks to my expertise when I optimized their Z". The leetcode analogue is "I'm a fungible engineer, and since your company basically prints money as long as you have enough fungible engineers to keep the ship running, you should hire me"
- Jensson 5y ago> I can walk into an interview, say "I'm a domain expert in X and my last client saved $Y thanks to my expertise when I optimized their Z". Billions of people have the skills to say that. Being able to say something doesn't mean that you have the skills to do it. And being able to talk about something for a few minutes after that first sentence also doesn't necessarily mean that you have the skills to do it. If you had an airtight system for assigning credit for performance at companies, and then being able to show evidence of what you did to other companies, then what you are talking about would work. But right now nobody even knows how to properly assess the value of employees they work directly with, being able to assess the value of employees you just heard a few sentences from would be magic.
- whimsicalism 5y ago> "I'm a domain expert in X and my last client saved $Y thanks to my expertise when I optimized their Z". And I verify that... how? LC is basically a proxy for being able to pick up random shit quickly, learn how it works, and demonstrate/use that knowledge. The particular knowledge isn't that important. It probably won't be that important at the big tech co - what's more important is how fast you can pick up their novel processes and stack and start getting effective work done.
- harkonen23 5y ago>> And we tuned it from there to into its own sort of mini-SAT with an accompanying preparatory industry and culture. Seriously. Interview Kickstart recently quoted $8500 for two months to prep for the FAANG exams. The entire session felt like a high-pressure sales pitch from a timeshare salesperson. Here we are SF/SV 2021!
- thechao 5y agoI work at a FAANG, but I don’t really understand what a “leet code” interview is? I’ve interviewed hundreds of people, and hired a number of them. What makes a great engineer is enthusiasm, curiosity, good communication skills, and a willingness to adapt to the processes of the team. Initiative & leadership are nice, too, if I think I might need a manager in the wings. Ambition is ok? It’s hard to temper highly ambitious people. Coding is a mechanical skill you can assess in 5 minutes at the whiteboard during your interview while you look for the important skills.
- tra3 5y ago> Coding is a mechanical skill you can assess in 5 minutes at the whiteboard during your interview while you look for the important skills. If this was true, we wouldn't have leetcode style interviews. > I don’t really understand what a “leet code” interview is? To me it's the puzzle style questions; or questions you have no way of answering without knowing or being exposed to a certain trick.
- Apocryphon 5y agoIt's ironic, given that algorithmic whiteboarding questions were developed as a reaction to '90s Microsoft "how do you move Mount Fuji" brain teasers. I would not call Leetcode questions puzzles in the same sense, yet many questions do require some foreknowledge of having seen the question to get to the optimal solution. There could be an article or analysis written on that subject. What is the pedagogical gap between common CS education (both academic and not) and being able to intuitively leetcode? Students are learning the data structures and algorithms, but perhaps not in a way to approach problems in the same way that leetcode style platforms force them to really utilize that knowledge. Maybe there are problem-solving approaches not being covered? A survey of the most commonly asked leetcode problems in industry would be illustrative as well. Some questions rely on advance knowledge that aren't really found in academic computer science. What CS course teaches two pointer - isn't that a competitive programming technique?
- j245 5y ago> I find it as a reminder of my fungibility as an engineer: I get paid absurd sums because of supply and demand, not because of my skills; anybody who can game the leetcode exam (and the architectural diagram quiz and the personality quiz) can walk in and take the same 300k income I have. If enough people do so, wages could be pushed down by employers. Entry is one part of the puzzle. The actual skill bit hopefully comes into play after you get in, at which point your skill(s) improve your chances to survive / thrive at these companies.
- whimsicalism 5y agoDomestically, there is a limited supply of very smart technically minded people. It's sometimes possible to game the system by doing hundreds of LC, but it's still hard to beat people for whom it just clicks.
- jahewson 5y agoI don’t understand this view. Learning to “game the exam” (by which you mean pass) is the gateway to all careers, whether you’re a truck driver or a brain surgeon. What’s special about software?
- dominotw 5y ago> brain surgeon. What’s special about software? brain surgeon doesn't take USMLE at every job interview.
- whimsicalism 5y agoIf the suggestion is that we change our field to be more like the medical profession, I'll just say I'm thankful you're not in charge.
- Apocryphon 5y agoWhat if the accreditation for this industry is simply do the existing LC exam, except once you pass it you're good for 5-10 years until you renew your license? Instead of the current system of having to retake it every single time you change jobs.
- Jensson 5y agoBrain surgeons gets sued and you get a public paper trail when they do a bad job. Also they often have a lot of data of all their performed surgeries they can refer to. Software engineers however fails silently and nobody will know. Lawyers, the other big profession that are paid a lot, also have a lot of data they can go by to prove that they deliver value. Can you give a single profession that pays $200k+, isn't a manger job, doesn't have easily tracked metrics like doctor/lawyer, and doesn't have tests like the algorithm interview?
- Apocryphon 5y agoActuaries?
- deleted 5y ago
- game_the0ry 5y ago> And we tuned it from there to into its own sort of mini-SAT with an accompanying preparatory industry and culture. Agreed - interview prep is a cottage industry. It should be worth reflecting and discussing why that is. If tech interviews are not horribly flawed, why is there a small industry of paid prep resources for passing those interviews?
- whimsicalism 5y agoThere are plenty of industries that have cropped up on convincing people they need something despite the fact that they probably don't need it. For instance: SAT prep schools, the evidence on private college counselors, etc. - there is little to no evidence these actually have a substantial impact, but people pay for it anyways. In the adult world, try managed funds. Again, little-to-no evidence that you have any way of knowing ahead of time which of these will beat the market and which will underperform, but people still pay massive fees to get included in an "exclusive" investment fund. This is a human phenomena, it doesn't mean the selection criteria isn't working - just like the exist of managed funds doesn't mean the stock market isn't working. The world is full of lots of people, and some proportion of those people will be marks.
- Apocryphon 5y ago> there is little to no evidence these actually have a substantial impact Is that true? https://slate.com/technology/2019/04/sat-prep-courses-do-they-work-bias.html https://slate.com/technology/2019/04/sat-prep-courses-do-the... > Once scholars control for all these factors as best they can, they find that coaching has a positive but small effect: Perhaps 10 or 20 points in total on the SAT, mostly on the math section, according to careful work by Derek Briggs of the University of Colorado Boulder and Ben Domingue of Stanford University. > A 2010 study led by Ohio State’s Claudia Buchmann and based on the National Education Longitudinal Study found that the use of books, videos, and computer software offers no boost whatsoever, while a private test prep course adds 30 points to your score on average, and the use of a private tutor adds 37. Also, managed funds are not analogous to interview/test preparation in any way.
- wly_cdgr 5y ago"Preparatory industry" is a bit much. The only thing people really need or use for interview prep is Leetcode, which costs about as much as Netflix if you buy an annual subscription, and provides hundreds of hours of what should be at least somewhat fun to anyone who actually enjoys programming If you wanna get fancy you can throw in a $59/month Coursera Plus sub for those big-name-university math and CS courses. There are some good ones that I think would help people who focus exclusively on LC improve faster and/or get a deeper understanding Ok, so we are now talking about ~$900 over the course of a year. Even throwing in some a la carte courses from edX, like the Programming Languages sequence from Washington that OSSU recommends, you can now give yourself a thorough and marketable CS education in a couple years of hard work for under $3k. That doesn't sound like a predatory industry....that sounds like excellent progress towards equitable opportunity P.S. And you can even be a cheapskate and just use the Sedgewick booksites and do the UCSD and Stanford discrete math and algos courses on Coursera and get your interview prep done for a grand total of like $200 P.P.S. The reason you don't need algos in your day to day is because you are not good enough at algos to get a funner, better paying, more impactful job where you do
- blueline 5y ago> P.P.S. The reason you don't need algos in your day to day is because you are not good enough at algos to get a funner, better paying, more impactful job where you do there are a comically high number of jobs at "prestigious" companies where this is absolutely not true
- wly_cdgr 5y agoOk, maybe not the "better paying" part. Should have put an "and/or" in there somewhere
- skinnymuch 5y agoImpactful how? If you want to believe you are not just a cog for some for profit enterprise, but are doing impactful work, cool. I likely disagree, not as a diss on you. I generally see cogs as cogs, myself included. OTOH, your wording wants to believe you and others good enough in algos are better than others.
- tombert 5y agoI have changed my mind about a dozen times with how I feel about the whiteboard problems for interviews, and I am somewhat on the side of "they're not good", largely for the reasons that you mentioned; it's not hard to find online tutorials to practice specifically for these kinds of problems, which doesn't necessarily correlate with a good worker. I mean, hell, I took advantage of this very feature when I started out; until very recently I was a college dropout who bought a few books on data structures and algorithms, and managed to find engineering work relatively quickly because I knew enough to do well in whiteboard interviews. I know several engineers who are several times smarter than me, who could build basically any application asked of them, who always have trouble finding work because they don't do well with these whiteboard problems. Of course they could study and learn to get good at these problems, but at that point, what exactly are we testing? I also think these problems are kind of bad for the other direction. When I interviewed at Apple, they gave me typical big-O notation whiteboard problems, I did well enough on them, got an offer, and accepted the job. I just assumed that if they're asking me hard CS theory problems, then there will be a lot of CS theory work at my position there. I was completely wrong about that; the job ended up being extremely bureaucratic and I spent substantially more time replying to emails and attending meetings than I ever did coding, let alone solving interesting problems [1]. I managed to hang on for about two years, but after a certain point I felt that I had had enough and left, and I always felt that I wouldn't have wasted my time if the interview process had more-accurately reflected the actual work I ended up doing. [1] I think I had a particularly bad experience at Apple, I think other people working there have enjoyed it substantially more than I did. I think it's highly dependent on the team you're on.
- lowbloodsugar 5y agoThere are certainly individuals who refuse to learn how to do whiteboard problems on principle, and if they are having trouble finding a job, I'm fine with that. They'll probably be a pain in the ass to work with. However, my concern with whiteboard problems is that there are plenty of people who are really good, but get terrified in a whiteboard situation. And some of the absolute smartest people aren't able to think quickly. That is to say, for most questions, everyone else will get the answer first, but for the hardest questions, nobody else will get the answer at all.
- geebee 5y agoIf only it were like the SATs. With the SATs, the questions are eventually published, and you get a score report indicating exactly what you missed and why, along with a percentile breakdown. Google's interview exams are graded in secret, and you have to sign a non-disclosure to take the exam. I suppose scores for my interview exam are stored in some database somewhere internally at google, along with photographs of the whiteboard at the end of my various 45 minute sessions and notes, but I'm not allowed to know what they are (they're secret). I'm ok with google doing these interview exams (and fully embrace that it isn't up to me). But I do think that a certain bill of rights between examinee and examiner slowly evolved over the years - one of which is that the people who took the test should get some feedback on how or why they failed or passed, along with a score. Instead, due in part to fear of lawsuits, you get very vague feedback from a recruiter. Mine was: analyzed the problem well, but didn't make sufficient progress on the coding section in the time allotted. I have no idea if this is true, someone being nice, how much more progress I would have needed to make... I no longer participate in exams under these conditions, but I'm just one person with zero clout, and with $300k on the line, no, I'm not even slightly surprised that many people will do so.
- brundolf 5y agoI always find it strange the way people talk about the importance of Leetcode on here. I've been in the industry 7.5 years and I've never used or been asked to use leetcode or really any site like it. I've gotten the CS questions in interviews and some coding problems that are perhaps leetcode-like; but the latter are usually not super intense, either in difficulty or in grading harshness. My solutions never had to be perfect, they just wanted to watch me problem-solve. And most of the companies I've worked for would be called "trendy"; we're not talking about stodgy enterprise-type orgs. I don't get it. Is it because I'm not pursuing FAANG? Is it because I'm in Austin instead of SF?
- dqpb 5y ago> anybody who can game the leetcode exam The best CS class I ever took made all previous exams available to us. They also assured us that our exams would only include questions that have appeared before. The only way to game that was to learn everything. Leetcode exams, especially at places like Google, are effectively the same thing. This is good because it levels the playing field. Anyone motivated enough to learn the material can break into the career.