7 ms·
I'm a 20+ year Senior Software Architect, Team Lead, Senior Developer and a PM (all at the same time at the moment!). I've done everything from C++ to 20 years
by EMM_386 5y ago
I'm a 20+ year Senior Software Architect, Team Lead, Senior Developer and a PM (all at the same time at the moment!). I've done everything from C++ to 20 years of .Net to now TypeScript and Angular 13 with .Net Core REST APIs against an Oracle SQL database.
I am self-taught and I can't do these leetcode problems if my life depended on it.
I still deliver high quality software on time, and on budget, and have a solid grasp on my career.
I wouldn't worry about this too much. It depends on what you are going for.
Sure, if you want to pass a FAANG interview where you are going to get these types of questions, go for it. To solve day to day business problems, you rarely need this stuff. You just need to learn how to write quality, performant, correct code that results in solutions.
The best way to do this is develop experience in the industry over the years.
My 2 cents.
- polyterative 5y agoSimilar experience. 4/5 years in mobile/web, android and angular in Italy. No degree but still now on a solid job. I fully agree.
- nojito 5y ago>I am self-taught and I can't do these leetcode problems if my life depended on it. >I still deliver high quality software on time, and on budget, and have a solid grasp on my career. There's simply no way of proving that to recruiters without Leetcode.
- tharne 5y ago> There's simply no way of proving that to recruiters without Leetcode. If a recruiter can't assess engineers without something like Leetcode, they need to find a another job. Assessing talent is the job of a recruiter, and if the only way they can do that is with Leetcode, that's just pathetic.
- foxfluff 5y agoThere's no way of proving that to recruiters with Leetcode.
- scaryclam 5y agoExcept, recruiters were able to do just that for a really long time before leetcode came along. If a recruiter today can't assess a candidate without toy questions, they should probably reconsider doing technical recruitement.
- GuB-42 5y agoWhat do you mean by "can't do these leetcode problems if my life depended on it". Because there is a difference between writing FizzBuzz and solving one of those dynamic programming problems that are so common in competitive programming. For the former, I am surprised you can even work without being able to to this, for the latter, you pretty much need special training that is not very useful in most professional settings. I never took a leetcode style interview so I don't know what is generally expected. If you are expected to do hard problems, it doesn't test much besides your leetcode skills. But easy problems look like a pretty good filter, assuming the stress of the interview isn't blocking you, which is another problem.
- shahbaby 5y agoI agree that leetcode easies are good filters. But what if too many people pass those filters? Then we move onto mediums. But what if too many people solve those? And that is how we reached the current state of interviews.
- RegBarclay 5y agoFizzBuzz != leetcode. You are correct - easy problems are a good filter. After starting with one company I started sitting in on phone screens and candidate interviews and I was shocked at what a lot of applicants didn't know. Actually helped me with my imposter syndrome. I walked away from several interviews feeling like maybe I did know a thing or two!
- cloverich 5y agoIME the challenge is that all leet code problems seem easy once you know the answer, in particular because the code itself is often very simple. And so many of the interviewers claiming a candidate cannot do "easy" problems are off-base. This usually stems from not knowing the history of the underlying data structure or algorithm. Interviewers take for granted the things they know, especially once they've asked similar questions a few times. IMHO I believe the right approach is to either ask from a standard bucket of questions that require preparation and advertise which ones to candidates, or not ask them at all. Asking "only a few really easy ones" is becoming a red flag to me.
- babarock 5y agoI'm a 15 year(ish) engineer-turned-manager who has spent a good chunk of time doing recruiting. * I confirm that day to day business problems rarely are the sort of problems you find on Leetcode. * I might ask similar questions in interview. I don't expect the candidate to solve them. As a matter of facts, I don't care if the candidate actually solves them or not. I am observing how the candidate behaves in front of a difficult problem. Will they freeze? Will they jump head in the code? Can they articulate their thoughts and think analytically about it? Can they think on the spot if I challenge their approach? Are they comfortable saying "I don't know"? This sort of things. In my book, being a "good engineer" is much more about communication, collaboration, familiarity with git/sourcecontrol, clarity of commit messages, pertinent emails, being reliable, being resourceful, etc. Good grasp of algo is a big plus, of course, but it's not something that all the best engineers excel at.
- hawk_ 5y ago> Will they freeze? So what if they freeze during those 45 minutes? How representative is that scenario for what most devs do?
- miscaccount 5y agoMost people freeze on interviews and its normal entirely. Also, most problems are not solved in the 45 minutes and in day to day coding , we generally have a minimum of day to think on the problem and solve it without people looking over our shoulder, google or ask someone :)
- musicale 5y ago> Most people freeze on interviews and its normal entirely And presumably fail said interviews because they froze. Usually "I think I need to think about this for a while, or maybe even sleep on it" isn't the answer that the interviewer requires. As you note, it's normal to need more than 45 minutes to think about a problem that you haven't seen before. Many leetcode type problems puzzled eminent computer scientists and/or algorists/mathematicians for years before they were solved. Then there's the psychological aspect of when interviewers try to "help" you by asking questions, providing clues or even the specific clever (or stupid) trick needed to solve the algorithm puzzle but really you're in no condition to understand the hints they might be providing.
- RegBarclay 5y agoI'm also self taught with over 20 YOE and pretty lost with leetcode problems. But I get the job done and have a really good eye for user and business domain concerns. My last two jobs haven't required any kind of test. I actually had to do a couple of short narrative essays for one to prove I could write - which was a hoot because I majored in English. The only job I've ever had to do any kind of test for wasn't leetcode - just a practical demonstation that I could write a basic CRUD app. Was actually a pretty good test to weed out people who were just completely useless. I'm also finding that experience matters. It's just tough to get that across up front.
- bmj 5y agoThe only job I've ever had to do any kind of test for wasn't leetcode - just a practical demonstration that I could write a basic CRUD app. Was actually a pretty good test to weed out people who were just completely useless. I think this is a totally reasonable way to weed out applicants, particularly if they allow you to do it during the interview time. I've been through several interviews (though, to be fair, they were well over 15 years ago, since that's how long I've been with my current employer) that used a similar exercise. One interviewer just sat me down at his workstation, and told me to build a quick crud with their tech stack (which, of course, I knew going in). Nothing was off-limits (web searches, etc).
- kkjjkgjjgg 5y agoI must admit I don't understand how one can not be able to solve them and be able to solve other programming problems at the same time. I believe you and others when they claim they are good developers. I just want to point out that for many people, it can be impossible to understand how your minds work. Maybe it is a bit like dyscalculia, where some people can not comprehend "amounts". They can not calculate well, but they can actually be good in other fields of mathematics. Edit: I never did a lot of leetcode, but for reference, here is a problem they categorize as "hard": https://leetcode.com/problems/median-of-two-sorted-arrays/ https://leetcode.com/problems/median-of-two-sorted-arrays/ It requires calculating the median of an array. Is that really a kind of thing people who are otherwise good developers can not do? I must admit it really boggles my mind and makes me a bit hopeless and desperate. It seems all attempts to explain stuff to people are futile anyway, at least for some things.
- jugg1es 5y agoTypical day-to-day programming never requires you to find the median of two-sorted arrays, so a self-taught programmer generally has never thought about how you would tackle a problem like that, especially given the complexity requirement (O(log (m+n))) stated in that problem. If your brain immediately knows what to do when you read that problem, then you probably have a CS degree. If you have to spend 5 min thinking about the complexity notation before you even start the problem, then you probably don't have a CS degree.
- Cd00d 5y agoAnd if you see that and go "do they actually say the words 'big oh' when they speak that outloud..." you're interviewing as successfully as I do! I really appreciate your greater point. I've been given all sorts of CS problems in interviews that I don't have any background in understanding the context enough to know what to do. I changed careers from experimental physics, so my software work is essentially self taught. That doesn't mean I'm totally useless in my job or not an asset to my team or can't deliver products that generate massive revenue. But, those things are how interviewers make me feel.
- kkjjkgjjgg 5y ago
- stackedinserter 5y ago> I can't do these leetcode problems if my life depended on it. Don't undersell yourself, you ARE able to do them, maybe with some practice, like putting some basic algorithms implementation into your muscle memory. Doubtfully it'll make you a better developer though. Anyway, the most important skill for FAANG interviews is ability to write code on a whiteboard with a dried out marker.
- Kranar 5y agoHis intention isn't to undersell himself, for whatever reason it's very favorable on this site to tell people how you have decades of experience working in this field but can't write fairly basic data structures or algorithms. It comes across as very likeable and personable and gives people hope that they too can spend decades working in a field making a better than average salary without ever having to master the fundamentals of their job. The reality is that if this person's life really did depend on it, for example they lost their job and they have bills they need to pay or a family they are responsible for taking care of, then they almost certainly could put in the effort to brush up on their skills and get to a point where they could do leetcode easy or leetcode mediums in a matter of weeks or a month at most. It's along the lines of an MIT grad saying that where you go to school doesn't matter or a rich person saying that money doesn't make you happy, or even the myth that Einstein failed at math. These statements that espouse a false sense of modesty have great appeal and they likely come from good intentions, but ultimately they give people bad ideas about what it takes to be a fairly competent developer.
- alx__ 5y ago> Anyway, the most important skill for FAANG interviews is ability to write code on a whiteboard with a dried out marker. This would be a good April Fools ecommerce site. "Dried out markers! Guaranteed to land you a job!"
- toss1 5y agoIOW, it turns out that it is really hard to test for the high-level skills that actually produce results, no one has really cracked how to do it, and "Leetcode", despite their marketing, has also failed to figure out how to really build a useful test set.
- tootie 5y agoSame. I've been working 20+ years and am now more management than coding, but I have never been subject to a leetcode style interview and have never subjected a candidate to one. I think they are poor predictors of value in 95% of actual industry work. Any line of business software, web dev, mobile dev, DevOps, IT, creative tech, consulting work requires a mix of basic technical competency, organization and communication skills. And good Googling technique.
- godot 5y agoI have a similar background and YOE as you EMM_386 (except no .NET but a relatively common progression from php to node/react), and I even have a computer science bachelor degree from a top 50 US university (graduated with honors). I can't do these leetcode problems if my life depended on it either. For OP, I read your post and the post you linked from 9 months ago. It sounds like you two have fairly different backgrounds and experiences. The other poster said they had only worked for 1.5 years before getting fired at a first job, and then spent time leetcoding. 1.5 years is a short time for a person to be able to learn how to effectively work in a grown-up world after school/college. In fact, I had a similar experience at my first job (I didn't get fired, but I was getting below-average performance reviews and I left on my own), also for about 1.5 years. It wasn't until later I learned what matters, what to do and what not to do at a job, and then excelled. For you, it sounds like you've already learned it, evident from the fact that you had 4 years at a real job with a senior title, proving that you can do it well. It sounds like your issue is more around finding meaningful work, having a disdain for the current trends of agile, react, CRUD apps, etc. which isn't uncommon. I think there are other solutions to what you're facing, and leetcode isn't it. For me, the key has always been working in an industry I'm truly interested in, then I can dive deep into the business domain knowledge. I'm a very senior level engineer and I'm good at it but at the end of the day the code is still just a tool to me. I don't really care if architectures are tried and boring, I just want to make business impact and build products. Maybe it's the same for you, maybe not. The key is finding what matters for you, and not care about parts that don't matter.
- mizzao 5y agoIf you were to choose between no Leetcode in interviews vs. a significantly higher chance of getting fired in the first 3 months of your job (essentially treating it as a trial period), would you take that deal? I ask because as a startup founder, I would significantly prefer to try working with someone for 3 months instead of doing useless least-common-denominator interview questions. It's a bad fit, it's better to quickly part ways. But getting fired or asked to resign is a big emotional blow for many people, and I'm not sure if they would rather face that than the Leetcode grind.
- e-clinton 5y agoThe problem is that it takes a lot of effort to fire people. And every time you do, you increase your exposure to legal trouble.
- Fattestmoron 5y agoNot in the US it doesn't. The turnover rate if anything is a symptom of the problems in the industry.
- still_grokking 5y agoAt least in Germany it's usual to have a trail period of a half year in any job. During this time both, the employer or the employee, can resign form the contract with usually a two weeks notice period. Neither side needs to specify reasons in detail. As this is a normal contractual regulation there is almost no risk of any legal trouble (usually). On the other hand side as soon as this trail period ends all the German workplace protection regulations start to apply in case of permanent employment contracts. So after the trail period ended it gets quite difficult for an employer to get rid of an employee. But all in all that's pretty fair, imho. After a half year you quite surely know whether you like the workplace, or form the other perspective, the employee.
- justinram11 5y agoI realize that I'm probably the outlier here in the US market, but absolutely I'd rather have a 3 month trial period (not only so you can evaluate me, but so I can evaluate you to make sure it's mutual). I'm fairly confident in my ability to deliver value in the first couple of weeks on a project, so would much prefer this to having to spend time grinding leetcode puzzles that I'm not innately good at. Note: a large part of this perspective is the privilege of feeling like I could get another job pretty easily, and having a sizeable emergency fund that I could draw from to continue the search if things didn't work out. So you may be filtering out people who are not in such a fortunate position.
- malardo 5y agoDisagree that the knowledge required to do well at leetcode is not useful for some business problems. FAANG most definitely has products/projects that need that specialized ds/algo knowledge, which is something most people learn in CS formal education. Off the top of my head, React uses lots of graphs and trees to render stuff.
- still_grokking 5y agoAll you need to know is that this stuff exists, and when / why it would be appropriate to use it. Also there is almost never a reason to implement such things yourself—even when you need the algos—as there are libs for that! (Imho one of the biggest signs of incompetence is when someone starts to reinvent the wheel! That's an absolute no-go. And the truth is: If you're not in academia doing research all the wheels you ever need are already invented). A valid test for a candidate would be whether he/she is able to google for an algo and pick the correct code form the results. Such a test would be good enough as a lot of bad candidates would fail as they wouldn't google but start to "solve" things on their own; the other bad ones wouldn't be able to pick the right solution at all—because they don't know what they should look for in the end.