59 ms·
Ask HN: What to do about ‘Good at programming Bad at Leetcode’
Over the past few years I've met people who are really good programmers when it comes to putting together a full back end system , creating a very nice front end or creating any kind of app for that matter.
Many of these people are fresh out of college and the ‘industry’ puts them through leetcode/hackerrank style rounds that are needlessly hard. I’ve seen the kind of questions these rounds have and quite frankly, if I graduated this year, there’s no way I’m going to get a job.
Ever since 'Cracking the coding interview' was released, every company's interview process has become like Google's and Google didn't have a particularly great interview process to start with.[0][1]
Now, there are several GitHub repositories that prescribe 3-4 month grinds on leetcode questions to "crack" the interview. And people do go through this grind.
The people who do manage to crack these rounds are not necessarily good at programming either because the time they spent doing competitive programming stuff should have been spent learning to build actual things.
The no-whiteboard companies are very few, hardly ever seem to have openings and not hiring junior engineers.
What would be your advice be to fresh college graduates, or anybody for that matter, who are good at programming but not at leetcode? Surely there must be a way to demonstrate their understanding of algorithms without having to spend 3-4 months memorising riddles
[0] homebrew creator.. https://mobile.twitter.com/mxcl/status/608682016205344768?lang=en
[1] Zed Shaw gets offered a sys admin job
https://news.ycombinator.com/item?id=93984
- Aeolun 4y ago> The no-whiteboard companies are very few, hardly ever seem to have openings and not hiring junior engineers. I think no-whiteboard companies correlate pretty heavily with ‘good place to work’, ergo, they’re not looking for people as often as revolving door companies.
- bovermyer 4y agoWork at older, non-tech companies that have tech departments. Almost every single one of my jobs has matched this pattern, and none of them included a coding exercise as part of the interview process. Silicon Valley and its satellites seem to disproportionately favor code interviews compared to the rest of the US market, for some ungodly reason.
- dottedmag 4y agoDo they pay comparable money?
- anyfoo 4y agoYou can't have your cake and eat it, too. If you want to get paid as a developer who has to design algorithms as part of their job, you should know how to design algorithms. Doesn't mean that pay grade is fully correlated with skill, of course. There are other industries that pay more and don't require anything like that.
- vmception 4y ago> You can't have your cake and eat it, too. But the thing is... you can Most of us are not designing algorithms, most of the time, or any of the time Many engineers are just filling seats in places that are just in the business of sucking up talent from the market instead of having a bunch of entreprenuers running around Rest and vest
- bovermyer 4y agoSometimes. Particularly in the financial industry. However, something to note is that while money is important, it's not the most important thing in life. Or it shouldn't be, anyway.
- vdnkh 4y ago> Silicon Valley and its satellites seem to disproportionately favor code interviews compared to the rest of the US market, for some ungodly reason. I work at a well known SV tech company with about 3k ppl and we got over 50,000 job applications last year. Code interviews suck, but they're a scalable way to assess skill with minimal bias.
- postalrat 4y agoThere could be an argument made that most code interviews have a bias twords younger less experienced developers. They are the ones that take the time and study these questions. Years of experience probably won't help since the questions don't represent day to day problems most developers are solving.
- taurath 4y agoLet’s not forget the emotional element of these interviews where you’re being asked questions that mean very little about whether you can perform in the role. but many pretend that they are. For me the day long “technical” interview loop is a flashback to gradeshool hell. It tests my anxiety levels at least 5x more than my skillset. It’s a common thought among my circles that interviewing is the hardest part of being a software engineer - once you’re in somewhere it’s a lot easier. There needs to be something better.
- mikymoothrowa 4y ago> It’s a common thought among my circles that interviewing is the hardest part of being a software engineer - once you’re in somewhere it’s a lot easier I’ve heard a similar sentiment from my circles too. But lately I’ve also met people for whom it’s the exact opposite: they can clear the first round of the interview and they fail in the subsequent design rounds (which in my opinion are a lot less challenging) I’ve also met people who manage to get hired but are soon overwhelmed with the real work that they have to do and some even get pip’d
- comprev 4y agoIt's often the hardest part because many people think they can hit the ground running after following a Udemy programming course. Engineers are expensive to start with and inexperienced/over-confident engineers even more so due to the potential damage on the product. Tough interview stages like leetcode are a simple method HR can employ to establish a baseline competence. Personally I have zero interest in grinding for months solving riddles and when interviewing I always check what the stages involved are. On numerous occasions leetcode has been dropped upon request - no harm in asking!
- dchapp 4y ago| It tests my anxiety levels at least 5x more than my skillset. I'm not so convinced that these are two distinct things. I want coworkers who can maintain their level of skill under extremely hostile, stressful conditions. I'm not going impose those conditions on them, but I can't necessarily control the myriad third parties or circumstances that might.
- nwiswell 4y agoThe question answers itself, doesn't it? If you care primarily about your salary, become good at leetcode. If you don't, join a startup.
- bovermyer 4y agoMy salary is very good. I've never joined a company that does leetcode interviews. Only two of the companies I've worked for have been startups.
- nwiswell 4y agoVery good compared to Google and Facebook, or is that a subjective statement? But to be honest, your answer is not likely to change my opinion. For the vast majority of new grads leetcode is the obvious recommendation to maximize income. People grind for 3-4 months because it actually works, that's the reality.
- bovermyer 4y agoVery good in that it puts me in the top 10% in terms of earning potential on the planet. You have a different target employer than I do, and that's fine. I optimize for a different set of requirements.
- deleted 4y ago[deleted]
- nwiswell 4y agoSounds a lot like you actually are one of the many individuals who do not optimize for salary. Maybe OP is, too. If he isn't, I think my suggestion is appropriate.
- Ekaros 4y agoI wonder if that itself is certain type of filter. For people who are ready to spend lot of unpaid hours for job. Might this also expand to their work?
- itake 4y agoJoin a startup and move into engineering management asap. If you can hit director level, they stop asking leetcode questions. But if the goal is to eventually get into a Big Tech company, they may down level a startup director to be a line manager (which may still require leetcode).
- mikymoothrowa 4y agoAll these people I have in mind are fresh out of college, self taught probably and aren’t old enough to be EM
- itake 4y agoThis would be a 5-8 year plan. Communicating with your manager early that this is a career goal will help set them up for success in that path.
- anyfoo 4y agoDepends entirely on the startup I guess? And, I mean, I could found a company right now and call myself "CEO" and my friend from school who's a brilliant actor with no computer skills "director of IT", that does not say much.
- itake 4y agoExperience depends on how many humans are under you. If you're a CEO with 0 full time directs, you would have a difficult time moving into an EM role.
- anyfoo 4y agoThat’s my point, except stronger, because number of people under you is not sufficient. If you’ve never written a line of assembly, you will have problems managing a compiler backend team for example.
- tlextrait 4y agoPlease let me know what startup that is so I avoid it at all costs.
- glouwbug 4y agoI wrote my own dynamic garbage collected programming language from scratch just to solve leetcode to prep myself for interviews. I still don’t feel ready. If you’re curious: https://www.github.com/glouw/rr https://www.github.com/glouw/rr
- pcthrowaway 4y agoWhy did you think writing a programming language was necessary to Leetcode? I applaud the effort, I'm just curious why you say you wrote it "just to solve leetcode", when I'd imagine the skills for creating a programming language have limited overlap with Leetcoding.
- glouwbug 4y agoLikely because one would “applaud the effort”. If I can’t prove to the interviewer that I’m capable of going beyond leetcode, by building my own language to solve the same problem, then I might as well memorize a thousand solutions to cheat my way into FAANG. The latter will guarantee entrance, but I can’t stand the memorization process. I’m a professional, and like an undergrad or grad, I shouldn’t have to memorize homework problems to pass exams
- the_only_law 4y ago> when I'd imagine the skills for creating a programming language have limited overlap with Leetcoding. FWIW golfing languages are a thing, where a language is designed specifically for code golfing type problems and usually optimizing for a tiny core language and small source files.
- ushakov 4y agoi have about 1000 stars collectively on my public GitHub repos and recruiters still ask me to do "coding interviews" i take this as an insult and reject instantly no matter how much money and stock you offer, i'm not gonna bend my back over to prove anything to you (that's what resume and GitHub are for, fool) luckily, i have saved enough money to not care about this shit
- throwaway1777 4y agoI disagree with this take to an extent. Take it to the other extreme and you get folks who can’t even solve fizzbuzz. So some coding bar is good. Leetcode is a very learnable skill, and I would argue any decent programmer can learn it well enough to pass an interview. I for years thought I wasn’t good at it, then I actually practiced and I got job offers at google and Facebook. I have also optimized code quite a few times using algorithm skills I picked up practicing for interviews so it’s not totally a waste. There is a limit though, and some companies are pushing it with absurd questions that you couldn’t reasonably solve unless you had seen it before. In summary, algorithms are useful and learnable, but some companies take it too far.
- mikymoothrowa 4y ago> algorithms are useful and learnable, but some companies take it too far. This is my take too. So I don’t see where the disagreement lies. Except it’s not just some companies doing it. All companies paying over a certain threshold seem to be taking this to ridiculous levels. And please do share your ideas for what people should do or what finally convinced you that you weren’t bad at this
- anyfoo 4y ago> All companies paying over a certain threshold seem to be taking this to ridiculous levels. They can afford it. And assuming they are a tech company, they need that in key roles. You cannot write things that scale without solid knowledge and intuition in designing and analyzing algorithms, something that can be learned and furthered through experience. Now of course it's true that not every job in a larger tech company is like that, so there would be some room to adjust the interview based on the exact role. And there actually is. But overall, if you have a massive amount of people applying every week, why take chances, why not take someone from the pool who can demonstrate the skill and allow for some horizontal movement within the company, into a tech-heavier team? > And please do share your ideas for what people should do or what finally convinced you that you weren’t bad at this For me, back then, it was something that was fun for me. Part of why I got into computer science in the first place. I would be totally lying if I said I didn't study for the most relevant of my interviews, beyond what I would have done without them. But I distinctly remember for example freshing up some graph algorithm skills not by doing leetcode examples (I don't think "leetcode" was already a thing back then), but by arbitrarily taking the Debian package database and do fun self-made exercises like: Let's find the largest strongly connected component in the debian package library, i.e. the largest set of packages where installing one will always install all of the others.
- paradite 4y agoIf you can leetcode, there's decent chance you can program other things well. If you can't leetcode, there's decent chance you can't program other things as well. It's just a simple filter with the usual caveats of false positives and false negatives.
- rosmax_1337 4y agoJust practice it. It is a skill in itself just like anything else. It is true that it doesn't actually measure your real skills, but just like an IQ test can be corollary with lots of other mental faculties, leetcode skill can be corollary to programming skills. I highly doubt that we are talking 3-4 months of memorising riddles. There are a few recurring concepts that you should memorize, sure. But after that, if you have the programming and logical thinking skills you claim to have, you should be able to think on the spot for the rest of the leetcode question.
- bmitc 4y agoI’d say just keep on keeping on. I personally have and will never work at a place that does leetcode challenges during the hiring process. I wouldn’t worry about it. It’s a self-filtering process for places you don’t want to work anyway.
- whateveracct 4y agoBecome a Haskeller :)
- eatonphil 4y agoYou don't need to completely avoid SV-style companies as some people recommend. Check out: https://github.com/poteto/hiring-without-whiteboards https://github.com/poteto/hiring-without-whiteboards.
- eatoncargocult 4y ago
- occupant 4y agoI like the idea of this list but in practice there seems to be a lot of 'hiring without witheboards *if you happen to interview with the same team that I did and if the hiring manager for that team hasn't moved on since I interviewed there 4 years ago.'
- duped 4y agoGet good at leetcode because it's not that hard and the best way to make tons of money as a young person.
- mkl95 4y agoI couldn't care less about leetcode, I literally have done less than 10 leetcode exercises in my life. I have been getting hefty pay bumps every 1-2 years since I graduated, and there are no signs that curve is flattening. FOSS / side projects and soft skills seem to be pretty underrated by most developers.
- take_it_not 4y agoI’m in similar situation… it’s been two years since I graduated from college and I have done literally less than 10 leetcode problems so far… but I do spend a lot of time on my hobby projects and it served me right for getting jobs as a mobile engineer in some good startups.
- ctvo 4y agoHow do you feel about assessments in other professions? For example, the bar exam for lawyers? X Engineering Certification for the specific fields? Even networking and security folks take certification and exams as a means of attesting proficiency. Are these things accurate? Is there a better system? No idea. Software engineering's processes are more adhoc, but can be categorized similarly. We're looking to answer the same question: Is this person competent? Resumes / CVs often aren't sufficient for the examples above. We do the dance when we swap jobs, other professions do the dance as their licenses / certifications expire periodically. I'm sure there's an engineer somewhere that struggles with anxiety when attempting their Engineer in Training [1] certification too. In short, buck up. 1 - https://en.wikipedia.org/wiki/Engineer_in_Training https://en.wikipedia.org/wiki/Engineer_in_Training
- lolinder 4y ago> We do the dance when we swap jobs, other professions do the dance as their licenses / certifications expire periodically. The huge advantage to the latter is that it decouples the license exam from changing jobs. This helps for two reasons: First, it means that the friction of the recertification doesn't coincide with the friction of switching jobs. It's a lot harder to leave a bad job when you know you'll need to review for the "recertification" for a month before you can start interviewing. Second, in these other fields your employer has a vested interest in keeping you certified, because you can't keep working if you aren't. This should mean that they're incentivized to help with the process, rather than it being something you have to take full responsibility for and do on your free time. In software, not only do your employer and coworkers not help you study for "recertification", you have to actively keep it a secret that you're grinding leetcode lest you tip them off that you're looking to switch jobs.
- ctvo 4y agoI'm not disputing that what we do as an industry can't be improved. I'm primarily against the idea that our profession is unique, and people should take us at face value when we claim expertise. Validation by employers is looked at as an undue burden. We have perks in this industry: For the most part no one cares about your education background and often not even your experience as long as you pass the interview. It's hard to have both those perks, and expect some of these hoops to disappear. Should the hoops be a take home assignment? White boarding? Pair programming? A new governing body that offers a license? Not sure, but something will exist, and your anxiety and need to prepare likely won't disappear.
- carabiner 4y agoGoogle dropped the college degree requirement but retained the leetcode interviews, so it must be working somewhat well for them. They have access to more data on this than any of us.
- lolinder 4y agoIt's important to emphasize the last part of your sentence: it must be working somewhat well for them. That doesn't mean everyone else should be asking these questions, because your ideal hires might be quite different from Google's.
- dekhn 4y agono, google's interview style didn't work for them. now they have the problem of having tons of junior leetcoders and need to hire a ton of technically savvy managers to ensure their efforts aren't wasted.
- salmonfamine 4y agoYou just have to practice. I used to be quite bad at it, but I've improved greatly. Here's what I recommend: start with a specific topic -- maybe HashMaps, Graph Problems, Dynamic Programming, Greedy Algorithms, whatever. Start with the easiest problem on Leetcode for that category and work your way up to a "Hard" problem in the same category. It helps build a mental "muscle" for that type of problem, and it will be easier to activate that "muscle memory" whenever you have to brush up on Leetcode again for your next round of interviews in the future.
- francisofascii 4y ago> The no-whiteboard companies are very few I would disagree. My guess is you are only going after top tier companies. It is okay to have a job with a company that is not a household name.
- mikymoothrowa 4y agoI’ve seen the no-whiteboard list. Almost none of them hire “outside their time zone”
- francisofascii 4y agoThe no-whiteboard list represents at best, a small sample of the total list of companies that don't require whiteboard interviews. Hanselman talked about dark matter developers, the unseen 99%. The same principle applies to companies. In other words, there are tons of jobs out there flying under the radar.
- mikymoothrowa 4y agoHow do I find them? Or how do these companies find me? I kid you not, I’ve received messages from 200+ companies over the past 3 months and all of them have the leetcode round as their first round.
- dekhn 4y agoWhen you say leetcode, are you talking about leetcode questions, or just algorithm/CS questions? I've been asked a wide range of interview questions from "what's a cache" (I answered "would you like to me to cut to the chase and implement lru cache in python?"), how many steps does it take ants on a stick to fall off (https://physics.montana.edu/avorontsov/teaching/problemoftheweek/documents/problem_Math004.pdf https://physics.montana.edu/avorontsov/teaching/problemofthe... the interviewer said "it's easy if you just think of them as virtual ants that can pass through each other"), "what's the average waiting time for a bus that comes every ten minutes" (interviewer could not answer some of my starting questions like, "what is the arrival distribution- every ten minutes, or is that just sort of an average, is it poissonian, are the buses interacting with each other, etc", "implement quicksort" (got this wrong the first time I interviewed at Google). When I interviewed at a company recently a junior employee administered a question straight out of leetcode, with the data inputs and outputs completely unchanged. I exited the interview and contacted the CEO directly to say that if that's how they interview senior staff, it's not the company for me (I wouldn't have complained if they'd changed the inputs/outputs or slightly modified the problem, or came up with their own interesting variant). Because we need some signal that a candidate can program and do something a little more complicated than fizzbuzz. The homebrew creator shouldn't have been hired at Google if that was his attitude. Also, homebrew sucks and many googlers try to avoid it if possible. My suggestion is to start with the easiest leetcode questions and memorize the answers and type out the code and run it with various inputs.
- mikymoothrowa 4y agoI am talking about the kind of questions you would get if you went to hackerrank right now and took an SDE interview with any random company. > homebrew sucks and many googlers try to avoid it if possible Huh? What do they use then? I wonder what makes a Google engineer with a MacBook different from any other engineer with a MacBook that only Googlers in particular are avoiding brew
- dekhn 4y agoI've done SDE interviews with random companies (and administered them), although normally they are called SWE in the bay area. Many of the questions in leetcode have a skill rating. The easy ones- I expect most programmers to be able to figure out in 30 minutes and type out an answer. The hard ones- those are for people (as you say) doing programming competitions, or who are doing CS research and have a lot of prior knowledge and skill, or for extreme coders operating at the 10X level. I think many people have moved to macports. In my experience, the Googlers mostly do dev in the cloud and don't depend on having custom software installed on their machines. Also I think the other big problem was that half of homebrew is broken any time you try to install something complicated.
- brhsagain 4y agoI know leetcode hate is a popular theme on this website but frankly I think it’s overblown. You can basically solve any leetcode easy or medium if you understand like ten basic concepts (that you should know anyway) and then spend maybe a week reading solutions for the more trick questions. Leetcode hards require more memorization, but honestly, if we’re going to talk about pointless studying take a look sometime at what med school and law school students have to do. In perspective, is 3-4 months of studying to get a job really that big of a problem? I spent longer than that studying for the SATs.
- lolinder 4y agoI think the hate isn't for the 3-4 months of studying to get your first job, it's the sense that you'll need at least 1-2 months of studying to get every subsequent job (since you won't be touching leetcode-like problems in the course of your actual job). That's not a big deal when you're young, single, and childless, but it's overwhelming if you don't have a lot of free time.
- anyfoo 4y ago> (since you won't be touching leetcode-like problems in the course of your actual job) That is not universally true.
- rot13xor 4y ago2 months of studying every 2 years for job switch is 8.3% overhead. Do leetcode jobs pay 8.3% more after-tax than non-leetcode jobs?
- cheeze 4y agoUh, generally yeah.
- colinmhayes 4y agoProbably more like 100% more tbh.
- AndrewStephens 4y agoI do a lot of interviewing and have never liked the Leetcode-style interviews favored by some of the big companies. I feel like they favor a certain type of person who can memorize a bunch of solutions where they should be looking at general problem solving and flexibility. That said, some coding in an interview is pretty much a requirement for any sort of programmer job. If you ever start interviewing candidates yourself you will see why - a non-zero percentage of applicants are very poor programmers, even those that claim years of experience.
- ushakov 4y agowhat if you have code that is available publicly? doesn't that prove you have experience?
- deleted 4y ago[deleted]
- AnimalMuppet 4y ago> Ever since 'Cracking the coding interview' was released, every company's interview process has become like Google's and Google didn't have a particularly great interview process to start with. > The no-whiteboard companies are very few, hardly ever seem to have openings and not hiring junior engineers. Both those statements are false. There are plenty of places, both small and large, that don't do leetcode interviews. There are places that don't do whiteboard interviews at all; there are far more that do have you go to a whiteboard but don't have you do leetcode there (my own company is such a place). Personally, I don't grind leetcode at all. I know what I know. If a company wants that, fine; if they don't, I'll work somewhere else. But I am far from junior. For a junior programmer, it may be harder to get the first job, and leetcode may open some doors. But the absence of leetcode doesn't close all doors - far from it. What we care about is, can you code at all. We give a problem that is a step above FizzBuzz, but not all that far above it. Can you write code that does something like that? Can you think through the problem? It's not a "you have to find the trick" problem at all. We don't care about whether people can find tricks. But can you code at all? We aren't alone.
- linuxorbust 4y agoI'm a senior sysadmin/devops guy. I'm not a programmer per se, but I can and do write a fair amount of code, usually Bash, Python, some PowerShell. I had an interview not terribly long ago whereby the interviewer was asking me as a sysadmin if I could write and compile programs in C++, Python, and a few other languages. I told him that my role historically didn't include these things. I told him I write code to primarily automate things. He asked if I could write programs from scratch--systems stuff and turn out MSIs. I told him no. End of interview. I've never stated I'm a programmer, it doesn't appear on my resume as anything other than scripting for automation or writing small tools to do something weird or odd that the built-in tools cannot do. Anymore, it seems that companies want people to be able to do everything. Same guy asked me about how good I was at setting up a router and switches from scratch. Networking is voodoo. It always has been. Sysadmins typically are not networking guys. Networks need to be run by dedicated network admins. It's a full time job in and of itself. I miss the late 90s and early 2000s when things were more clear cut in terms of roles. Editing to say that so many people in "leadership" positions don't understand the nature of scripting. They conflate it with systems programming. The two are vastly different. I was taught in college to keep scripts as small as possible. This has been echoed by mentors over the years. One mentor who was a veritable scripting rock star who now works at Google told me that if it's over a couple of hundred lines, it needs to be in a systems language, even things like Python. Compiled programs, of course, always run faster. But that's not my world. I live and breathe making servers run, tuning, etc.
- corrral 4y agoMany—maybe the majority of—software development jobs aren't gated behind these kinds of problems. Or, if there are any, it's one or two from way on the easy end of the scale. But most of them merely pay very well, instead of ZOMGWTF well, and you'll be writing software in probably Java or C# to help out boring but profitable companies, rather than doing flashy startup change-the-world (LOL) stuff while burning VC dollars, or being in the advertising business.
- watwut 4y ago> What would be your advice be to fresh college graduates, or anybody for that matter, who are good at programming but not at leetcode? Surely there must be a way to demonstrate their understanding of algorithms without having to spend 3-4 months memorising riddles If leetcode is necessary for interviews in your city, train leetcode. DO NOT MEMORIZE. But, do simple exercises and work your way up to harder ones. It is learnable, but memorizing is just about the worst way of learning it. You don't have to burn yourself out either, go by pace easy for you. Not being good at leetcode is not some kind of helpless unfixable state.
- leetcrew 4y agothere are a lot of things in the world that seem unfair or unreasonable. often it's because they are. complaining about it can be satisfying in the moment, and if enough people complain, it might eventually change. but reflecting on how unfair or unreasonable something is does not help an individual achieve their goals. as a fresh college grad, you have to decide whether you want to work at a company that does leetcode interviews. if yes, you have to practice them until you can pass the interview. if no, there are plenty of companies that don't do this style of interview. they just don't get discussed on hacker news as often. unless you are an incredibly well known engineer, there is no third way.
- ldjkfkdsjnv 4y agoI'm at a FAANG right now. Havent interviewed in years, lead projects on one of the most critical services at my company. Just interviewed at a startup, they asked a design question, and immediately nixed me for not having the correct "design process". Meaning requirements gathering, scoping, etc. 20 minutes in the interviewing engineer basically checked out. My resume is very good. Its a little scary, because this experience is actually common. No one trusts anything, and nothing you have done is worth anything, unless you are well known. You need to study whatever textbook answer they are looking for.
- ushakov 4y agoeven if you're well-known you can be rejected the author of brew (popular macOS package manager) got rejected by Google
- erik_seaberg 4y agoI wouldn’t want to be on call for Homebrew. In the author’s words “It doesn’t do dependency management properly. It doesn’t handle edge case behavior well. It isn’t well tested.”
- tlextrait 4y agoSounds like they care more about process. Process-centric companies tend to not do well in the long run.
- bogomipz 4y agoI'm curious if you would share the design question. I have seen these very contrived "study guides" with questions like "how to design drop box", "how to design FB newsfeed, etc" and they all seem to just be lists for rote memorization. Was that what your experience was? You didn't satisfy the check list that the interview was looking for?
- ldjkfkdsjnv 4y agoThey wanted an answer you would get from one of those guides, not a discussion on technical design
- naniwaduni 4y agoThe flip side is that a DS&A toy problem grind is an actionable item that approximately anyone who can already bear the cost of their own training can work on, with legible indicators of their progress. I know it's popular to throw shade on interviewing for "wasting" candidates' time on this instead of "learning to build actual things", but even if DS&A toy problems aren't the best-correlated with actual work performance, the fact is that (a) they're well-enough correlated, by the standards of scalable interview assessments (b) contrary to popular belief around these parts, presenting "actual things" is much easier to bullshit your way through than a few hours of talking through toy problems (c) every job opening gets a deluge of bullshitters.
- mikymoothrowa 4y agoYou do realise that these leetcode rounds are virtual and there are “agencies” on the internet that would take this test up for you? When I interview people, I have to make sure that the person actually wrote the code by asking some arbitrary questions about it in a subsequent rounds We’ve had cases where people committing this fraud did manage to slip through the cracks but thankfully here it’s very easy to fire people once we found out.
- phibz 4y agoAs an engineer who learned programming prior to the proliferation of coding tests, my struggle has been with my own ego. "How dare they use some simple test to judge me and ignore my body of work." This has gotten me a few times. Especially when I wasn't expecting a coding test. Adjusting my attitude and getting more okay with the idea that some companies will want to screen with this sort of thing, has helped. I also felt more empowered by recognizing that I can always decline an unreasonabpe test and that doesn't always mean I will be excluded from consideration. Like most things in life, it's easier if you practice. Focus on good communication skills, and sell yourself the best way you can.
- foogazi 4y ago> What would be your advice be to fresh college graduates, or anybody for that matter, who are good at programming but not at leetcode? Were all of your college classes relevant to your career ? Get better at leetcode - it’s a learned skill, if you can pass college CS you can pass leetcode
- barefeg 4y agoIsn’t it ironic that you’re ok with getting a job after graduating from a multiple-year college program but not after a “3-4 month grind on leetcode questions”? If the industry prefers experience and the ability to solve algorithmic riddles, would it not make more sense if college gave you this?
- vippy 4y agoThe problem is that actual work experience doesn't give you this. The more experience you gain shipping working software, especially in a senior capacity, the less exposure you're likely to have to the skills tested for in the algorithm-based whiteboard interview. We don't write algorithms often, but based on this style of interview, you'd assume that's what we do primarily, or even mostly. Some of my time is spent putting together the solution to a business user's request. The rest is spent reading other peoples' code to figure out where I can safely add the new feature, writing the feature (which rarely involves algorithms), writing automated tests for the feature, and babysitting my PR to production. Asking a candidate to solve a gnarly merge conflict is more relevant than asking them to produce an algorithm on a whiteboard.
- babyshake 4y agoI do find that dynamic programming can sometimes be tricky, especially when I am being watched by a stranger and I don't feel relaxed. One thing I've learned is to insist in an interview that I may need a couple of minutes after shown a question to quietly think and jot down private notes without explaining out loud what I am thinking about. Once I have figured out how to design the solution I can explain my line of thinking and then narrate what I am doing as I am writing out the code. If they think this isn't OK even with me understanding this need and communicating about it upfront, then it's probably not a good fit anyways.
- sam_lowry_ 4y agoDon't know if I am a good enough programmer, but I am clearly bad at leetcode too. After so many years programming, that is, solving puzzles at work, I really hate doing it in my spare time, so leetcode makes me instantly mad. I even avoid board games for the same reason. OTOH, I enjoy cooking, construction work... manual labor, that is.
- tlextrait 4y agoEveryone is bad at everything they haven't tried to do. You can be good at anything. I can't ride a bicycle but if I wanted, I could be good. Just gotta go and do it. Unfortunately doing things is work. Solving abstract problems is the main thing engineers do, if you're not doing that then you're not really engineering you're just copy pasting text.
- sam_lowry_ 4y agoThis is the thing. I've been solving abstract problems for a living well over 20 years by now. Can I have some time off? I know I can solve many leetcode problems (fizzbuzz? roman to arab numerals?) given some time, but I hate doing it. As software developers, we constantly have to proof ourselves. At dailies, in leetcode. This is fun when you are 25, much less so when you are 50.
- jupp0r 4y agoYou make the assumption that Google cares about their false negative rate when ranking candidates, ie not hiring somebody they should have hired. The process is optimized for minimizing the false positive rate, ie hiring somebody they shouldn't have hired.
- TheOtherHobbes 4y agoif that's the case, it doesn't explain why Google's software and product quality has been declining steadily.
- tmp_anon_22 4y agoUser opinion is one of many success metrics that Google tracks but it isn't the most important one. Up until the recent recession their stock performance indicated that their product quality has been doing just fine.
- yakak 4y agoThat's not a valid metric. Every effective monopoly has a climbing stock price while it's product quality is declining, this is why they have such a terrible time when there's finally a market upset, they can have decades of bad practices to overcome just to stop their descent.
- mikymoothrowa 4y agoCome on! Showing 4 more ads per video on YouTube would boost their stock price while making me hate YouTube PMs even more
- kansface 4y ago> if that's the case, it doesn't explain why Google's software and product quality has been declining steadily. Why do you assume that poor products are poor products chiefly because of code?
- xmprt 4y ago
- karaterobot 4y agoAt my old company, we never did take home assignments or whiteboard interviews. We just sat candidates down and pair programmed with them for a couple hours on whatever we were working on at the time. We paid them the same hourly rate we were making, (but didn't charge the clients for it). If the candidate obviously didn't know what they were doing, we ended it early. Usually you knew within 15 minutes. One candidate hated the interview process, and walked out. One candidate, likely a future business leader, argued vociferously for a higher hourly rate during the interview, and later with the founder. But I would describe our success rate for finding good programmers who were easy to work with as "extremely high", and our rate for false positives as "I can't remember ever having one in about 4 years of working there". The overhead for the engineering team to run these was not zero, and not everybody enjoyed doing it. But some people did, so we had them do it more often. I have no idea why this isn't a more common practice, I would recommend it to anybody.
- _448 4y agoThis! > I have no idea why this isn't a more common practice My maths teacher once said in class during lecture, "Kids, when you venture into the outside world, you will realise 'common-sense is not a common thing!'".
- activitypea 4y agoCan you go a bit more in depth about the pairing session? Most companies I've worked at, even if the person coming in was familiar all technologies we were using, I can't imagine them grokking nor just "skipping over" the datamodel and system architecture/design. All non-trivial projects I've worked on had a "bad" codebase as a result of deadlines, pivots and misunderstandings. The code is always steadily improving, but never good enough that someone can just waltz in and get to hacking on it.
- kornork 4y agoI can't answer for the parent, but I've done similar style interviews. Because the candidate is not familiar with your codebase, you must be the expert. Your job is to let them drive as much as possible, while you "unstick" them when they trip over what they can't possibly know. It is a collaboration, which is part of what makes this a good interview style IMO. Sometimes a candidate will offer an otherwise good solution, but it won't work well within your codebase -- in this case you explain why, and then you iterate.
- bluGill 4y agoYou are not expected to get them all. We want to see how you think and that you can think at all. There are a lot of people out there who claim they can write code, but can't even write "hello world" in the language of their choice. I'm not interested in your ability to answer trick questions, and we have a standard library that has optimized implementations of the basic algorithms everyone uses. I need to know you can write at least some code though - in some cases we have let some go with no affect on the teams productivity, you need to be better than those people. We have so far had one person get all the answers in the allotted time, without any help, and he is working on his second PHD.
- Dudeman112 4y ago>We want to see how you think Should publish a paper and instantly get yourself a bunch of awards then. People love to spout that. It's nonsense. Psychologists with way more resources and time in their hand have consistently failed at even the most basic levels of achieving that. And then some dudes hiring for a company say they can do it in an hour with some silly tasks and a little talk.
- timr 4y agoThat might be true, for you. But I've interviewed many times across the industry -- including most of the big names -- and I'm here to tell you that if you can't perfectly solve a half-dozen leetcode medium questions on a whiteboard while talking and tap-dancing backwards, you aren't going to get an offer. I've been writing code since I was in elementary school. I've shipped multiple products, including some I mostly/entirely wrote myself. If it were as simple as "proving I can code", I'd have no problem getting offers at every single place I interview. I think you're right that reasonable interviewers behave as you describe. But we're so far down the rabbit hole now that reasonable interviewers are few and far between, and most people are cargo-culting the interview process they themselves have experienced.
- bluGill 4y agoI wouldn't be surprised if you were right.
- 4y ago
- TameAntelope 4y agoPractically speaking? Get better at leetcode. It's a skill, you can train, you can improve. Lots of options for improving, but I suggest if you're feeling stuck to pay for a coach. Also, stop focusing on FAANG type companies. There are tens, if not hundreds, of thousands of jobs, and if you're a new grad you're as mobile as you'll ever be. There are too many jobs to care about specific hiring trends; there'll be a job for you out there somewhere.
- daenz 4y agoStart your own company
- lacker 4y agoMy advice is to get good at leetcode "the right way". Don't memorize problems. Instead, learn the underlying algorithms. Learn heapsort, quicksort, how to find medians, how to derandomize and calculate the running time of the quicksort/median algorithms. Learn how hash tables, red-black trees, and b trees work. Learn why vectors allow O(1) append but only if you amortize the analysis. Learn depth-first and breadth-first search, learn A*, learn all-pairs-shortest-paths. Learn enough dynamic programming that you could implement a memoize decorator. All of this is valuable knowledge. It'll pay off to learn this in the long run. Yeah, interviews overrate its importance. It's good to learn it anyway. If you learn that stuff and you are good at the basics of practical programming like string and array manipulation, you'll be able to do well at interviews.
- spike021 4y agoI won't argue that being able to apply different patterns to problems is incredibly useful, but a lot of these are also fairly domain-specific. It really depends on what your typical work is like. I've worked on teams that dealt with messaging queues and associated backend systems. In those cases it was rare, if ever needed at all, to see or use any kind of graph searching algorithms. Sometimes some forms of memoization were helpful when it came to system issues that required a meaningful but efficient backfilling strategy. But they were almost never in the same form that typical DP interview problems are. I would argue many of these patterns can be helpful to test candidates with but only depending on what roles they're interviewing for. I've seen more "trivial" problems that test for the same kinds of answers that interviewers usually want anyway. Usually the messaging is something like "we want to test that you can write code. We want to test that you can iterate over and consume/aggregate some data. We want to test that you can evaluate this codes performance." You can do all those things with simpler classes of problems than some of the brain teasers I've seen. And I don't mean the usual stuff like how many tennis balls fit in a school bus, but leetcode style, overly complex problems.
- 62951413 4y agoAs much as I agree with your advice in general my interviewing experience is completely the opposite. To begin with reading algo books/being aware of the topics you mentioned doesn't necessarily translate to solving leetcode _puzzles_. The last time they simply asked me to implement quicksort was almost ten years ago. What is even worse, usually you have about 30 minutes to solve a puzzle. You won't have time to think even if you are capable of thinking under such circumstances. Where I completely disagree with the original statement is that leetcoding hurts mostly experienced developers. What else are fresh graduates supposed to know well if not algorithms and data structures? Experienced developers are from generations when few people majored in CS and spent formative years interviewing long before anyone heard about leetcode. And they have too much experience with building real software to tolerate artificial puzzles.
- Shindi 4y agoPeople who say they are bad at leetcode sound like the people who say they are bad at math. Sure, right now you might be worse at learning math than someone else, but there are strategies to learning math better If you are memorizing leetcode you are doing it wrong. If you are doing more than 60-80 problems, and not applying to the most competitive companies, you are doing it wrong. There is a strategy to learning how to study leetcode, and yes, studying leetcode is hard. But you need to make sure you are not blindly memorizing solutions or else you're doing it wrong and wasting time. Let's say you are doing an array problem and there is some trick that is necessary for the problem that you didn't know. When you get the problem wrong, learn what the trick is, but don't "memorize" it. Learn it and learn how it works. Then think deeply on what other problems might use this trick. Does it involve a loop that goes until `i <= someVar.length` ? What happens if you change the code to < instead of <= ? What happens if some other edge case happens? I've seen this happen with binary search. Someone learns the algorithm by finding the algorithm online in their language of choice, but doesn't spent time fiddling with the code or thinking about edge cases.
- andybak 4y agoMy feeling is that people who understand maintainability or other architectural concerns are worth more than people who master algorithmic underpinnings. I thought the point of this discussion was how to change the industry emphasis rather than how to get good at it.
- myth_drannon 4y agoHow can you test someone who can write a well maintained code? Architectural Concerns are tested during System Design round.
- mattlondon 4y agoCandidates who care about readable solutions, provide comments, add unit tests, think about integration testing, data validation, bootstrapping/deployment etc are the ones who are at least thinking about maintenance. Incomprehensible one-liner whizz-bang solutions in perl are great and all, but no one wants to work with someone writing code like that.
- drewcoo 4y agoJust keep in mind that the interview is two-way. They're judging you on your 1337-coding skillz. It's ok to judge them on their poor judgement. And seek employment elsewhere. You can even be more helpful than most employers are to job candidates. Tell them that's why you're not interested. Maybe they'll learn from it. Maybe.
- the_only_law 4y ago> It's ok to judge them on their poor judgement. And seek employment elsewhere. Yeah, somehow I feel the consequences are only going to end up on one side
- dsr_ 4y agoAssuming that you have found a real phenomenon where people who are ranked poorly on this proxy (but presumably high in some other metric) are undervalued, then you should start a company that identifies these people and first-order: employs them to build something at a lower cost than the market would expect second-order: convince non-FAANGy companies that you can identify employees who are lower-cost and higher-value, thus starting an evaluation and matching business third-order: write a business book about evaluating people better than leetcode-like methods
- deleted 4y ago[deleted]
- Clubber 4y agoThis is probably going to be an extremely unpopular opinion, but it's based off my experiences. SV-tech culture was attractive in the mid-late 90s when new things were actually being built and innovated, but today it seems many are just rent seeking near-monopolists that exist to sell ads. Working for a near-monopolistic advertiser with stupid hiring practices just isn't something I would want to do, or dedicate my life's work to. If you want to use your talents in a way to make humanity better in some small way, advertising isn't it. I would recommend going into another industry and company that values tech skills, but doesn't cargo cult like SV type companies do. Almost all the code you write will probably matter and be used by people. In my 20+ years of development, I've had a total of one project shelved, and that was due to an M&A. You have a pretty good chance of creating new products as well rather than just doing maintenance tasks (although you will do plenty of that too). Most SV type companies seem overcrowded and mostly out of ideas, at least significant ones. There are of course exceptions, but like I said, I see a lot of rent-seeking from the big boys. If you're just into it for the money, SV type companies are probably your best bet, at least for a couple of years until you're financially set. Also, it helps to have at least one big name on your resume. You can earn plenty of money in other industries too.
- pflenker 4y agoI think that as an industry, we are about to move past this. Companies slowly realize that these leetcode tests do not assess the skills they need. We currently lean towards simple coding tasks paired with extensive collaboration slash pair programming on close-to-real world scenarios to assess the skills we‘d like to see in a candidate.
- stopachka 4y agoI think learning to excel at algorithm interviews will make you a better engineer. It's not memorizing questions, it's learning to solve a variety of interesting problems you seldom get in your day today. You may think, if "I don't get those problems day to day, why learn to solve them?". This is similar to an airline pilot saying "Engines work well on my flights; why should I learn how to handle engine failures?" 2-3 months of devoted effort on algorithm interviews has given me some of the best ROI / time for engineering growth I've had in my career.
- ceejayoz 4y agoIt's more akin to expecting the pilot to know how to replace a wiring harness in the avionics bay; someone else handles it and they'll never need it in practice.
- Panzer04 4y agoI guess you just swear off ever doing an algorithms problem? This doesn’t seem comparable at all - there are feasible circumstances where you need to know this stuff.
- ceejayoz 4y ago> I guess you just swear off ever doing an algorithms problem? I swear off memorizing the answers to them. If I run into a problem that requires a leetcode-style solution, I'll find many available bits of information to help me solve it.
- deleted 4y ago[deleted]
- neoCrimeLabs 4y agoThe problem isn't leetcode so much as how it's interpreted. Goodhart's Law: “When a measure becomes a target, it ceases to be a good measure.” Leetcode questions are a useful measurement in the interview process What they are not is a useful goal to hire someone by.
- softcactus 4y agoFirstly, don't get discouraged just because the questions are hard. A lot of these concepts were cracked by dudes like Von Neumann who spent years trying to figure out stuff like graph theory and backtracking. Calculus seems hard at first but after a while derivatives seem trivial-- even though it took thousands of years of the greatest minds in math to arrive at the understanding of the Fundamental Theorem of Calculus. We all stand on the shoulders of giants. Second, it sucks but the only way to get better is to practice. I recommend Python since it's the most efficient least verbose option for Leetcode. There are also a lot of shortcuts for learning as efficiently as possible: Learn and internalize the 14 patterns: https://hackernoon.com/14-patterns-to-ace-any-coding-interview-question-c5bb3357f6ed https://hackernoon.com/14-patterns-to-ace-any-coding-intervi... Then practice with either the Blind 75, Neetcode 150, or the Sean Prashad leetcode list: https://seanprashad.com/leetcode-patterns/ https://seanprashad.com/leetcode-patterns/ There is a lot of overlap between these lists, and most of the problems are slightly more complex versions of a previous problem. You also need to be able to talk about your solution and explain why something is O(n). Talk out loud to yourself while you are coding, you'll feel like an idiot but it really is helpful. I know that it sucks but unfortunately this is the price to pay for the insanely high salaries for fresh grads in tech atm. On the plus side I think that Leetcode made me a better programmer in the sense that I became more intimate with the language I chose (Python) and am able to write code more quickly since I unconsciously internalized the syntax. Lastly when facing rejections, don't take things personally. Luck is a huge factor and if a tech company doesn't want to hire you it has nothing to do with your value as a human. I applied to hundreds of companies and went through about 10 on-sites just to receive one FAANG offer. Keep in mind that on forums like Blind or Reddit, or personal blogs, you are mostly going to be reading stories with high survivorship bias and embellishment. Everyone wants to brag about their six-figure offer from Google, fewer people are going to write about the excruciating toll that hiring practices took on their mental health.
- weatherlite 4y agoThanks! I've never knew there's good curated lists, this is super helpful
- Mageek 4y agoThe interview process is supposed to measure (or attempt) a whole bunch of aspects. Coding / technical skills, but also communication skills, reasoning, logical assessment, context / intuition, social interaction, decision making under uncertainty, systems thinking, testing, etc. No serious interview process is going to rely exclusively on leetcode questions to fully vet anyone. It requires a balance of many things. Furthermore, good interviewers are aware of these multiple dimensions, and are evaluating candidates on any many levels as possible. Yes, leetcode questions are a part of the process, and are often an early gate. However, one can perform “badly” but still score sufficiently well on the non-obvious metrics and make it through. Most interviewers don’t actually care if you have the standard libs memorized, and get that. You typically have a lot of leeway to demonstrate your knowledge, and staying open about what you’re thinking and doing goes a long way. If you have sway in how your company interviews, consider being clear with candidates on all the dimensions they are being eval’d on, maybe let candidates choose take home assignments, ask candidates about projects they have worked on, etc. as part of the process.
- nvdnadj92 4y agoLeetcode-style interviews disenfranchise different groups (parents, non collegiate education) from succeeding in the interview process. Like you mentioned, these assemssments are not an accurate proxy for development. I've detailed the various flaws of the Leetcode approach, compared Leetcode with common alternatives, and propose an alternate style of interview that is more accurate and fair here: https://www.naveed.dev/posts/senior-engineer-interviews-broken https://www.naveed.dev/posts/senior-engineer-interviews-brok... https://www.naveed.dev/posts/leetcode-alternatives-compared https://www.naveed.dev/posts/leetcode-alternatives-compared https://www.naveed.dev/posts/alternative-senior-engineer-interview-process https://www.naveed.dev/posts/alternative-senior-engineer-int...
- mattnewport 4y agoWhat kind of pre-screening would you combine with the on site programming challenge? To me this seems like much more of a time commitment and much more biased against certain types of candidates than a similarly scoped take home test. I've done a number of on site interviews in my career and they were typically not in my home city or even home country. They often involved flights and hotels plus time off work beyond the interview day for travel time. As a single guy at the time a small number of these was manageable but it seems like much more of an obstacle than a take home test for anyone with family or childcare commitments. You mentioned in your first article having interviewed with 30 companies over 4 months. That would obviously be impossible for anyone currently employed if they all involved a full day on site. Most full day on site leet code style interviews involve some pre screening so that only promising candidates go through the full on site. Would you pre screen with an online leet code style problem? It looks like these articles were written pre covid? How would you adapt the process to a more remote friendly world? Is there a variation of this that could be done remotely that wouldn't look a lot like a take home test with a tighter deadline?
- bradlys 4y agoMy advice? Same as ever. Suck it up. Do it - it's hardly the worst part of the job and not doing it will mean you make less money. You're very unlikely reaching $500k+/yr by avoiding LC compared to how trivial it is to reach once you accept it. If you think leetcode is the worst part of being in this workforce - you live one incredibly privileged life. Wait until you have to deal with toxic management that exists in virtually every company and in virtually every leadership position. Wait until you have to deal with people who have a personal vendetta against you because of prejudice and will block any achievements you can make at a company. Are you excited for stack ranking? It exists at nearly every company and if it doesn't explicitly - it happens mentally. Are you excited to see incredibly huge churn in your industry? Are you excited to see the best and brightest constantly shutdown due to favoritism (and you will likely not be in that in-group)? Are you excited to watch people over the years lose all their hope and become soulless corporate ghouls who become the shill LinkedIn promoters that they themselves condemned a few years previously? Are you excited to work 60+ hour weeks to get PIP'd because that's just the way it is? (It will happen) Are you excited to put nights and weekends in at startups to see a round where the execs lose no value but your stock sees 3x+ dilution and no increase in value? These are common problems at companies within SV. Leetcode is hardly a problem when you see how fucking terrible the rest is.
- depr 4y agoSo why are you in this industry?
- bradlys 4y agoMoney. Compared to other industries - it’s much easier to make $500k/yr or more. I’ve had jobs where I was at $1m+. This would never happen in other industries unless I had X prestigious university on my resume or was married to the boss’ daughter. I could’ve been a surgeon, a lawyer, etc. but most of those have even worse hours, more time in college (debt+non-earning-years), and tend to not favor my background. (Poor rural upbringing) I’m already an outcast in tech in SV - I’ve come from the smallest town, least educated, and poorest family of anyone I’ve met here under 35.
- vippy 4y agoI have no idea what to do except be OK enough at the skill to get jobs, meanwhile using social media to attack the practice. I hate these god damned things.
- magicloop 4y agoSV companies are heavily loaded up with engineers that passed leetcode style tests. Not everyone though, due to acquisitions - engineers get grandfathered in. Leetcode coders implicitly will bias to hire other leetcode coders. There will be non-SWE departments, Program Managers etc. who might be hired via the MBA-tribe. So in the end, you end up with a mix of skills (or a mix of stereotypes) in a typical SV company. I think if it were strictly just leetcoder types the company would be a disaster (but I have no data or examples - I am interested to hear about if other folks know examples). This model of operation feels kooky but it does work on various levels (but fails in some also e.g. as panglossian fantasies ). The overall hodgepodge results in SV dominance we see today in many sectors. Leetcode is self-fulfilling now. It's like a ticket on to the prestige and mega-bucks ride a lot of engineers desire. People pay for the ticket with 3-4 months study. Those that cannot make the time, say due to family circumstances, are actually part of the implicit unfair bias in the system. I think what works best is when Leetcode is part of the gauntlet but not the whole game. A genuinely good person, in terms of character, together with good programming skills is what I've seen as a company's best asset. An open ended technical focussed discussion on specifically what the engineer has done lifts the lid on that part of things.
- spamizbad 4y agoBeing good at leetcode just requires grinding out those silly problems until you become good at them. That's the sad reality. Unfortunately, there's limited carry-over from years of experience of Actually Building Things(tm) so it can be frustrating. The upside is you're not having to learn language constructs or syntax like all the newbies are. My advice is to just vote with your feet and not work for companies that leetcode interview.
- nomemory 4y agoI am not particularly good at competitive programming, but at some point I did invest quite some time into it. Contrary to my username I have a pretty decent memory and I can remember easily if I've solved something similar. At some point I've interviewed for a company who gave me four exercises to solve in an hour. Normally, it would've been impossible to solve them without previous knowledge. Funny part is that I knew the idea for all 4 and the only difficulty was to write things quick enough so I can finish everything in time. 57 minutes later, I was finishing all of them, to the surprise of the interviewers who were watching me coding. I had the all time best score for that company, and everyone thought of me I am some kind of genius, which was certainly not true, because I know my limits, and I am far from it. Nevertheless, everyone was a little disappointed by me in the next 6 months. I was quite junior, and had junior problems.
- PragmaticPulp 4y agoI haven't done whiteboard coding interviews for a long time, but this was a problem back when we did. We started by using generic coding problems that someone got from somewhere (probably a popular book or website). Occasionally someone would show up and basically recite the solution from memory. Having 4 different problems is usually an okay defense for this because you can spot when the candidate recites some answers from memory but then struggles through relatively easy questions they obviously haven't solved before. The fact that you had all 4 memorized defeated that heuristic, of course. The smart companies are careful to rotate their problems and customize them in ways that will trip up most recited answers. > I had the all time best score for that company, and everyone thought of me I am some kind of genius, which was certainly not true, because I know my limits, and I am far from it. > Nevertheless, everyone was a little disappointed by me in the next 6 months. I was quite junior, and had junior problems. I mentored college students and recent grads for a while. A lot of them had been convinced by the internet that they just needed to memorize enough LeetCode problems to squeak through a FAANG interview and then they could relax for a decade or too until early retirement. It was like all of the Reddit memes about CS careers collapsed into a single narrative. I spent a lot of time reminding them that high paying companies have high expectations and it's not as simple as collecting $300K/year to do nothing. Of course, they didn't really want to hear it from me.
- rglover 4y agoRealize that in a lot of companies most people are mediocre at best; nowhere near "leet." It's worth studying psychology to understand that many of the swords held over your head in interviews/scouting are plastic and held by insecure people. Doing so takes the pressure off and helps you to realize that there's a ton of opportunity out there if you want to get to that level. The truth, though, is to build stuff, practice, and don't stop. I've circumvented most of the gatekeeper stuff because I intentionally hustled freelance/contract work early on and got to a level where I had a portfolio of high-quality work (i.e., leave money on the table short-term to make big money easily long-term). Now if companies turn me down, they look like fools. Always worth asking: "how do I circumvent the hoops?" Also (via Derek Sivers): > “The standard pace is for chumps.” - Kimo Williams Feel free to email if you want an opportunity to practice/gain experience: ryan.glover@cheatcode.co.
- luxuryballs 4y agoIt’s my impression that just doing enough grinding to hopefully remember how to solve a specific problem is different from having enough experience to be have gained the aptitude to solve them without it feeling like a grind or cram session.
- confidantlake 4y agoI feel I must be living in an alternate world to everyone here. I studied leetcode for around 2 months then tried to get a FAANG job. I applied to every FAANG (plus about 10 others who had high comp on levels.fyi). Then netted me 2 tech phone screens, which I both failed. The way everyone talks I should have had 5 offers after 2 weeks of studying.
- 0x20cowboy 4y ago“The only winning move is not to play” My advice as someone who doesn’t accept these kinds of interviews on principal - and has repeatedly payed the price for my insolence - you have three choices: accept and do it, work around it, or something I don’t know about. I work around it. My life isn’t special, no one cares what I have to say, and no book will ever be written about me, but I get to build great software everyday and I am happy. In not so many words, you have to optimize for what you really want. - Do you just want to build software? - Do you want to have a lot of money? - Do you need access to a quantum computer? - Do you want to live your life learning new things, or focus only on one thing? - Maybe build your own business? - Do you want to buy and sell people like cattle? If you’ve got that right in your head, and you don’t want to play the game I’ve found the gigs outside of the valley/US to be more often about doing work than about status and position. It’s less about the “difficult hiring process as a badge of honour” BS, and more about building things. I mean, Ex-fannG people are out here too so you still run into it from time to time. So, TL;DR, maybe look at the world as an option instead of narrowing in on the typical valley/FANNG path.
- manuelabeledo 4y agoI know my personal experience may not apply here, as I've been in the industry for quite some time now, but this is my take: reject code assessments. There is nothing to be gained from them. Candidates waste time trying to solve problems that may never face in a real work environment. Companies end up hiring people who has prepared for the interview, not for the job. Even worse, some companies seem to have standardised the same useless process across many levels, and end up asking senior candidates to e.g. reverse a binary tree. Personally, never in ten years has a code assessment helped me choose the right candidate.
- jaredklewis 4y agoI feel your advice is more directed at employers than the OP. As a job candidate, refusing to participate in interviews that involve code assessments is going to severely limit your career, since the vast majority of companies make use of code assessments. I give lots of interviews. If someone refuses the assessment, I have to fail them. HR says we have a legal obligation to interview al candidates for a given permission with the same format and criteria for evaluation. I imagine most companies are the same. I think there definitely an opportunity for employers who can evaluate candidates without code assessments to get talent at bargain prices, but IMHO refuse code assessments is bad career advice.
- namecheapTA 4y agoYou should see the LeetStudying medstudents/residents do to make $200-350k. Compared to other ways of making it into upper tier of income groups, this has to be the easiest.
- master_yoda_1 4y agoI don't understand OP, so you have problem with leetcode, and you also have a problem with hire and fire culture (most of these companies don't ask leetcode) so what do you want free money? And how you decided just after meeting "people who are really good programmers"?
- bevacqua 4y agoInterview at startups like Ramp — we don't care about leetcoding at all. There's many others. https://ramp.com/careers https://ramp.com/careers or hit me up nico@ramp.com
- deleted 4y ago[deleted]
- andrewmcwatters 4y agoNever dismiss the possibility that your interviewer is bad. We don't challenge this enough in the industry. If your interviewer was interviewing a candidate who was a prolific software author who published works that had mass adoption, 9 out of 10 of them would be nonplussed by it, and it's so stupid.
- curiousllama 4y agoMy advice? Start memorizing the riddles. Consulting jobs require case interviews - they're pale imitations of actual projects that translate loosely at best. And every company uses them. Trading jobs ask probability questions - they're idealized versions of what traders do all day, requiring tangential (at best) skills like mental math and memorizing niche formulae. And (almost) every trading firm will ask them. Tech jobs ask leetcode questions - they're vaguely correlated with tech skills (you can't learn leetcode without learning to program, I guess?). And (nearly) every company asks them. All of these industries put up somewhat-arbitrary filters just to get a manageable signal, however imprecise, on the endless morass of new grads trying to break in. They ask them because they work: the pool of candidates who pass them are of a higher average quality than the pool who fail. They're biased, arbitrary, and often quite silly. And they've persisted for a half century. Get used to 'em.
- tsuujin 4y ago> Get used to 'em. No. I’ve spent the last year or so reinventing the hiring process at my tech company to expressly avoid algorithmic puzzles and leetcode nonsense, and I was able to do this because I patently refused to accept the status quo. You can do this too. Anyone can. I’m basically a moron and I managed to convince our talent team to radically change how we do things; if I can do it I feel like the bar is pretty damn low. The only real requirement is that enough of us simply refuse to accept how things are today. Right now is a fantastic time for the tech industry to adopt change because your talent recruiters are probably struggling to find and retain new developers and are almost certainly willing to listen to suggestions on how to stand out.
- rodenmonte 4y agoWould you be able to share the kinds of questions you ask and have had success with? :)
- tsuujin 4y agoWe basically adopted the MINASWAN interview, which Jesse Spevack can explain much better than myself in his talk [here](https://youtube.com/watch?v=c4K-ORZmrGk&feature=share https://youtube.com/watch?v=c4K-ORZmrGk&feature=share). The overview is that for each candidate we spend 20 minutes reading through code we provide to them to demonstrate comprehension, and then we give them 45 minutes to pair with us on reimplementing that same code from scratch. What that code is doesn’t really matter, it’s more about getting a chance to work with them and start a conversation, and starting with trying to explain a provided example really smooths the way into the pair programming.
- 908B64B197 4y ago> Over the past few years I've met people who are really good programmers when it comes to putting together a full back end system , creating a very nice front end or creating any kind of app for that matter. Many of these people are fresh out of college and the "industry" puts them through leetcode/hackerrank style rounds that are needlessly hard I'll get downvoted for this but... There's no such thing as "leetcode/hackerrank" interviews. It's simply using questions that will be familiar to any candidate who took a serious algorithm and data structure class [0]. Any serious engineering/computer science degree should have at least one. If you can figure out algorithms, you should be ok figuring out how we built our back-end in whatever language, as the fundamentals (the underlying algorithms and data structures) will be evident. If you're just hiring programmers, don't expect them to be familiar with those concepts. But any serious engineer will and should. [0] https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-fall-2011/ https://ocw.mit.edu/courses/6-006-introduction-to-algorithms...
- deleted 4y ago[deleted]
- rr808 4y agoI'm someone with a lot of YOE but couldn't reverse a linked list when asked in an interview (why would you want to do that? I remember thinking). After a few years on competitions and LC, I'm decent enough to usually pass LC style interviews. I think I actually learned a lot by doing this, and it has improved my coding skill.
- sangnoir 4y ago> The people who do manage to crack these rounds are not necessarily good at programming either because the time they spent doing competitive programming stuff should have been spent learning to build actual things. I disagree with this, with a disclaimer that I enjoyed competitive programming since before I knew of leetcode's existence. That said, salaries for SWEs are increasingly becoming bimodal. You can have a fulfilling career without having to do Leetcode-style interviews. Or you can have a go at grinding Leetcode for a few weeks and have a higher salary for the rest od your career - a much greater RoI than a 4-year degree, IMO. Framed differently: would you grind leetcode for $100,000?[1] How about for $100,000 every year going forward? There are no wrong answers, for some, the answer is "no", and they have my respect. 1. Assuming you're in the US and aiming for FAANG/FAANG-adjucent employers; adjust this figure for your circumstances.
- gtvwill 4y agoGo work in an industry. Any industry that isn't IT, I suggest manufacturing and raw resource industries like farming and mining. After a year and you get your head around what's going on automate some of their business process or collaborate some some of their data into a form that's easier to interpret. Sell back to your employer or their competitor. Congrats you've just started your career in coding and you didn't do a single whiteboard riddle I interview. Also your doing real work for real people and making actual differences in day to day lives. Not just some faang companies pleb work, bleeding metrics from the masses.
- chaosbutters314 4y agothis is actually our company/startup for the ChemE type companies. it is just hard to find software/data science people interested in manufacturing/engineering
- gopher_space 4y agoYou’ve also built a mental model of how large systems interface that takes years to acquire from the other direction.
- jalino23 4y agothis is good advice.
- spacemadness 4y agoMuch better advice than “get used to ‘em” as alternatives to the status quo do in fact exist.
- paulkrush 4y agoYep, get in through the backdoor.
- tonnydourado 4y agoMy experience might be biased, but my solution was not working for American companies, specially big I.T. ones. I've worked in Brazil and Europe and have very rarely even been proposed the sort of grinding bullshit interview that seems common on the US industry. Obviously, that's not exactly an easy route, but anyway.
- sydthrowaway 4y agoMy advice is to start early to avoid stress. Start mid-tenure of your current job.
- Techonomicon 4y agoThis is an extremely interesting subject. I understand the "hate" for leet code, or simply live coding exercises in general, though so far the majority of "hate" I've heard for this comes from the candidates who haven't had to do a ton of hiring. Or they've had the ability to hire slower and take their time evaluating fewer people over a longer period of time without a ton of inbound pressure. Or they've set some arbitrary bar for inbounds that many people also disagree with (such as only talking to people from top ranked CS schools, or only candidates from well known companies, basically some other metric they can use for themselves as some abstraction on competence). I do believe having someone do paid work / pair with the team for a few days is likely the most valuable, and I do actually think the best people are ok with this because they use it as a way to evaluate a company. But this strategy simply isn't scalable and can take a lot of company man hours without extremely good up front vetting. I've found coding exercises, of some sort, they don't have to be leet-code-esque, to be one of the very few "put your money where your mouth is" activities to perform. The amount of folks that can speak forever and in-depth about what they've worked on, and then will completely fail at writing for-loops in their favorite language has astonished me. I don't believe live coding exercises have to be adversarial, I believe candidates should be offered a more accessible often if it's too high pressure for them, but I don't believe coding exercises are inherently bad or evil. I do believe there are bad or evil exercises that can be chosen. A practical coding exercise that requires no more than 8-10 lines of code done live has generally served well in my experience for assessing candidates. I've seen similar pure failure rates from practical exercises as I have from "perform a dfs" style exercises, in the above 60% range.
- Longlius 4y agoSoftware has not improved since LC took off, and in fact has gotten worse in many ways. LC is just the newest hiring cargo cult (a spot previously occupied by transcripts, internships, and 'open-source contributions'). The biggest difference is that, unlike previous hiring voodoo, LC has already been gamed before it entered the consciousness of HR.
- brhsagain 4y agoThe problem I see over and over is that the new "job relevant" interview formats are always way easier than the old interviews. It is not even close, maybe as high as by a factor of 10. People argue that we should make interviews more relevant to the actual work you do on the job. But in practice it looks a lot like we're really just trying to pass more people. Half the new "practical" questions are literally like make an http call, iterate through the array of objects and do some basic data transformation using map and filter. Or something. The actual thinking part is usually about leetcode easy, maybe low medium. Seriously, any time I see a "modern" non-leetcode interview I basically start rehearsing salary negotiations in my head. I suppose you could argue that's all that's needed to do 90% of modern software development, and so the new questions are measuring the right thing... but then doesn't that just indicate that modern software development is a joke and the job is not actually hiring developers to do anything difficult?
- notpachet 4y ago> but then doesn't that just indicate that modern software development is a joke and the job is not actually hiring developers to do anything difficult? You just said the quiet part out loud. Most of what we're doing is just slinging CRUD code. Some of the worst developers to work with are the ones who think they're God's gift to programming, because they're the ones who twist the codebase into knots in pursuit of cleverness points. Guess which type leetcode filters for.
- brhsagain 4y agoYes, this is true and a real problem. The empire-building types. My personal favorite non-leetcode interview format is having the candidate spend 2-4 hours building a toy version of your product from scratch. It's hard, relevant, and filters for straightforward code (or you won't finish in time).
- charcircuit 4y agoIf you are a good programmer you should be at least able to make a brute force solution to a leetcode problem. Then it's just a matter of seeing enough problems to learn the tricks that are used to optimize the time complexity. >homebrew creator / inverting a binary tree This is just a traversal of a binary tree + swapping two variables. I would expect any good programmer tqso be able to do both of these things.
- davidhyde 4y ago> “What would be your advice be to fresh college graduates, or anybody for that matter, who are good at programming but not at leetcode?” Go for jobs or companies that are not popular and are struggling to find talent. Try to get the highest paying one of those (my subjective experience is that your colleagues will be more professional). A job is what you make of it. If you take a role at a company that puts you through a tough leetcode test you may find yourself editing config files all day because you are surrounded by superstars and there is only so much interesting work to go around. My first job was at a startup that couldn’t attract the talent that the bigger Corps could. They paid more than the big Corps and I’m pretty sure I learnt a lot more than if I hadn’t taken the risk. Another approach is to use Meetup events in your chosen tech field to shortcut the hiring process. You chat with someone who works somewhere, they speak to their manager and get you an interview. People that know each other personally are unlikely to put the other person through a leetcode test. It helps to have one or two projects on GitHub that someone can browse through to make sure you are legit. They don’t have to be popular or useful. Just some code that is not terrible.
- granshaw 4y agoYou found a startup that paid better than big tech? Mind sharing who they were?
- mihaitodor 4y agoI encourage everyone to state up front that they refuse such interviews. I have the following disclaimer in my LinkedIn intro: > I have a personal policy against any type of live coding or online coding tests during interviews and I don't enjoy or engage in any form of competitive programming. Otherwise, I am happy to work offline on coding assignments with reasonable goals and deadlines and to have in-depth technical discussions about software architecture and design as well as relevant technologies. Yeah, I’m aware that I can easily get away with it given my current CV, but some companies do care about their candidates and adjust their process as needed. As long as we bend backwards and tolerate any abusive practice, nothing will change.
- cmpalmer52 4y agoSmaller companies don't always go through these extended formalities and you can get a good job and build a few years experience that way. Our company, which is service and tech based (GIS) has about eight full-time developers among 400 or so employees and we're doing cross platform mobile development and some web and some server applications and plugins. When we interview, we usually do a phone interview with basic questions ("Explain inheritance" or "What's the difference between abstract and virtual"). It's weird, but a lot of people either panic or don't prepare. Missing things like this isn't a deal breaker, but we want to see the thought process. If that goes well, we do an in-person interview and tell the candidate to schedule at least a half day (or sometimes a full day). We introduce them around, chat, do a more formal interview, and then do a coding test that we concocted. Basically, it's pieces of our app and a list of like 10 things to accomplish, like "Make it compile and run" (usually there's a syntax error or two and we want to see how people use the IDE and tools) or "Add a label to the page or app that shows the current time" or "Fix the alignment of the buttons on the left side" (for web). They get progressively harder and we've only had one person complete them all on time (we hired him, naturally). We've also had candidates completely choke and not even know where to start (you are free to ask questions and look up things online - totally open book, as if you were working and had a list of tasks to work on). There aren't any tricky problems. The harder ones require a little domain knowledge in GIS (which isn't a requirement), but can be figured out with Google (or by simply asking us how to do something - it's kind of a joke that NO ONE ever asks). You're not watched, but we check in every once in while to see how it's going. We eliminate quite a few resumes, and eliminate others after the phone interview, but for those who make it to the in-person interview, we've eventually made offers to about 50% of them. And we've had great success in getting people who can do the job and excel, which you have to do with such a small team. We do look for github projects, open source projects, and any sample code you can share. We also like people who have completed successful individual projects, written on subjects, and we love it when candidates actually have domain experience, but, as I said, that's not required. My favorite interview question is "Tell me about a project, personal, school, or professional, that you are proudest of. Preferably something that presented a challenge you figured out." I like for interviewees to relax and geek out a bit. I honestly want to know if they enjoy coding, designing, and learning or if they're just looking for a paycheck or stepping stone (not that there's anything wrong with that, but I don't want to feel like we're paying someone to do something they're not the least bit interested in).
- Keloran 4y agoI tend to look elsewhere if companies want to do code tests, my answer to them is “here is the many thousands of lines of code in my various GitHub accounts, don’t like the code, don’t hire me”
- mirceal 4y agoleetcode is just a skill like any other skill. If you understand the data structures / algos behind it (which are mostly CS stuff you learn in college), given enough time, you should be able to solve the problems. It's okay if instead of doing a medium problem in 15 minutes it takes you 4 hours at first. Start solving and make a habit of doing 1-2 problems per day. In no time you're going to learn that the problems are doable and the time it takes to do a problem will go down a lot. When you can do an easy in 10 minutes and a medium in 15-20 min you're ready. I have rarely seen hard questions in an interview. Also the more senior you are, the more the emphasis is going to be on system design and behavioural. Yes, it's stupid. It is what it is. You know what is going to happen, you prepare for it, you get the job.
- 0xbadcafebee 4y agoStart building things. Volunteer for open source projects. Make some pet projects. Go to meet-ups, join mailing lists/discords, network. Get hired for minimum wage on very small projects (but make sure somebody pays the taxes). Add them to your resume. Get contracting gigs (contractors rarely have to pass the scrutiny full-timers do). Join a startup. FAANG may not hire you on these alone, but I would, and so would many others. We want to see that you can build something, and we want to see you have made lots of mistakes and learned lots of lessons. After you have proven yourself, you don't need to do leetcode. Then you just have to worry about the rest of the interview...
- sirtimbly 4y agoAhhh! Now I know what this style of interview is called! Thanks for explaining what the heck was going on in some of the interviews I went through in the last few years. Since 2005 spent a long time at 2 companies and then went self-employed 6 years ago. When getting back into full-time employment around 2019, I had a couple really weird interviews where they gave me some intense timed puzzle solving "games", and then brushed me off. I was so confused because it had no relevance to any of the web development work I had done, ever, in my years of career experience, and it was super stressful. I thought these hiring managers were insane. I get it now. I think code tests are fine, but timed puzzles just don't tell anyone much about any dev's ability to assemble features out of higher-level tools.
- jedberg 4y ago> What would be your advice be to fresh college graduates, or anybody for that matter, who are good at programming but not at leetcode? Surely there must be a way to demonstrate their understanding of algorithms without having to spend 3-4 months memorising riddles You're premise assumes someone who has the safety net to spend time on non-compensated work (which is what leetcode is and is really unfair to poor people, but that's a different discussion). Assuming your premise holds: - Work on an open source project and contribute to it. - Work on your own project and publish it - Get an IT job (which only requires Windows and Mac skills but not programming) and then volunteer for any programming project that comes up (automating the ticket system, automating deployments of equipment, automating basically anything that's manual). - Find a non-profit that needs a new web app or phone app and volunteer your time building it for them. Basically, take the time you would be doing leetcode and actually build something public, so that you can take that to an employer and say, "hey I built this".
- cushychicken 4y agoYou can search on a site like nowhiteboard.org for jobs that don't do interviews that way.
- taesu 4y agoI hate how the industry has become, but I chose to be compliant. I recently substituted all my free time playing video games to leetcode-ing, b/c it's the only way to become hire-able at any given time. I'll most likely do this for the next 10 years and then become a manager of some sort so I don't have to do this for lifetime. Did I become unhappy b/c of this change? It's arguable. I'm sad that I can't play video games anymore but I'm happy to know that I'm interview ready at any given time, and can exercise my will to attempt to get higher salary jobs at any given time. So it's a give and take. We don't have to, but we'll have less pool of jobs to choose from. As for solving leetcode problems; it's just like a riddle. You become better at it the more you do, b/c you start to see a pattern. However, if you choke or don't get a question you solved before (or you solved before but can't remember) , better luck next time.
- WalterBright 4y agoI was involved in the dance business for a while. The first thing they teach you is steps, then patterns, then frame, then arms, then posture, then fingers (yes, finger styling is important!) and on and on. Do you know what ballroom champions do? They regularly hire a coach to go over, again and again and again and again, how to take a step. So yeah, you can be a competent dancer without this emphasis. But you ain't gonna be a champion without a very solid foundation on your feet, as it all grows out of that. I've advised college graduates to learn the leetcode stuff. It's foundational for being a champion programmer, and besides, with the $$$$$ that Google pays, it's a very high return on investment of your effort. It's also easier to just learn it than expend all the effort fighting it. It isn't that hard, either. Just make it your bathroom reader, one puzzle at a time.
- brailsafe 4y agoFrick idk. I have a Chime interview scheduled with Amazon on Tuesday and I'm definitely going to fail it after many years in frontend. But I'll do some basic prep I guess and see how embarrassing it is.
- t3476 4y agoThe real purpose of this process isn't filtering out brilliant programmers but who are more obedience. Managers aren't some kind of stale guy but predators who sucks slaves' blood. They actually know what they're doing, they're sending a powerful messages that they have power to order subordinate dumb things, like memorising riddles.
- gabereiser 4y agoI’ve been in tech 22 years. For the first 10 years it was leetcode gymnastics to prove I had the chops. All these did was to serve as a basic filter for weeding out people who didn’t know what they were talking about. The actual leetcode exercises didn’t do much to prepare you for the actual job, it was more that the existing team wanted to be sure you were nerdy enough. The last 12 years in tech I’ve actively fought back against leetcode and homework coding interviews. Unless you’re going to pay me for my time, I’m not going to work for free. Someone in a thread said “show them the actual day to day during the interview” is spot on. If you are interviewing and they aren’t doing this, move on. If you are interviewing for your team and aren’t doing this, start.
- throwaway968868 4y agoThere is a lot of programmers who are bad at both, programming and leetcode. And they have jobs.
- fredgrott 4y agoLook, you are thinking in the wrong direction or plane. What is the group of customers for your labor output that will never put you through a test? Hint, other beginning developers.
- gigantosaurus1 4y agoThe median salary of a heart surgeon compares favorably with a senior at FAANG [1][2]. The former involves 15 years of rigorous medical education, the latter requires on an average 7 years work-ex, maybe someone in your network for a referral and 3 months of LeetCoding. I’ll take the 3 months of LC any day. [1] https://www.salary.com/research/salary/benchmark/surgeon-cardiothoracic-salary/ca https://www.salary.com/research/salary/benchmark/surgeon-car... [2] https://www.levels.fyi/?compare=Google,Facebook,Salesforce&track=Software%20Engineer https://www.levels.fyi/?compare=Google,Facebook,Salesforce&t...
- jacquesm 4y agoIt says a lot about the society we've built that those who save lives are valued roughly equally to those that fleece unsuspecting consumers.
- cutler 4y agoRails interview question - who said "I don't do riddles"?
- srer 4y agoI find interviewing skills are more important than job skills in terms of income. Trying to get a 20% raise by doing a good job I've found to be a protracted difficult task, but a 50% raise by interviewing? Much easier. You do need some job skills, but in my experience being fired for not being good enough is rare, and can take a lot of time - during which you're getting paid. Another thing I've found is I pick up the most exposure to new ideas in that first 12 months in a job. These two things together means being able to get a new job easily is very useful. But getting a job is different from doing a job, don't expect the two activities to have much in common. It could be better, but hey 3-4 months of evenings spent programming to get a big step up in the job market is a pretty good deal if you enjoy programming :) (Personally I've found leetcode useful at becoming a better programmer, though I didn't approach it as memorizing riddles.)
- deleted 4y ago[deleted]
- PLenz 4y agoIf a company has a terrible interview process it's probably a terrible company. Don't work for those companies.
- lucidguppy 4y agoCould we all be spending the time we spend on leetcode, on better things, like projects? Do I learn enough in leetcode? Do I get anything valuable (outside of skills/practice) out of it? IDK
- wly_cdgr 4y agoI don't get the hate, Leetcode is great. Best signal for your buck, fun, and the most equitable and fair process. Like SATs, LSATs, etc. Just git gud Also, for system design interviews, they should use stuff like Factorio and Zachtronics games
- chrismcb 4y agoLeetcode should be about practice, not memorizing. Know the basics. Breadth first and depth first. Know different data structures; binary tree, arrays, linked lists, dictionaries, hashes, sets. Know your sorts. Have an understanding of big o. Just knowing the basics will get you most of the way there.
- Madmallard 4y agoI'm good at leetcode and probably fairly good at programming, though I struggle when problems pass a certain threshold of complexity. The issue I have is that I get seriously demotivated working for boring ass CRUD applications that most companies end up implementing and it like makes me sick just trying to push through that over time. Not really sure what to do in my situation either. I know it's different from ops but I thought of it as sort of a corrolary.
- houqp 4y agoThere are more companies noticing this now and have stopped asking these questions. For example, we at Neuralink[1] only give out practical programming challenges. If are you good at building practical systems, you should be able to ace our coding interviews without any preparation. No leetcode and no whiteboarding. In fact, I prefer to hire those who doesn't waste time practicing leetcode. Over the past couple years, I have interviewed at a handful of other startups who also have similar coding interview philosophies. [1]: https://neuralink.com/careers/ https://neuralink.com/careers/
- jnguyen64 4y agoHey! I run a job board at NoWhiteboard.org for companies not using whiteboard/LeetCode interviews in their interview process. I can add Neuralink’s roles to the website for free! If you’re open to it, could you share the high level overview of the interview process?
- granshaw 4y agoHow much do you all pay tho?
- walleeee 4y ago> every company's interview process has become like Google's although the leetcode hiring model is too often cargo culted by orgs trying to emulate faang this is not representative of the industry at large. if it seems true you may be considering too narrow a slice of it > What would be your advice be to fresh college graduates, or anybody for that matter, who are good at programming but not at leetcode? consider applying to roles that don't use the leetcode hiring model personal anecdote: first job out of undergrad, small shop whose software you probably haven't heard of but have almost definitely interacted with if you live in the US: phone screening, remote technical session with 2 hours (own time) to write 3 functions, on-site interview given a laptop, an hour, and instructions to write a toy API then asked a few questions about solution and general concepts second job, cold emailed a professor asking about openings for a programmer/research software developer, asked to clone and build a project repo and sketch a simple (<1 hour) feature third job, also research software, online application, 1 hour video interview, entirely qualitative, no coding component, having work from the previous role on Github likely obviated the need for a technical session I'm not a great leetcoder, I reason fairly slowly, I struggle under time pressure and observation if you're like me, play to your strengths, you're still competent and you can find work
- nnoitra 4y agoI don't believe at all that this is a possibility. What those programmers have been doing is gluing code from StackOverflow to create UIs. Just look at development in React. There's no thinking involved whatsoever. Just navigate to Redux copy-paste code and remember what it does to create a glued up pile of shit. Npm install 100 packages and you are good to go. I don't know of any decent engineer who's good at problem solving that would struggle with LC easies which are the most common types of problems asked. I mean, how could they it's just basic logic and looping.
- 5350-uiop-1130 4y agoI feel like any pleb can be trained to do my job. What's difficult to train and find is a problem solving mentality, a let me try first before asking approach. most common day to day tasks have solutions or best practices. So you're looking for someone with the the foundation skillset and right mentality to do the job. I think leetcode is comes from the ivy league elitism culture of faang. also a lot of nerds are deeply insecure and like to show what they know or tell others what they don't know smugly. just look at the "show hn" posts and the type of comments your get there eviscerating some noobs hobby project.
- bjourne 4y ago> What would be your advice be to fresh college graduates, or anybody for that matter, who are good at programming but not at leetcode? Surely there must be a way to demonstrate their understanding of algorithms without having to spend 3-4 months memorising riddles Leetcode problems aren't that difficult and if you can't solve them, your coding skills are weak. Not surprising since you are fresh out of college and still have massive amounts of knowledge to learn.
- deleted 4y ago[deleted]
- hellohowareu 4y ago>Ever since 'Cracking the coding interview' was released, every company's interview process has become like Google's and Google didn't have a particularly great interview process to start with This is a gross over exaggeration. I'd say about 50-60% of companies do a programming test. Others are happy to look at your open source code and discuss it with you. They might pepper you with some programming language trivia questions. That has been my experience.
- b20000 4y agoi watched a prep video from a FAANG a while ago where that Gayle woman who wrote that cracking the … book solves a typical challenge. she arrives at the optimal solution after one hour. i then took an interview with another FAANG. i was asked to solve this exact problem and it was clear i was supposed to do so within 3 minutes or so. this just illustrates how horribly broken the process is. it’s infuriating how this woman lobbied herself onto the hiring committee and essentially created a broken process that disregards any experience gained and optimizes for those willing to memorize optimal solutions.
- anchit_rana 4y ago
- NiagaraThistle 4y agoTL;DR: As a web dev of 13+ years I not only failed miserably on these types of coding tests/interviews, but fail to see how they accurately display one's ability to do a job UNLESS it is specifically optimizing algorithms every day. I just want to add that I 100% agree with OP: many companies put too much into LeetCode type testing and interviewing. I have been a web developer - so not advanced in algorithms or LeetCode type stuff to begin with - for the past 13+ years. in 2021 I resigned from my employer due to burn out, took 10 months off, and started looking for an employer again. Many interviews for "web developers" and "wordpress developers" required me to take a LeetCode type test, which I bombed repeatedly. One company I really wanted to work for asked me to retake the test in 30 days. I spent the next 30 days in the pockets of time I found available trying to go through LeetCode challenges and wrap my mind around these algorithms. Many times I could "solve" the problem my way with my own experience and knowledge, but not LeetCode's way, so my scores were poor. Fast forward 30 days, I retook the potential employer's test, and got a 14%...they advised I should re-apply again for 2 years. LOL. It was so comical I had to email them that the process didn't allow me to display my 13 years of experience at all, and the testing challenges in no way reflected what I knew as a web developer. In the end I took a different position for a vastly greater salary than they were offering.
- djohnston 4y agoJust practice the leetcode, it's a skill you can develop even if it's worthless for your actual job. Grit your teeth, dance the dance, and land 400k/yr gig for your two months of trouble.
- thorin 4y agoI've never known people who have contacts/good experience and can deliver to "have to grind leetcode". This may be the case for new entrants or areas with huge amounts of competition. I've known several people to get jobs at Microsoft and Google due to their educational background (PHD projects), industry knowledge and conference presence, and general competence. I'd be very surprised if any of these people was working through these lists of questions and I've never directly used these tests when I've been interviewing, although I have used some of the concepts of course.