How I would learn Leetcode if I could start over

Поделиться
HTML-код
  • Опубликовано: 21 дек 2024

Комментарии • 694

  • @calvin_713
    @calvin_713 4 месяца назад +1136

    My Notes:
    1. Leetcode is hard, even for this guy.
    2. Repetition is the key, really practice and keep repeating.
    3. Internalize the fundamental algorithms(like bs, bfs, dfs, etc) so you have more brain capacity to analyze hard problems
    4. Be creative and think hard on creative solutions/test cases
    5. Even smart ppl won't get great at leetcode without practicing.
    That is such a relief to me knowing that I'm not the only poor kid struggle with leetcode to get a job in this market, thank you for the vid!

    • @fazalshaik3557
      @fazalshaik3557 3 месяца назад +2

      thx

    • @wolfmib
      @wolfmib 2 месяца назад +1

      Nice summary , save a lot tk time 🎉
      if you can add 6. suggestion ,
      that’s greater

    • @eshaanchaturvedi7344
      @eshaanchaturvedi7344 2 месяца назад

      can you tell me all the fundamental algorithms to practice?

    • @rubyciide5542
      @rubyciide5542 Месяц назад

      Nibba I can't even do 2sum after like the 20th tutorial

    • @АндрейСарнавский-у9т
      @АндрейСарнавский-у9т 22 дня назад +1

      there is no need of leetcode is first thing. Second thing most used algorithms are Graph Algorithms, to reach graph algorithms on leetcode will take years. Don't waste you time , better learn graph algorithms, string algo and basic patterns for solving basic algorithms. Wasting time on leet code with 100 same algorithms for the same simple problems is useless. bfs, dfs, is minimum base. With this graph basic algo you won't solve 99% of graph algorithms. MAx Flow min CUt, dijkstra, Bellman Ford, Kruskal, Tarjan, Kosaraju etc that is graph algo.

  • @thierrybeaulieu4403
    @thierrybeaulieu4403 6 месяцев назад +2526

    Watching Neetcode talk about Leetcode > Actually Leetcoding

  • @nikhilseth4144
    @nikhilseth4144 5 месяцев назад +212

    Summary:
    1) Start with basics and Easy Questions.
    2) Repetition is a key.
    3) Get good with the algorithms first such as Binary Search, Sliding Window et cetera by doing it again and again and then apply it to the questions.
    4) Ask Why while solving the questions - Why this approach or why this solution ?
    5) Make notes or give comments.

  • @akashverma5756
    @akashverma5756 6 месяцев назад +1051

    Practice is the only thing that can make you pro at anything. Giving bare minimum can make you pass college exam, but not real life exam such as Interview.

    • @programmingloop7
      @programmingloop7 6 месяцев назад +27

      Practice doesn't make perfect. Practice makes permanent

    • @hittilp9902
      @hittilp9902 6 месяцев назад +4

      why did this hit different

    • @gumbilicious1
      @gumbilicious1 6 месяцев назад +16

      this resonates, but i also feel you are giving the professional world a bit too much credit

    • @davidchristenes9062
      @davidchristenes9062 6 месяцев назад +7

      When I read those comments the only thing I can think off is "what college you went to??".
      My work is definitely much more easier.

    • @VARADHARLIKAR-ul1oc
      @VARADHARLIKAR-ul1oc 6 месяцев назад +1

      ​@@programmingloop7atleast it takes u somewhere better then u are at right now😊

  • @オショニック
    @オショニック 6 месяцев назад +475

    Repetition is a powerful tool for mastery. You build a solid foundation by repeatedly implementing core algorithms-such as binary search, DFS (Depth-First Search), BFS (Breadth-First Search), and sliding window.

    • @UserSo4reUsu75ry
      @UserSo4reUsu75ry 5 месяцев назад +2

      I'll ask more specifically.
      There are two tasks: "11. Container With Most Water" and "42. Trapping Rain Water". Having found out the solution the first problem, I was able to reproduce it 7 months later in 40 minutes (alas, I'm slow on the uptake). Having learned the solution to the second problem, I will not be able to reproduce it, because it is not obvious to me. Unfortunately, I don’t know how to convince the brain to understand what it can’t come up with.

    • @Galuche1L1U
      @Galuche1L1U 5 месяцев назад +4

      I'm fine with those but dynamic programming is fucking me up.

    • @Anonymous-ri4mk
      @Anonymous-ri4mk 5 месяцев назад

      @@UserSo4reUsu75ry try like understanding how the algorithm works completely then do it again going in blind is fine but like algorithms are not something you can learn with just the solutions or the videos solutions in leetcode u gotta search it up and understanding it via youtube, google, github copilot(recently my friend recommended this i havent tried but it is apparently better than chatgpt) just keep looking for information until you fully understand how to apply it

    • @egg-mv7ef
      @egg-mv7ef 4 месяца назад +4

      leetcode is worthless. you learn 10x faster by just making projects that utilize these algorithms than mindlessly grinding them like a monkey at the circus.

    • @Anonymous-ri4mk
      @Anonymous-ri4mk 4 месяца назад

      @@egg-mv7ef a projects does help but leetcode just help your problem solving skill imo idk ever since I tried leetcode I can definitely see the difference it is good for people who don't have super good problem solving skill to develop a more clear process of thinking when coding

  • @youreyesarebleeding1368
    @youreyesarebleeding1368 6 месяцев назад +27

    Leetcode is like going to the gym. If you hit the gym only a few times a year, you aren't going to make any gains. If you do a workout just once, then it's weeks before you do that workout again, you'll be right back where you started. You have to do it consistently and repeat the same types of problems over and over to make gains.

  • @asagiai4965
    @asagiai4965 6 месяцев назад +227

    Having a good knowledge about stacks and queues will give you an edge on dfs and bfs, respectively.
    Recursion is a good thing to know, too.
    The problem is that some people jumping the gun, when they haven't grasped the underlying concept of dfs, and bfs?
    It's like how you know 456 if you don't know 1,2,3

    • @nousquest
      @nousquest 6 месяцев назад +11

      You know 456 if you loop in reverse

    • @samuraijosh1595
      @samuraijosh1595 6 месяцев назад +1

      Use python and other functional supported languages to understand recursion better

    • @asagiai4965
      @asagiai4965 6 месяцев назад +1

      @@samuraijosh1595 master merge sort

    • @vigneshs1852
      @vigneshs1852 6 месяцев назад +1

      Yess...Jumping to DP without knowing backtracking.... I done that mistake before

    • @Anonymous-ri4mk
      @Anonymous-ri4mk 5 месяцев назад +1

      this ^^ i was going in blind and i totally wasted my time had to go and start from hashmap, sliding windows.... realise i was going in without even understanding how to apply or how the solution works 💀wasted a lot of time

  • @GenericInternetter
    @GenericInternetter Месяц назад +5

    16:22 examples! yes!
    one of my high school teachers (science? maths?) taught me to always test what you're doing with seven samples:
    the min and max "correct" values, the "middle" (or expected) value, values that are halfway between the middle and min/max, and finally values that are a little past the min and a little past the max (outside the "correct" range).
    this advice has helped me immensely over the years with many many things, even in daily life.
    for example: if i'm lerping an input value between two target values 50 and 125, i'd estimate (guessing *at a glance* without calculating) that the values would be 45, 50, 70, 90, 110, 125, 130
    to ensure everything is working correctly, i'd input 0.0, 0.5, 1.0 etc and see if the outputs are as expected.
    if i see a 200, a 0, or a -50 show up, i instantly know something went very very wrong with the input or how it is processed.

  • @s8x.
    @s8x. 6 месяцев назад +434

    Leetcode is about memorizing how to start a problem but not memorizing the lines of code. And just learning data structures and algorithms is not everything. EDIT: also know helpful builtin methods

    • @zikorajoe7093
      @zikorajoe7093 6 месяцев назад +1

      So how do you start problems

    • @draskyl9468
      @draskyl9468 6 месяцев назад

      ​@@zikorajoe7093understanding the problem first, and how to implement the corresponding algorithm/data structure for that specific case. If I give you a problem x and tell you that it can be solved with a basic hashmap You could know all the functions and characteristics that a hashmap has, but if you do not understand the problem and do not know how to use the tools that a hashmap offers you for that problem, you will never be able to solve it. You need to think.

    • @l501l501l
      @l501l501l 6 месяцев назад

      @@zikorajoe7093 identify the potential usage of ds or algorithms for the problems.

    • @bassycounter
      @bassycounter 6 месяцев назад +4

      @@zikorajoe7093i’m not that great with DSA (yet!) but I think it’s just a matter of being able to think of the problem at hand, figuring out what logic would be most appropriate for the problem, like recursion or loops or whatever, and going from there, implementing the algorithm that makes the most sense (or what may make the most sense to you at that point in time and doing it that way until over time, you become aware of better solutions)

    • @namankothari1129
      @namankothari1129 6 месяцев назад

      could you also mention a few built in methods that we should know. It would be very helpful, thanks!

  • @bigbigdog
    @bigbigdog 6 месяцев назад +10

    Thank you for this video. I always keep this Bruce Lee quote close to my heart:
    "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times."
    It's been a tough few months after layoff with job search and leetcode grinds on top of taking care of the family. But videos like yours keep reminding me to continue the grind and better prepare myself for the challenges ahead.

  • @manne4795
    @manne4795 6 месяцев назад +53

    I'm really struggling with so many monotonic stack problems and needed to hear this. Thanks!

    • @JohnSnow-r1e
      @JohnSnow-r1e 6 месяцев назад +4

      bro what a coincidence i am in the same situation

    • @manne4795
      @manne4795 6 месяцев назад +4

      I feel the struggle. Monotonic stacks are especially tricky, in particular some problems on leetcode. It does get better over time, but even after doing like 30 problems I'm still not fully comfortable with them. Similar to DP in that regard.

  • @narendrakumariitb
    @narendrakumariitb 6 месяцев назад +20

    Words of wisdom from a pro leetcoder. 18 mins of priceless advice. Thanks

  • @veronicasmemories
    @veronicasmemories Месяц назад +3

    this was surprisingly optimistic. Sometimes it's a nice reminder that what we're learning is hard but if we walk through it enough times it'll get easier just like everything else we've learned.

  • @s8x.
    @s8x. 6 месяцев назад +39

    Leetcode sums up everything u learned in a CS degree all in one assuming u know the syntax: How to think, the trade offs, then the actual programming part

    • @Anonymous-ri4mk
      @Anonymous-ri4mk 5 месяцев назад

      how to think is a big factor when solving the problems ngl like i used to think super complex ideas realising it wont work the idea is to be familiarized with the code and how to manipulate before you try to fix a problem without proper understanding it is like trying to say something in broken english which u can understand but others wont understand

  • @theFifthMountain123
    @theFifthMountain123 6 месяцев назад +33

    I’m a senior Dev but don’t want to be complacent. Want to keep grinding and will hopefully get into big tech soon. Your video showed up on my feed; will start my Leetcode journey again.

    • @peregrin71
      @peregrin71 5 месяцев назад +3

      Just don't. Leetcode will NOT teach you any of the real important software engineering skills : Writing readable, maintainable, and unit testable code. Competitive coding should not even be called that... it is only about training problem solving skills (and not much of it really relates to things you will do in your software development career)

    • @Anonymous-ri4mk
      @Anonymous-ri4mk 5 месяцев назад +4

      @@peregrin71 it does improve like the way u think when coding thou so maybe more efficient? since you have to pay attention to time complexity, algorithms and so on

    • @BennyDeeDev
      @BennyDeeDev 2 месяца назад +1

      @@peregrin71 Most corporate Code is just glueing things together, he is already a Senior Dev yet you are advising him to learn "real" important SWE Skills. Hilarious

  • @t74devkw
    @t74devkw 6 месяцев назад +143

    Algorithms and data structures, as required in technical interviews and as present in LeetCode, are the subject matter of master’s programs in computer science. Everything beyond a simple binary search is, indeed, not an easy topic at all; it is a very academic topic. What makes it even harder is the fact that the average software engineer, most often than not, has never even opened calculus (e.g., Stewart or Spivak) and algorithms (e.g., Cormen or Skiena) textbooks; it’s only natural that all those algorithms feel alien to someone seeing algorithms for the first time.

    • @WoWUndad
      @WoWUndad 6 месяцев назад +10

      uh bro its not masters, if you want an internship within your first 2 years you need system design, leetcode mediums, and real work projects that arent basic projects. you're supposed to do calculus>discrete math>computer arch so you know how binary works on a motherboard before python. if you dont youre not an engineer at all youre a struggling self proclaimed coder
      theres a lot more to explain to become a full stack scalable dev that can design and lead sdlc and preferably have a few monetizable niches by year 4 but your comment is a big yikes

    • @greenprincess
      @greenprincess 6 месяцев назад +37

      @@WoWUndad wth are you on about

    • @itsjustramblings
      @itsjustramblings 6 месяцев назад +8

      The coding assessment don't test you algo knowledge but primarily if you can practice and recall from memory when you need to apply algorithms. I come from a non-cs background but even i knew lot of ds and algos but i never faced any hard complicated puzzle that require more than 1 algorithm to solve until about mid-2010's. Once an interviewer asked me a fib series with memoization that allowed me to get past the first round. These days interviews specifically ask hard type problems to weed as many candidates as possible, it is not you but the market. And interviewers are also very impatient and hard to handle these days, if you make a tiny mistake your whole work experience will questioned. It is pathetic.

    • @levelup2014
      @levelup2014 6 месяцев назад +27

      @@WoWUndad I got my first internship through networking at my CS club and applying my skills to 2 projects, the technical interview was simple and they spent more time asking me about my projects and walking through my though process and challenges.
      Humble yourself, your attitude is common amongst a certain type of CS student that always translate to a negative person to work with when you enter the workforce.
      You still have time to correct this as I'm assuming your still in college

    • @programmingloop7
      @programmingloop7 6 месяцев назад +6

      @@WoWUndad Aren't you proving what he said? You said someone needs calculus in order to do well, that's exactly what he said. You said someone needs a rigorous academic background in order to do well, that's also what he said. You're literally repeating the same thing in different words and then saying his comment was "a big yikes". I don't get you at all

  • @TwiceVisible
    @TwiceVisible 6 месяцев назад +304

    Leetcode is hard. Copying fireship thumbnails is easy.

  • @disableblue883
    @disableblue883 6 месяцев назад +9

    Your points does makes sense. I tried Leetcode many times and gave up eventually, maybe in future I will try again keeping these things in mind. Nice content.

    • @Anonymous-ri4mk
      @Anonymous-ri4mk 5 месяцев назад

      starting looking into discrete math and algorithms really helps a ton and make sure u know python concepts up to OOP u should be good to try leetcode again should be faster in thinking up the ideas also try like doing more brain stimulating activities keep thinking i realise this makes a huge difference in how you think like just try looking for mistakes in other people's code etc. keep it running

    • @egg-mv7ef
      @egg-mv7ef 4 месяца назад

      @@Anonymous-ri4mk leetcode is worthless. you learn 10x faster by just making projects that utilize these algorithms than mindlessly grinding them like a monkey at the circus.

  • @ballroomdru
    @ballroomdru 6 месяцев назад +30

    Thank you so much for posting this. This is something that I need. You don’t need Leetcode to KEEP your job, but you do need it to GET a job.

  • @Hmz44
    @Hmz44 6 месяцев назад +1

    If you leave RUclips I'm quitting programming. Bravo for explaining how to approach the actual learning. Thank you.

  • @licokr
    @licokr 6 месяцев назад +426

    I was lying on my bed and got up to leave a comment here, my laptop was on my desk... You literally transformed my developer life, in a perfect way.
    I started my career as a web developer 3 years ago. After three months, I took a new React project, since then, I have been working as a Frontend developer.
    Last year, I moved abroad and started to seek opportunities abroad.
    In my country, I already had my job and had network, I didn't worry that much to get a position, more like how much I could get or what company I worked for.
    One year ago, I started to apply for jobs and I got rejected by all companies I applied - Language may've been the biggest problem though as I started to talk in English since last year.
    I didn't want to miss opportunities if I got. I tried to solve leetcode several times but I didn't find any interest in it.
    Actually, I was the person thinking code test is not practical to apply real projects and maybe a waste of time.
    As a frontend developer, I may've focused on frontend technologies, builders, cloud platforms and stuff like that or better to study DS, and someday, your video came out on my youtube list.
    Thanks to the algorithm. I actually saw some of your videos early last year but I couldn't understand at all due to my Enlgish proficiency, and last Winter, when your video came out on mylist, I clicked it and I was able to understand a bit and watched your videos.
    It was an absolutely amazing moment. Your explanation was SO easy, after watching your videos, every problem felt easy to be solved.
    At around that time, there was a company I was supposed to join but the company asked me to withdraw the contract a couple of weeks before starting to work, they said budget problems but I don't think so. After that, I had to go back to my country, but I really didn't want to GIVE UP.
    On the first day, I came back to my country, I started to solve Top 150 problems with your videos. As I remember, I couldn't solve most of problems without your help. And at some point, I started to solve some problems by myself and I noticed changes inside me.
    I started to think first, and come up with some solutions. Like you said, sliding windows, dfs, bfs, some other stuff, while solving problems, I got used to those concepts.
    I don't need to think about how to implement those stuff. I could just use it as my tool. It's not about memorizing solutions.
    It's about how to define a problem, how to see a problem and how to apply knowledge I have to solve the problem. It's all about thinking.
    I also noticed that I apply the same way to solve leetcode problems, when I create UI components in React, write logics and approach errors.
    I'm still not goot at leetcode and still need to improve A LOT, I know but I felt the positive changes and now I know if I do it, I could do better as time goes, as I put more effort on it.
    Thank you very much. I'm still looking for a job now but it does not matter, I just do code, I like it and I like those changes.
    Once again, thank you very much for sharing your experience, knowledge and thought with us. Good night 👍

    • @ozgurpeynirci4586
      @ozgurpeynirci4586 6 месяцев назад +4

      What country are you from and where did you go to?

    • @aiSage48
      @aiSage48 6 месяцев назад +28

      This is really inspiring but please use paragraphs; a wall of text is really difficult to take in...
      Other than that, it's really nice that you feel more confident in your abilities now, and I hope you soon land a job where you can thrive and be happy.

    • @licokr
      @licokr 6 месяцев назад +11

      @@ozgurpeynirci4586 I'm from South Korea and I was in Germany last year. The company I got the final offer from was based in Vienna.

    • @licokr
      @licokr 6 месяцев назад +21

      @@aiSage48 Oh, man. I didn't know this looks this mess. Something clicked in my head, and I just wrote everything I wanted to say and went to bed. Thanks for the comment and supportive words!

    • @madhu86918
      @madhu86918 6 месяцев назад +8

      Ah Man i really was hoping by the end of your message that you landed a job at Google or something.. anyway best of luck

  • @gabegutz1151
    @gabegutz1151 4 месяца назад +6

    Same. I did pre-med. Now in CS. Leetcode def made pre-med seem like a breeze.
    Programming requires mathematical creativity.
    Thanks for this video, sir.

    • @FarmerGwyn
      @FarmerGwyn 25 дней назад

      Only if you're solving mathematical problems

  • @sanjeevtamang2123
    @sanjeevtamang2123 6 месяцев назад +17

    you exactly pointed what I was lacking and have been doing. thank you so so much for this video.

  • @mangoherpson
    @mangoherpson 6 месяцев назад +5

    The older i get the more I realise that this really is the approach you need to life. I practice guitar everyday in order to improve and yet I failed to see how the same concept applies to pretty much anything you want to get good at. Thanks for the wake up call :)

    • @miramar-103
      @miramar-103 6 месяцев назад +4

      with leetcode its more like having to spend the time learning guitar in order to become a pianist

    • @mangoherpson
      @mangoherpson 6 месяцев назад

      @@miramar-103 yep pretty much, prove how good you are at guitar so you are allowed to be paid to play piano 😭

  • @adityamwagh
    @adityamwagh 6 месяцев назад +6

    This is something that I have concluded too. I have been doing LC on and off since the last few years, but I took a concept and did a lot of questions about it. Now I feel I have a good grasp on it. I think people blindly start the NeetCode 150 or Bland 75 lists without first grasping the fundamental concepts properly first.

  • @efenestration
    @efenestration 6 месяцев назад +22

    Thanks for expending the community of competitive programming/leetcode/whatever-this-thing-is-called.
    I recall finding Euler Project in 2019 and wanting to complete it. But I was just starting to coding back then and didn't really gone into it. Now that I graduated and applying to jobs. I discovered that I am awful and neither creative at applying DSA.
    I am filling the all these gaps with your service and planning to get really great with it. This does feel like a nice hobby to keep-to while also doing development full time.

  • @raindev_
    @raindev_ 6 месяцев назад +2

    This is some solid advice. One thing I'd add is to try hard solving a problem yourself before looking at the solution. It much improves the understanding of the problem even if you don't end up coming up with a solution. The process is frustrating and uncomfortable though :)

  • @Hachiman-nf6zc
    @Hachiman-nf6zc 6 месяцев назад +17

    4:22 "back in the old day, 2019" damn

    • @KI-DataGuy
      @KI-DataGuy 2 месяца назад +1

      That hit me hard, bruh, it was only a few years ago

  • @mlk8852
    @mlk8852 6 месяцев назад +33

    I'd recommend starting with Exercism, as the problems are much more manageable and you'll learn your language and problem-solving skills in a step-by-step manner.
    Personally, I followed this approach and had never attempted LeetCode before watching this video. Yet, I was able to solve the median array problem in just 20 minutes.
    I think this is a great way to develop your problem-solving skills.

    • @computersciencestudentriverbat
      @computersciencestudentriverbat 6 месяцев назад +3

      Exercism is so good. I love that platform and their RUclips channel. NeetCode & Exercism should do a collab.

  • @streetzoom
    @streetzoom 19 дней назад

    Thank you so much. You've given me a whopping amount of motivation to do all of this LeedCode stuff. Keep going with your videos.

  • @education-xn8bk
    @education-xn8bk 6 месяцев назад +1

    Advice on how to tackle leetcode .
    leetcode - system , methodologies , process 3:04 ,
    Steps : Do bunch of repetition like - when you used to practices maths multiplication . many times .
    first target : practices core algo - like binary search , dfs , sliding - implement 5 times 10 times over a period of month
    second target : why somethings works ? why algo works ? - spend a little bit time think , curious about it .
    walkl thorough an example using paper and pen . using creative solution , using edge cases .
    important thing that was done when you were kid - handwritten notes . explainig your thought process , repetition , boring repetition like math enough times . Structures like one hour for english , 1 hour for maths works .

  • @ShinAkuma
    @ShinAkuma 4 месяца назад +12

    I'm once again preparing for a job switch and I am now unable to solve the problems I have already done previously 2-3 years ago. All the basic algos have disappeared from my head now I'm starting from zero once more.

  • @1TL1
    @1TL1 6 месяцев назад +783

    For me leetcode is harder than algebraic geometry

    • @leafknives
      @leafknives 6 месяцев назад +31

      it definitely is

    • @andrewchang7194
      @andrewchang7194 6 месяцев назад +104

      Algebraic geometry is intuitive once you study prerequisite mathematics enough. No amount of fundamental data structures and algorithms prepares you for the type of mind bending solution path that leetcode sends you down 😂

    • @zanies6288
      @zanies6288 6 месяцев назад +4

      For me no. Maybe bcz I never seriously studied algebraic geo lol

    • @bestredditstories1158
      @bestredditstories1158 6 месяцев назад

      What is algebraic geometry? I mostly use trig and calculus

    • @Apuryo
      @Apuryo 6 месяцев назад +10

      ⁠it's an upper level pure math course, most people never study it.

  • @OrphanedZombie
    @OrphanedZombie 6 месяцев назад +18

    I also like the way you enunciate. Your clear explanations become even better when you speak clearly.

  • @andreab04
    @andreab04 Месяц назад

    answering questions really goes down to following these steps:
    1. Walk through test cases to clarify the problem and what it is doing.
    2. Ask clarifying questions, especially about edge cases (a unique/unclear way to handle problem)
    3. Pattern Cognition: Big-O Notation (time/space complexity), DSA and identify what to use
    - Check constraints
    4. Implementation: practice the patterns
    5. tackle ways to debug (is it a syntax or implementation error?)

  • @rashzh5502
    @rashzh5502 6 месяцев назад +7

    "I fear not the man who has practiced 10,000 leetcode problems once, but I fear the man who has practiced one problem 10,000 times." @Neet Lee

  • @Archsage
    @Archsage 4 месяца назад +1

    This was an absolute bombshell of growth advice.
    Absolutely phenomenal! Thank you so much

  • @pastori2672
    @pastori2672 6 месяцев назад +7

    you're right it's all about pattern recognition you see the problem, realize its a bfs/dfs/dp ...etc and solve it it's not like your expected to come up with a new algorithm and even if you are its probably just a combination of the popular ones, you just need consistency

    • @zanies6288
      @zanies6288 6 месяцев назад +1

      That's why you do codeforces, cuz problems aren't that repetitive there

    • @pastori2672
      @pastori2672 6 месяцев назад

      @@zanies6288 do you mean contests ?

  • @Omsamara6
    @Omsamara6 6 месяцев назад +57

    Reminds of the Woodpecker method for chess training.
    Spaced repetition of the same problems to drill core patterns into your head. I’m surprised it’s not talked about more for programming

    • @joedorben3504
      @joedorben3504 6 месяцев назад +6

      Because none of these methods with chess training actually work (as far as what people want). The reality is, your innate talent is gonna cap anybody who wants to get good. Everyone plateaus around some natural limit, for 99.99% of people who get into chess, that limit is gonna be around 1600-2000, however when someone reaches that level they're gonna want to become a master (2200) which is a far more significant leap than what came before. And if/when anyone becomes a master (again, already extremely few players out of the general population of players), 95% or more won't be able to get much stronger than that. Even just a jump as simple as CM to FM is massively hard for many, and going to IM is huge too. When you reach IM, it feels like GM is within reach, but again it's a massively wide gap which most do not ever manage to cross. But to be honest, even many people who train chess won't even make 2000, which isn't that high anyway. Most who did not play from childhood are going to cap out around 1400-1800, which again is far below where anyone who gets into chess would want (although in online rating they can hit much higher due to the volatility there). Bottomline is, no chess training method is going to be widely or generally used for other fields, because in most cases, it won't even work for chess the way its users want it to.

    • @Omsamara6
      @Omsamara6 4 месяца назад

      @@joedorben3504 What complete nonsense lol. The woodpecker method doesn’t work? I’ve personally used it with amazing results. Thousands of others (including GMs. Christopher Yoo big example) with amazing results

  • @peregrin71
    @peregrin71 5 месяцев назад +36

    Leetcode is only "imporant" because some bigTech companies use it as a first screening tool. It only addresses a very tiny bit of what a software developer really need to be able to do. Most important are : 1) Be able to write readable/maintainable code. 2) Write unit testable code. 3) Do not optimize prematurely. 4) Be able to work in a team. In fact I would probably not hire most competitive coders, they learned a very low quality of coding and much of that kind of code wouldn't pass any decent codereview. So dear developers out there, being able to solve leetcode puzzles is only one (little) tool in your toolbox :)

    • @sondosahmed4870
      @sondosahmed4870 4 месяца назад

      Do u think it’s not that important ? I am really bad at it and i feel miserable

    • @SaywhateverI
      @SaywhateverI 3 месяца назад

      @@sondosahmed4870its very important for getting and passing interviews. Although soft skills are equally as important

    • @thepalerider1758
      @thepalerider1758 6 дней назад

      ​@@sondosahmed4870 it's important but not to the extent that you focus only on it.
      The benefit of leetcode is not solving problems, its what it actually does to your brain.
      You go to the gym to get stronger muscles, similar to leetcode. You get stronger at thinking and problem-solving skills doing leetcode problems, but if you're goal is to become a software developer, there is a lot more to learn then simply solving problems.
      Examples:
      1. leetcode problems are solved in basically one method but that doesn't work in a project because in projects, you have to write a single method that has a single purpose (ex: a method simply to calculate 1+1 and if you want to print it, you create another method to print it).
      2. Building this many single purpose methods/functions require managmenets skills. How can all these methods/functions connect with eachother and work togather to achieve the desired result.
      3. Namings. In leetcode problem, it really doesn't matter how you name your method, but in projects, names are very important because you and other developers can understand them and what their purpose is instead of spending a lot of time everytime you go back to see them.
      4. Documentation
      5. Requirements and System Analysis.
      6. System Architecture
      And I can go on and on...etc.
      And actually, even projects is basically, you trying to solve problems and one project can have many problems you need to solve but the process is very different than leetcode.
      Why? Because problems in your project affect the whole system. So you have to make sure that when solving a problem, it doesn't affect other solutions otherwise you will end up redoing all your project because it turned out a mess (I've been here before haha).
      I haven't started leetcode yet but for me, the best way for a software developer is to combine solving leetcode problems and doing actually projects. You can solve like 2 or 3 problems everyday and the rest of your time, you focus on core software engineering skills.
      Good luck buddy.

  • @development6374
    @development6374 6 месяцев назад +11

    Neetcode's videos literally helped me get a job in FAANG in 2022. Listen to him and Git Gud!😄

  • @aaronwalker5493
    @aaronwalker5493 6 месяцев назад +7

    One of the most important videos I've ever seen on this subject. Thanks man!

    • @andriabavadedisaak
      @andriabavadedisaak Месяц назад

      Лучшее обучение, поддерживаю Смоука!😈

  • @cameronbweston
    @cameronbweston 6 месяцев назад +7

    Dude, you are the man. This is such invaluable and helpful wisdom. Thanks for sharing.

  • @chi94
    @chi94 6 месяцев назад

    Very raw. Great advice. I've done about 100 leetcode questions now and even I still hit a brick wall

  • @LBCreateSpace
    @LBCreateSpace 6 месяцев назад +10

    Thanks so much for posting this. Definitely gives hope ❤

  • @ekponoambrose1909
    @ekponoambrose1909 3 месяца назад

    This video did it for me. I have been writing software programs for 6+ years now for small startups and DSA has been the impediment to breaking into big companies because I just go blank whenever I get DSA questions. Saw this video some weeks ago and started practicing DSA fundamentals repeatedly and I can see my confidence level growing and have gotten a little bit better than before. I can't believe I blindly thought I would be good at something without practising it regularly. Thank you NEETCODE

  • @jain-d1
    @jain-d1 6 месяцев назад +3

    Thank You Singh sahab. I have been thinking about the why myself lately, and once the why is clear, it is just fun all along.

  • @christorok1906
    @christorok1906 Месяц назад

    This actually makes sense. Currently struggling with some “easy” multi pointer problems and feeling stupid.
    But when it comes to reversing or even MERGING a linked list, no problem! Cuz I know Linked Lists well. It’s trivial.

  • @PerryCodes
    @PerryCodes 5 месяцев назад

    Woah... holy "come to an end really quick" on this one! This was in another tab and I thought I'd lost internet lol

  • @brhnkh
    @brhnkh 6 месяцев назад +2

    The most useful advice/observation(s) happens at 17:20 onwards

  • @zackm5693
    @zackm5693 6 месяцев назад

    You truly have the best interview content on RUclips

  • @ChrisKSP
    @ChrisKSP 3 месяца назад +1

    In high school I was taking an Algebra 2 matrixes test and ran out of time. My teacher chided me for being smart enough to answer the questions I did properly but not practicing my homework enough to do the test assignments fast enough.
    I think the same lesson is mentioned here. If you want to be able to solve medium questions faster, you need to be practiced at the easy questions that you can get the assignment done faster in a 45 minute interview where you only have 20-30 min to code.
    And, in a job, it's not so bad to also be able to do fundamentals quickly either. Even if you're not frequently using binary search in your day-to-day, it's still helpful to be able to do a lot of coding tasks quicker because the fundamentals are fresh.

  • @minelovesjc
    @minelovesjc Месяц назад

    This is so true, Most programmers teach themselves and it is challenging because you don't know where to start and where to go after that. It is important to understand the basic algorithms before we attempt to solve a real life or close to real life problems.

  • @justsomeguy8385
    @justsomeguy8385 4 месяца назад

    This is great, thank you. I learned binary search once and then moved onto the next algo. I didn't realize the trick was to grind it until it's burned into my brain so I can focus fully on the rest of the problem. Now I'm going to work on implementing those algos in every language I'm comfortable with(C++, Go, Python, and JS) until the algos are second nature to me. Then I'll move on and see what other algos people are recommending.

  • @younussaberi8768
    @younussaberi8768 5 месяцев назад

    Thanks for sharing!!. At the end of the day, only practicing and repetition can help to level up and get good at Leetcoding

  • @Codewithvick
    @Codewithvick 5 месяцев назад

    One of the best videos explaining Leetcode complexity.

  • @smellthel
    @smellthel 4 месяца назад +2

    I just started Leetcode. I was humbled so much lol.

  • @valentinrafael9201
    @valentinrafael9201 6 месяцев назад +3

    I also play chess and do chess puzzles for fun. There is a method there called "woodpecker method". You solve a chess problem, and then you redo it 10 times before moving to the next ( refreshing the table so you don't see the moves ). It works especially well when the puzzle is longer and has more moves, because when you redo it, you really have to understand it before attempting again.

  • @RomanTokarenko
    @RomanTokarenko 4 месяца назад

    Mate, you are really good in finding these common principles of working with Leetcode. Thank you.

  • @aadityakiran_s
    @aadityakiran_s 17 дней назад

    This is correct. This concept of abstraction is what's useful when you attend high level interviews like that from Google.

  • @TurtleOrTurtel
    @TurtleOrTurtel 3 месяца назад

    So encouraging and makes sense. Thanks for sharing!

  • @mclwizlon
    @mclwizlon 5 месяцев назад +2

    You're really good at articulating your thoughts clearly. That's a skill not easily taught unfortunately

  • @Hys-01
    @Hys-01 6 месяцев назад

    The 'mistakes' you discussed here perfectly described my current approach to LC. You provided such a quick and concise way of fixing it too, thanks a lot Neetcode!

  • @R7ram
    @R7ram 6 месяцев назад +1

    Felt good when u said "its not your fault"
    thanks man helpfull insights 🤙🏻

  • @Siroitin
    @Siroitin 6 месяцев назад +1

    It is also important to understand the "Leetcode mindset". It is similar to when you are trying to understand what your teacher wants you to learn and how to write the "correct answers"

  • @VaibhavPrasad
    @VaibhavPrasad 6 месяцев назад +2

    Consistency and practice is something we often ignore, it was really good watching u explain all that in such detail. 💯

  • @wenxicheng7847
    @wenxicheng7847 Месяц назад

    This is the first video I watched from you. And I just wanna say. So fuxxing true

  • @akshatmishra9574
    @akshatmishra9574 6 месяцев назад +1

    Just What I needed after not being able to solve basic problems .....correct me if I missed something : - Major Learnings from this video :- 1) Work On Basics 2) Have a methodology 3) If you learn from a solution ....just practice the same code next day 4) Repeat and Keep practicing 5) those questions day in and day out 5) This will only take you to a certain level above which you need to have a curiosity to know why a particular way code was written .

  • @sahu_SuMiT
    @sahu_SuMiT 4 месяца назад +1

    Awesome and I am watching it for the third time without any skipping

  • @FluffersMcFluffleton
    @FluffersMcFluffleton 5 месяцев назад

    What got me back into this was actually using DFS in a real world design of building unique paths through a visual drag/drop graph. I'd really pay for something that did this with real projects. Here's some that ended up being real for me:
    1. Build a graphical UI that calculates paths through the nodes via the edges and executes a predefined action on each node.
    2. Compare the contents of two files. If a line is present in the second file but not the first, treat it as an insert operation. If it is not present in the second but is in the first, treat it as a delete operation. If it is present in both but any values after the first in the csv line are different, treat it as a modification.

  • @altgov3en
    @altgov3en 6 месяцев назад +1

    Hooah! This video motivated me to go back to basics!

  • @jloiterer
    @jloiterer 2 месяца назад

    Love your stuff. One thought I had about this was that other subjects such as math are taught when you are very young. Learning things while young is simply easier. Also, to be honest I've learned - and then forgotten - most of the algos because I just never used them on my work. I've been a professional software engineer for almost 30 years. I wrote my first programs 43 years ago.

  • @jaisuriyar5259
    @jaisuriyar5259 5 месяцев назад +1

    Thank you for making this video. Helped me confirming I'm on the right path.

  • @tanmesh2820
    @tanmesh2820 3 месяца назад

    you unlocked my thinking regarding this ! Thanks bro

  • @theawarescorpio
    @theawarescorpio 4 месяца назад

    What you are teaching is how to learn, important stuff, thank you :)

  • @lukwagoimmanuel3051
    @lukwagoimmanuel3051 6 месяцев назад +1

    Immanuel from Uganda hia
    I like the way you've talked about the repetition and the learning of basics before you grind LeetCode part of it
    I gat U.......

  • @okATAnTEDiGeRNin
    @okATAnTEDiGeRNin 6 месяцев назад +2

    Thanks man. This video is truly a gem. I get your ideas and will act accordingly.

  • @amitahuja5541
    @amitahuja5541 6 месяцев назад

    Feels like teacher talking to me someone who cares for your success very Nice!!! , Thanks

  • @Xcaliber_15
    @Xcaliber_15 6 месяцев назад

    I am greatful to have come across this video and as you mentioned about the habits we had as a kid can make so much difference if you countinue to do so as an adult, it was a video I needed most and covered the points why I am lacking as a leetcoder. I was doing well in math and physics like you but find coding very hard and boring, the thing I forget here is that as a child I used to practice a lot and thought of myself as a talented indivisual cause I was able to solve problems related to math and physics, so the "I am talented" mindset took me nowhere in my coding journey but they say better late than never so I will surely follow your advice :). Also wanted to add a point that if you are really good with basics then only you will question the reality of things as to why do things work that way and if you are struggling with basics then you tend to pounder over it and stop working on it was can be due to bordem of not getting to understand those thing.

  • @rajrajesh1669
    @rajrajesh1669 6 месяцев назад +1

    Damn that reply to someone in the intro was everything I needed to hear after couple of my friends said the same things to me😂...
    Best reply ever...

  • @jsedits9645
    @jsedits9645 6 месяцев назад

    This might be the best piece of advice I have gotten in sometime. Really really appreciate it...

  • @smartkorean1
    @smartkorean1 6 месяцев назад +11

    To a lesser extent, this advice reminds me of my Theory of Computation class.
    When you’re asked to build a NFA or PDA that recognizes a certain language, the first step is knowing all the basic patterns like how a machine keeps track of even / odd characters, how it detects a substring, how it counts a certain amount of characters.
    Only after knowing these basic patterns are you able to build more complex machines. And with anyone of these problems, it’s best to write some strings that are in the language and some that are not, along with some edge cases that could break the machine
    Hopefully someone else can relate and hopefully apply it to their leetcode grind, good luck :)

    • @mohitchauhan5969
      @mohitchauhan5969 6 месяцев назад +1

      Similar to me my TOC which requires null transition and regular expression later in CD the parsing technique sucks great.

  • @diegotrazzi
    @diegotrazzi 2 месяца назад

    Although this video could have been 35 seconds long, thank you for making it: it helps.

  • @AdeniyiAdebowale-yi9fc
    @AdeniyiAdebowale-yi9fc 12 дней назад

    Thank you so much for sharing this, I've learnt alot from this video tbh

  • @obscureautumnfrost
    @obscureautumnfrost 4 месяца назад

    Another thing that needs to be discussed is practicing the basic algorithms' variants. At some point, everybody knows how to write Binary Search, BFS, DFS, etc., but knowing the variants of each of these algorithms is equally important.

  • @Vitalik186
    @Vitalik186 5 месяцев назад

    Thank you, man! Just thank you! You are my hero!

  • @leonskennedyneh
    @leonskennedyneh 4 месяца назад +1

    10:43 the first time i got introduced to binart search was hell crazy that it took me a day to understand whats going on, but as i solved like 50 ques on binary search, not only the algo but can solve questions now

  • @raphaeljcm
    @raphaeljcm 4 месяца назад

    Dude, this video is just a gem! 👏

  • @XX-ri1me
    @XX-ri1me 4 месяца назад

    I have created a project with my IDE where I add a unit test for each LeetCode problem I want to solve. I can add a value set to test with a one liner and debug specific cases with a full debugger. This also helps you improve using your specific work environment.

  • @damercy
    @damercy 6 месяцев назад +3

    You sir, are a hero. Thank you.

  • @ApniDuniya_25
    @ApniDuniya_25 6 месяцев назад

    Thanks a lot, I was totally depressed
    Love from India ❤

  • @Ayman_youtube
    @Ayman_youtube 6 месяцев назад +2

    I think also leetcode is hard because you have to think about all the test cases possible and make a general solution that works for all of them , coming up with an unexpected test case is so hard for me

  • @sunghwancho4965
    @sunghwancho4965 3 месяца назад

    your speech really helped me to get motivated to do problems repeatedly! thanks for the videos :)

  • @orepajic2625
    @orepajic2625 3 месяца назад

    I think the thing with maths is for most problems you know what you should do , meaning you are already told in the question what to do. In the problems where you develop problem solving skills, there is still a finite amount of things you can do. In Leetcode, unless you are explicitly told or somehow found out by yourself that certain problems are always done in more or less the same way, it will be really hard to come up with an idea

  • @ОленаЄфименко-б6ю
    @ОленаЄфименко-б6ю 3 месяца назад

    This is an amazing explanation! Thank you for motivation!

  • @I61void
    @I61void 5 месяцев назад

    That makes sense with a lot of things tbh. Being consistent and practicing daily. I had taken a course for web developement in javascript and for some reason I wanted to use C++ to start leetcode. Anyways I had already learned the concepts and basics like how a loop works and how to write a loop in javascript (follow along) but when i got to c++ it took me like 30 minutes to write a loop using a reference for fizzbuzz on leetcode. Even though I already knew how it worked. Now I can write a loop in several languages in seconds, its almost like second nature, like counting 1, 2, 3.
    When I first started leetcode I could solve like two easy questions a day and now I can solve like 10 easy/mediums in like an hour or two.
    Same thing when I tried learning BFS/DFS and some other algorithms. I had trouble, I took maybe an hour to solve one but after I solved it I took notes, moved to the next one and solved it in like 15 minutes, the next one in like 3 minutes and so on (easy and mediums). The only thing that is holding me back tbh is being lazy, I haven't submitted anything since like May, so yeah be consistent with it and you will see results. (And taking notes, i didn't mention much of its importance either, but I like to write the notes as comments next to my code to explain what each line of code does in a more simplified manner)

  • @ronbrown8328
    @ronbrown8328 6 месяцев назад

    Seriously one of the best Leet code videos i ever watched. He literally just gave us very detailed instructions on deliberate practice to solve problems! This is gold. Thank you for this video. Seriously, This really helped me!

  • @maikinpak6062
    @maikinpak6062 Месяц назад

    This clip is really activate my motivation thank you

  • @ashutoshj
    @ashutoshj 5 месяцев назад

    It's been some time since i've resonated with a yt video this much.

  • @franciscojavier7979
    @franciscojavier7979 Месяц назад

    Go off King!