Struggling To Learn Data Structures And Algorithms? Maybe You Shouldn't (Yet)

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 พ.ย. 2024

ความคิดเห็น • 40

  • @DonTheDeveloper
    @DonTheDeveloper  ปีที่แล้ว +3

    If you'd like to come on the show and ask me a question, just fill out this short form:
    forms.gle/esQMbaRjQt9SkD1XA

  • @rachellettuce
    @rachellettuce ปีที่แล้ว +29

    In my experience with DSA, it's something that doesn't come naturally without practicing a lot. And I mean A LOT. When I prepared for interviews that were scheduled for me, I took 4-5 months of practicing about 30-40 hours a week (in addition to going to school). And I felt like I could still do a lot more. Feeling like it takes a lot for you to get it, well, it's because it just takes a lot for you to get it. It's like this for everyone. You just have to be dedicated and manage your time well. Great video.

    • @bivensrk
      @bivensrk ปีที่แล้ว +1

      Absolutely agree! I also like the thought of really boiling down a problem that involves DSA (or any such complicated thought process) and working that by itself. As an old mentor used to say "Anything worthwhile is going to take a lot of time."

    • @GodleyBeast
      @GodleyBeast ปีที่แล้ว +1

      Very similar experience for me for my first big break. I did schooling for hardware engineering, so I didn't have some of the software fundamentals down.
      Job at the time was very laxed, and I would grind out A LOT of DSA leetcode problems on the side, 40 hours a week was pretty accurate, sometimes more. This lasted for about 2 months. I had specific topics I would target to learn if I ever got stumped on a question that used that algorithm. Would really encourage others to document topics you were stumped on, are target those types of problems and watch videos of people solving them. It will help to see how people identify these patterns in the problem statement.
      If I ever had to look at solutions, I would document them and come back to them a few days later and try to solve it on my own again. It really does come down to pattern recognition that only comes down to extreme practice.

  • @saturnteatree
    @saturnteatree ปีที่แล้ว +34

    Being overwhelmed means there is a gap in your knowledge… data structures and algorithms are much easier to learn when you have a reference chart for example pick a language study the data structures in that language, then pick some common algorithms by category for example binary search then learn the concepts of graphs and then pick a graph algorithm like BFS categorized it and break it down to its simplest form the repeat the process… hope that helps

  • @JustinWellsDev
    @JustinWellsDev ปีที่แล้ว +23

    I’m self taught, no college, no Bootcamp, just learned for free on online resources. Started learning in September of 2022, once I finished the free course I was following in December I started reading a book on data structures and algorithms.
    I enjoyed what I was reading because I found it super interesting, but then I got my first interview booked in February and between both parts of the interview they didn’t test/ask about data structures at all.
    I was offered the position too! Way better pay than my previous job 😂

  • @JeremyWall
    @JeremyWall ปีที่แล้ว +8

    For most people coming out of a bootcamp or on the self taught path there ought to be some kind of LeetCode light list for people to study. The vast majority of stuff in leetcode style exercises is going to be targetting solutions that require advanced algorithms or datastructures that you could go an entire career never using once. For most development work in a job all you really need is a Map or an Array. The most useful things you get out of deep explorations in datastructures and algorithms are:
    1. Can you reason about the Order of maginitude preformance of your code when you write it.
    2. Can you pick which of map or array you should use in which place.
    3. A breadth of experience where if you need something more advanced you know how to lookup how to do it.

    • @alyssa_wendt
      @alyssa_wendt ปีที่แล้ว

      hackerrank and CodeWars basically

  • @dantedt3931
    @dantedt3931 ปีที่แล้ว +6

    This a bit long to read, but here’s journey.
    I went the self-taught route 5 years ago, after getting my undergraduate degree in Statistics,I was 37.
    I started building small web applications using Flask and Django by following along TH-cam tutorials. Reading software engineering books and articles to learn fundamental concepts and their application.
    I didn’t learn about algorithms at the time, only focused on development.
    As luck would have it, I was called for an interview where they asked me how I would build a certain type of system. I explained the approach and process based on what I had learnt. Fortunately, they never asked about algorithms.
    I was a successful at that interview and I’m still with the company. When I started, they threw me in the deep-end which made me learn a lot in a short time(Frontend,Backend,Database and Server deployment)
    My attitude was “Build more to learn more, learn more to earn more”
    Today I’m a Lead Developer at the same company and have built enterprise web applications, realtime chat systems and online reporting dashboards and getting into mobile apps.
    Over the years I’ve learnt a lot about leading people, mentoring, system performance(Especially Load-balancing and caching), architecture(monoliths vs microservices)
    I realised that It’s not possible to learn everything by myself, so I reach out to other software engineers who have more technical and domain expertise than me. The advice I get from them is invaluable.
    I’m fascinated by algorithms and have been making time to learn different types and their possible applications.
    It’s been a great journey, and learning never stops.

  • @andrews8733
    @andrews8733 ปีที่แล้ว +6

    If he was studying linguistics, he should try and build some parsers. This would atleast keep problems personally interesting, and would demand a good knowledge of DSA.

  • @EsotericArnold
    @EsotericArnold ปีที่แล้ว +9

    I promise you, DSA will be infinitely easier to understand once you know the math behind the mechanisms. Things like tree's, graphs, powersets, recursion, algorithmic complexity are all coming from Discrete mathematics. Like for instance, there is literally no paid or free resource for DS and Algos that will ever mention to you the term: "Recurrence Relations". The most you'll ever hear is about 'subproblems'. Hilariously recursion and dynamic programming is far easier to understand if you know that it's based on 'recurrence relations', and what that means mathematically.

    • @prestonrasmussen1758
      @prestonrasmussen1758 ปีที่แล้ว

      I mean if you crack open any DS&A textbook or do watch lectures from any college course they will teach it from a math perspective.

    • @EsotericArnold
      @EsotericArnold ปีที่แล้ว

      @@prestonrasmussen1758 and I can guarantee you, all of that math in those DSA books are pure gibberish to you, if you have no background in Discrete Math.

    • @prestonrasmussen1758
      @prestonrasmussen1758 ปีที่แล้ว

      @@EsotericArnold Generally textbooks in DS&A courses try to build the math from a no pre-req background. But that’s not the point, the point is that you claimed no course on DS&A would explain the content in terms of the math and use words like “recurrence relation.” I agree with you that the math foundation is extremely important (I’m a self-taught dev with a math degree), but the traditional way that this material is rusher is as essentially a math course.

    • @EsotericArnold
      @EsotericArnold ปีที่แล้ว

      @@prestonrasmussen1758 you have a math degree. Honestly, need I say more?

    • @prestonrasmussen1758
      @prestonrasmussen1758 ปีที่แล้ว

      @@EsotericArnold I’m agreeing with you that understanding the math is important. I’m just saying that textbooks on the subject will also explain the math as part of teaching DS&A

  • @GodofStories
    @GodofStories ปีที่แล้ว +1

    This is really common. I'm a working dev but struggle hard to do leetcode problems. It's all about practice. Trying really hard to do the problem for yourself, and then after really trying , looking at the solution and trying to Understand it. Go through the solution and code it for yourself. And if you struggle with a data structure or algo, then google it, and go through the fundamentals. rinse repeat.
    For basics, getting a Oreilly yearly subscription is really beneficial, if you enjoy reading through programming books. The courses and instructors there are fantastic too. Pluralsight, Udemy are alright too. And ofc TH-cam has a trove of resources...

  • @Wanderer2035
    @Wanderer2035 ปีที่แล้ว +2

    I would do code wars instead of leet code. The questions are much more beginner friendly, but still the difficulty can be increased to where their more hard enough to prep for interviews. Plus the I think the UI is better on CodeWars instead of leet code, which is ugly as hell lol but that’s just me

  • @curtisdavis8594
    @curtisdavis8594 ปีที่แล้ว +1

    Good in depth interview on "Journey" to software developer... "Newbie" to "First Role".. Thanks!

  • @themahanaxar
    @themahanaxar ปีที่แล้ว +3

    "The enemy of the good is the perfect" :)
    I totally fall into that trap oftener than I like.

  • @Jonas-qm7ls
    @Jonas-qm7ls ปีที่แล้ว +3

    Thank you Don, thank you Daniel! Appreciated.

  • @CaioCodes
    @CaioCodes ปีที่แล้ว +7

    Daniel, totally non-related, but allow me to suggest you work on replacing the "like" with other sort of mechanisms to help you leave your message while you fill the gaps. It's better to keep silent and think about the next sentence, rather to keep saying "like". Keep going, you have a bright future ahead!

    • @derpydayha
      @derpydayha ปีที่แล้ว +2

      Yeah, this is a bad habit that's crept up on me again recently😅 I appreciate the constructive criticism - it'll probably help when it comes to interviews

  • @andreidaniel687
    @andreidaniel687 ปีที่แล้ว +1

    Solid advice thank you!

  • @youtubejproasters1224
    @youtubejproasters1224 ปีที่แล้ว +1

    Hey man, can you make a video to suggest what kind of projects will be good enough to land an entry level frontend job out there ?

    • @bivensrk
      @bivensrk ปีที่แล้ว +2

      You didn't ask me but I figured I"d offer my two cents. Do you do anything now where you could show a boss what you're capable of, code wise? I was a system administrator for [way too long] years. I finally "got a break" and found a gig where the manager just asked if I knew Java, which I had. I'd learned >this< much Java in college, the rest being self-taught. And I managed to basically turn that "system administrator' job into a developer job. I also learned Python there as well. And you figure that almost any business needs a website. They may already have one BUT that doesn't mean you can't mock up something they also like. Worst case, they don't go for it but you still get experience /my two cents.

    • @youtubejproasters1224
      @youtubejproasters1224 ปีที่แล้ว

      @@bivensrk Amazing actually! You did actually nice, well at my case i am already in a bootcamp , and i do actually really good (dont have any backround in IT though), so i cant think something that actually will attract companies around, and problem with being an entirely entry level is that you need to apply to every company at the start, so i cant actually choose who will call me for interview, thats why i wanted to figure out to make for example a website , but the website should be attractive for almost everyone ..

    • @bivensrk
      @bivensrk ปีที่แล้ว +1

      @@youtubejproasters1224 So, I had a very non-linear path to developer. My earliest gig was a small computer store. Did some video game testing after that. In college, I did some web development. Then went into the Navy and did 2 years of nothing related to the trade, after which, still in the Navy, I finally got real IT experience (system administration) under my belt. That's where I got to do some actual, OJT code work done. After getting out, I did 2.5 years more Sys Admin work (as govt contractor) before getting another shot, at web development. I parlayed that into the Python/Java for a different agency, before ultimately getting my current gig, as a legit, official Python Developer. I will submit, having a clearance, makes finding the work a bit easier!

  • @ddesemblyftw
    @ddesemblyftw ปีที่แล้ว +2

    Thanx for the video.

  • @DevoutJourney
    @DevoutJourney ปีที่แล้ว +2

    Your awesome man.

  • @nhyxz
    @nhyxz ปีที่แล้ว +2

    I Like this video

  • @4gotTodoMYHw
    @4gotTodoMYHw ปีที่แล้ว +15

    Nice kid, but please for the love of God, he's got to STOP using the word "like" so much. Especially going into future interviews

    • @cfranky6456
      @cfranky6456 ปีที่แล้ว +2

      I was just going to say this

    • @existence.5806
      @existence.5806 ปีที่แล้ว +1

      Why u hating?
      *like?!*