Hey everyone. I have seen a lot of people talk about leetcode and hackerrank saying that it is a standard for programming. I tried making an account and I realized that even the easy ones are still challenging for me.
So for all the developers out there, did you guys also get into leetcode? Or did you guys focus more on the basics and how to actually create websites/programs? I am currrently studying JavaScript, and I know how to create basic websites and also understand the fundamentals.
(From the employee's perspective, not the company's)
Pros:
Makes you a more proactive developer, you think about edge cases and efficiency before completing the code as opposed to after
All your coworkers can at least FizzBuzz
Gives you a chance to stand out without having a prestigious background such as working at Google or going to Stanford
Cons:
For students, you spend a lot of your time getting a perfect mastery of freshman-level concepts instead of learning new technologies that interest you
Prioritizes efficiency over clean, functional code
Its very specific knowledge and you forget about it almost as fast as you learn it
For workers, you might need to spend a month or two grinding leetcode to switch jobs, which may lead you to staying in jobs you don't like
Overall, I'm pretty mixed about it. What do you guys think?
I've seen some in the industry claim that leetcode isn't worth it because on the job your not doing leetcode related problems.
While this might be true, I've been dabbling in leetcode and when it comes to making projects I now feel confident going in making more dynamic functions to make my projects feel more interactive. Becoming versatile in programming seems to work better for me.
I personally want to master leetcode/algorithims and be able to do hard and medium problems with ease within a year or two. Is it more worth to just rush projects and work on speed and efficiency then doing complicated problems?
What I mean is, do you think solving, let's say, 700 problems has given you good problem-solving skills that make you a more independent and confident developer on larger projects?
I want to become a better programmer and start using LeetCode. However, I'm unsure if it will be useful, as I may never use it in interviews since I'm from Denmark, where the job market is different. I just want to get better and more confident in coding :)
Still relatively new to the industry, (1.5 YOE at well known non-FAANG company) and I have been doing Leetcode for about 3 ish months (just under 200 problems). I started off doing it because I was terrified of losing my job and getting laid off, those fears are still there but my team has great chemistry, is able to deliver on time, and we are working on a new product that management considers very important. I haven’t had any complaints about my performance either. Either way I am doing Leetcode for fun but I do have plans to leave the company probably at around the 3 year mark and it’s a personal goal to get to some sort of FAANG company eventually. I’m just wondering if you all think Leetcode style interviews will still be relevant in the coming few years? Or if there is anything else I can and should study if I’m planning to apply to place as a mid level or even maybe drop to entry level again just to get in? System design maybe?
I've been spending a lot of time on LeetCode to improve my problem-solving skills, but sometimes I feel bad when I see others building cool projects while I'm stuck solving algorithms for hours.
I know problem-solving is important for interviews, but I’m wondering, do companies care more about LeetCode-type skills or actual projects you’ve built? Which one should I focus more on to make the best impact? It feels like both matter, but I’m not sure which one holds more weight.
Would love to hear your thoughts!
I am a self taught developer. I have always liked software since I was a teenager and when the pandemic hit I started teaching myself JavaScript, React, and NodeJS. I've gotten a few job at small companies but they never had me do any technical tests especially leetcode.
I don't really have a care for getting a job at any FAANG company. The "biggest" company I may want to work for at some point is one of the major cruise lines because I live in Florida and would be a great benefit to be able to get discounts on a cruise if I work for the line, but that's kind of it.
I get that leetcode is good for learning the fundementals of datastructures and changing how you think about code, and time & space complexity. But in terms of interviews strictly, is it even worth it if you have no desire to work at FAANG? I've only been doing 2 problems per day to try and learn, but Im still a bit new and really don't understand every data structure that well. I've been following neetcode's 150, and some of the tricks I couldnt get that's one thing, but even when it came to linked lists, I feel like the algorithms are trickier than I ever would have thought of, in fact, I feel like DFS traversing trees was easier for me to start understanding than lists.
Anyways, I just want to know yall thoughts on of I should even continue to try and leetcode in terms of obtaining a job. I don't really care about leetcode or trying to make 250k or whatever crazy salary, the wages I've been paid at my first few jobs aren't that much, but they're fine and sustainable. What are yall thoughts?
Leetcode is like the gym, you practice stuff that you're probably not going to really use anywhere else, it can improve other adjacent qualities of life, and if you don't use it it'll diminish but once you've put in the time it doesn't take that long to get your gains back. Also, like the gym, having it as a life habit can help keep you mentally sharper and healthier (arguably, I mean in a consistent balance).
After grinding leetcode I've noticed my endurance and capacity for problem solving in general has greatly increased, especially during my day job. Pair programming and triaging don't tire me out as much and I noticed I'm much sharper than I was before I grinded leetcode. Similar to the gym, it took me about 2 months into really start noticing meaningful growth.
Leetcode used to be a chore but after it became a habit, and after the initial doom and gloom of not knowing how to approach problems, it's become something I look forward to because I like the growth and personal satisfaction I'm getting from it. Anyways yeah didn't realize leetcode could payoff like that, it doesn't have to be in the form of actually landing a job.
A little advice to developers who are starting out from a software architect with 15 years experience and a 2:1 Computer Science degree.
Today was the first time I've ever seen Leetcode whilst I was watching a few YouTube videos about some updates to C# (My language of choice). For me, Leetcode is definitely not reflective at all of what you would do in the majority of programming jobs and is very algorithmically heavy. Most of these algorithms you will not need to know at all most of the time as most languages contain core libraries that do this stuff way more efficiently than most developers will be able to do.
Case in point, I was stuck on the first question today for about 45 minutes mainly because the question was worded really badly. I managed to solve that pretty quickly after I understood what it was asking for although I will admit I did it in my IDE rather than in Leetcode as nobody codes in the equivalent of Notepad anymore (although that's how I started back in the day).
The second question I was completely stumped and gave up because it was more maths than programming (and believe it or not, you do not need to be good at maths to be a good developer). It's really going to depend on what you end up doing as an actual job.
If you are writing drivers or doing anything mathematically heavy in your job then yes Leetcode might be a good fit but mostly it's algorithmic nonsense that most developers will never even use. I've worked for some of the biggest banks, insurance providers doing APIs hooking up to some pretty complex business logic and never have I had to use anything close to Leetcode level solutions.
My point is, don't be disappointed in yourself if you struggle with Leetcode. You can still be a success. Lead teams. Produce mobile applications and desktop systems that millions of users use and enjoy each year all without ever needing to worry about the types or problems shown on Leetcode.
I've been wondering if grinding LeetCode is actually useful beyond just preparing for interviews. In my opinion, these types of problems (e.g., algorithm puzzles, data structures challenges) feel pretty far removed from real-world software development, where you rarely implement things like linked lists or complex graph algorithms from scratch.
Do you think LeetCode genuinely helps improve general problem-solving skills and makes you a better developer overall? Or is it mostly just a way to "game" interviews? I'd love to hear your thoughts and experiences!
I just graduated from school and im trying to use that time as good as possible while looking for a job! And I dont know what to program to become better..
For the last two years, I have been a computer science student, and alongside my degree, I have independently studied the MERN stack. I believe that I have achieved a good level of proficiency in building full-stack applications with React. Moreover, everyday I successfully solve various coding bugs and algorithm problems with efficient solutions that face me when work With MERN.
The problem is that every time I learn from online resources, I encounter LeetCode challenges. When I try to enter and solve problems, I often face difficulties, sometimes with the Easy challenges. So, my question is, am I still missing a piece or the skills I have, which allow me to build complex React apps and implement good algorithms are enough or Should I focus more on solving more LeetCode problems?
Note : I have a good understanding of every concept represented on LeetCode (trees, stacks, queues, maps, etc.). I acquired this knowledge from my degree and online resources.
Do y’all ever use leetcode algorithms in your actual jobs? I’m starting to think my time would be better spent learning practical skills for my job and future jobs. If leetcode is really just for passing interviews then it’s not worth it. I’ll just cheat my way through interviews and learn the skills that’ll actually make me great at the job.
In my two years of keeping tabs on r/cscareerquestions, I’ve seen hundreds of threads debating the merits of Leetcode style interviewing. There’s been a lot of insightful debate on the subject, but I’ve also seen a lot of people who have fundamental misunderstandings about why exactly this style of interviewing even exists. So, here I’m going to attempt to offer a thorough explanation of why Leetcode is even a thing at all, for all those out there who don't get why everyone is testing them on dynamic programming and graph theory.
Why Leetcode is a Thing:
The Software Engineering field is one of the most favorable for qualified job seekers, in general. Anyone with a Bachelor’s degree in a technical field who can prove they know how to code and have good social skills should have little problem obtaining a job in the field.
However, there is a very big exception to this general rule: big name west coast companies, otherwise known as the “Big N”. These well-known companies in San Francisco and Seattle get WAY more qualified applications than they have available positions. For example, about 1 in 130 Google applicants get an offer, per Forbes. This number is probably slightly more favorable for Software Engineering positions compared to other positions at Google, but you get the picture. Even a very well-qualified applicant faces long odds of getting an offer.
Let’s say Google wants to hire 1,000 entry level Software Engineers, and they get 100,000 applications. There may be ~30,000 applications that are completely unqualified and easy to weed out. But after they do that, they’re still left with 70,000 applicants for 1,000 spots. Most of these people will have roughly equal qualifications: About to graduate with a B.S. in Computer Science or something similar, 1 or 2 internships, a few small side projects.
How do you pick 1,000 winners out of a pool of 70,000 resumes that all look mostly the same? You interview them, of course. But normal behavioral interviewing is too easy, and won’t weed out nearly enough people. So another method is needed that can weed out a very large portion of the applicant pool, while still appearing fair and somewhat related to the job. Enter Leetcode!
Make all your well-qualified applicants solve 4 hard Leetcode problems. Maybe 10% of them will be able to solve all of them correctly and efficiently in a short period of time, and do a good job of explaining their answers. Now your pool just got narrowed from 70,000 to 7,000. It’s still a daunting task to narrow the remaining candidates down, but it’s now much more manageable.
Those exact numbers are just estimates, and certainly vary from company to company, but you get the idea: Google/Facebook/Microsoft/EveryOtherHotWestCoastCompany have to pick a small percentage out of a massive pile of nearly identical resumes, and Leetcode serves as an effective way of weeding out a majority of the competition in a way that’s (mostly) objective and (kind of) related to the job. That’s really all there is to it.
Why you probably shouldn’t mind:
If Leetcode was suddenly deemed an illegal hiring practice, your chances of getting hired at your favorite “Big N” company probably wouldn’t increase. These companies would still need to narrow down their massive applicant pools in a way that’s not terribly time consuming, expensive, or overly subjective. How would they do that? Maybe they put more weight on GPA. Maybe they put more weight on where you go to school. Maybe they exclude anyone who’s not a CS major. None of those things are good indicators of who is going to be a great engineer.
There are a few ideas I can think of that would most likely do a slightly better job than LeetCode:
Assigning some sort of coding test centered on solving bugs in a large codebase would be one example. But it would be extremely expensive and time consuming to design and grade enough unique versions of these tests to make them free from cheating.
Placing more emphasis on quality side projects would be another good tool. But taking the time to actually read through the code of thousands of personal projects and coming up with some objective way to judge whose is better seems insanely subjective and time consuming.
Long story short, there’s no “right way” to pick a small percentage out of a massive pool of very similar applicants. There’s no way to magically tell which 22 year olds with minimal experience will turn into amazing engineers and which will just be good engineers. The industry has settled on Leetcode. It’s bullshit, but that’s okay, because the alternatives are mostly bullshit, too.
So you hate Leetcode. What should you do about it?
You have two options:
1. Stop applying to Google/Facebook/Microsoft/Amazon/OtherHotWestCoastCompany. This is not the end of the world. There are tons of companies that you can easily get hired at without grinding hours of LeetCode. They will pay you extremely well, respect you, and give you challenging work. You may not be the coolest person at your high school reunion for saying you’re a Software Engineer at “random Midwest tech company nobody’s ever heard of”, or "non-tech company that has extensive software needs", but you’ll still have a much more stable and enjoyable career than most new college grads can hope for in 2018.
2. Grind LeetCode anyways. If you wanna work at to Google/Facebook/Microsoft/Amazon/OtherHotWestCoastCompany, you will probably have to excel at Leetcode. Yes, it’s bullshit, but the alternatives are bullshit, too. At least mastering Leetcode is a clearly defined, bullshit objective for you to work towards.
And in conclusion, I will add one last thought: If you don't think you can enjoy a software engineering career if it's not at a "Big N", you should probably re-evaluate whether you really like this field at all.
These companies would still need to narrow down their massive applicant pools in a way that’s not terribly time consuming, expensive, or overly subjective. How would they do that? Maybe they put more weight on GPA. Maybe they put more weight on where you go to school.
This sounds like the current paradigm in law, where if you don't go to a T14 school you've probably just wasted two years of your life and a large wad of cash.
Heres an unpopular opinion: I like leetcode and find it useful.
To address the “like” i like leetcode because I fell in love with programming because nothing ever felt as satisfying to me as cracking a puzzle growing up. All the other kids would be drawing or playing board games and stuff in our downtime and I was always doing sudokus. Coding is the closest thing Ive found that feels like solving a sodoku or a crossword puzzle.
As far as useful. I work for an AI start up and do a lot of data science/data manipulation work. We dont ask leetcode problems in interviews. Every day Im confronted with a problem that feels like a leetcode problem. And all of them can be solved in linear time with a little bit of ingenuity...
Well the other day a new hire asked me to diagnose an issue with one of their Data science scripts. I hit run, and 10 seconds goes by. I literally said “Oh so its not running at all?” And 10 seconds later it starts spitting out data.
Im sitting there thinking “wtf. This is literally one api call and doing a few operations through an array of ~10000 small objects. This should run almost instantly”
Boy was I wrong. They had 8 separate triple nested for loops. One for each object key. I literally couldnt have thought up a solution that inefficient if i wanted to. It could easily have been done in linear time.
I asked them if they knew about big o notation, they said yes of course. I asked what they thought this ran in, and they rightfully said n3 “but it shouldnt make that much of a difference”.
I asked them if theyve ever used leetcode, they said no but their friends have. I told them to do a couple easy problems that night and try and get the most optimal solutions and dont be afraid to look at the discussion to see other solutions.
That night they messaged me on slack saying theyre so embarrassed at all the code theyve been pushing. (Which doesnt get code reviewed because theyre just internal data science tools).
Leetcode 100% has value if you know how to use it. Sure readability > shaving off a few operations, but it teaches you how to think about problems in a smarter way. No college professor is going to take off points on your compiler project because you used a triple nested for loop instead of a hash map. But these things do matter.
Reading about a few companies that have started to phase out leetcode as part of the technical round. Wondering if others think this’ll be a trend and leetcode will be obsolete
For my POV, leetcode solving skills is useful in daily life because you encounter leetcode problems when you are writing ur code. So being skilled in leetcode problems, means that you will write ur code faster and better.
I said that in the cscareerquestion and got downvoted to everyone and they said that it's just a set of skill completely not useful for ur job itself.
Right now im writing a code for the scheduling of a truck that needs to go around to supply 6 shops and avoid that they go in stockout.
Im making various combination like supply 2 shops per day, 3 shops per day etc. and now im writing a code where im clustering the shops in group of 4. because we have 6 shops, the first group will be 1,2,3,4. The second day the cluster would be 5,6,1,2. The third day 3,4,5,6 and so on.
You guys can't tell me that this not a leetcode problem. This is a leetcode-like problem. if only i was skilled enough, i would have solved this project in 10 minutes, like those pros in youtube, instead im here writing stuff since this morning
I don't intend to ever work at a company for programming. The most I do is website jobs on the side. With that being said, is it necessary to grind LeetCode?
I tried a few today and I honestly just couldn't do them. Even the easy ones were stumping me.
If you ask me to make some software or a website though, I can easily do that. So what's the point of LeetCode? Just another fabricated gate of computer science?
Can't think of any real applications for those problems.
I'm not particularly new to programming, I've been doing it for about 6 years now (just means I'm familiar, doesn't mean I am good), and I think the reason why I've been so bad compared to other people is because I haven't challenged myself that much, and I thought coding challenges would be a good way to help me improve (with the added benefit of getting more prepared for interviews) does anybody know if this is a good way? If not, what do you suggest that I do to improve my programming skills and problem solving?
It's been a long journey of learning for me over the past years. Earned me some AWS certs and learned about a ton of concepts and tools. Currently studying for my SA pro and building the meta cloud resume challenge.. yet I can't help but ask myself am I truly mature as an architect? Do I have a strong enough understanding of how computers truly work to be able to preform well if placed at a large title in a company with a large scale ?
I feel like getting into competitive programming is gonna help stop these thoughts yet the time invested in getting good at it is long and maybe better spent learning other things. What are your thoughts on this ?