Problem-Solving for Developers - A Beginner's Guide

SdĂ­let
VloĆŸit
  • čas pƙidĂĄn 31. 05. 2024
  • How to approach problem-solving as a developer đŸ€”. Seven steps and strategies to solve software development challenges faster.
    1:45 Identify the problem
    2:52 Research and refine
    4:37 Write pseudocode
    6:25 TDD
    7:54 Implement
    8:33 Reflect and improve
    9:31 Practice
    GitHub GraphQL API fireship.io/snippets/github-g...
    #code #dev #tutorial
    Install the quiz app đŸ€“
    iOS itunes.apple.com/us/app/fires...
    Android play.google.com/store/apps/de...
    Upgrade to Fireship PRO at fireship.io/pro
    Use code lORhwXd2 for 25% off your first payment.
    My VS Code Theme
    - Atom One Dark
    - vscode-icons
    - Fira Code Font
  • Věda a technologie

Komentáƙe • 501

  • @natew4724
    @natew4724 Pƙed 3 lety +3305

    Remember the #1 Rule of Computer Science:
    Don't do something repetitive for an hour. Spend three hours failing to automate it.

  • @pppluronwrj
    @pppluronwrj Pƙed 4 lety +623

    got problem
    ask on stack overflow
    put bounty
    problem solved

  • @shivamtrivedi4669
    @shivamtrivedi4669 Pƙed 4 lety +835

    I was stuck at a problem for 2 days. So i decided to take some time off and the solution poped in my head out of nowhere while i was having lunch.

    • @itsaaron6423
      @itsaaron6423 Pƙed 4 lety +42

      Wow same ...... I think the mind works while we rest

    • @irend1163
      @irend1163 Pƙed 4 lety +18

      Sometimes you just need break

    • @bosnian.artillery
      @bosnian.artillery Pƙed 4 lety +17

      Same here, just today I had that moment. For 2 days I was trying to solve a problem and I took day off but today I basically solved it.
      Also sometimes it happens that I can't solve something and I just get up, take a rest for 10min not thinking about it and it just pops in my head lol

    • @renwar
      @renwar Pƙed 4 lety +6

      Same here always get the solution during driving, eating, chilling with friends 😂

    • @dzk6714
      @dzk6714 Pƙed 4 lety +4

      thats pretty normal , happens all the time . Once i wake up next day the solution pops in my head

  • @patrickmayer9218
    @patrickmayer9218 Pƙed rokem +144

    1. Identify the problem.
    2. Research and refine the problem.
    3. Pseudocode
    4. Write a test with buffer data (optional)
    5. Write the code
    6. Reflect on the code and make it more readable

  • @tusharmaurya1668
    @tusharmaurya1668 Pƙed 3 lety +364

    5:21 There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

  • @brhh
    @brhh Pƙed 3 lety +413

    I highly respect how tutorial channels like you actually care about the learner and making them stop needing these tutorials rather than making them stick to tutorials. This is TEACHING people

    • @smaransure2234
      @smaransure2234 Pƙed 9 měsĂ­ci +1

      the odin project

    • @end4567
      @end4567 Pƙed 6 měsĂ­ci

      What's the "odin project"?@@smaransure2234

  • @chordfunc3072
    @chordfunc3072 Pƙed 4 lety +365

    8:41 - Another reason why this often works at least for me, is that there is often a flaw in my mental model of the problem. Stepping away from it a bit deletes the cache so to speak.

  • @RounderSkillZ
    @RounderSkillZ Pƙed 4 lety +652

    I can't get enough of your videos. Hope you stay healthy in these difficult times. đŸ‘đŸŒđŸ‘đŸŒđŸ‘đŸŒ

    • @Fireship
      @Fireship  Pƙed 4 lety +80

      Thanks Tolga. Same to you!

    • @sunil5656
      @sunil5656 Pƙed 2 lety +8

      @@Fireship you were are and will be healthy as we all wish đŸ€ž for u with love ❀

    • @thecasanova8121
      @thecasanova8121 Pƙed 2 lety +2

      ❀

    • @gladiusso
      @gladiusso Pƙed 2 lety +5

      @@sunil5656 grammar 100

  • @noahwilliams8918
    @noahwilliams8918 Pƙed 4 lety +27

    “What the fuck’s per minute” is now the official unit of programming productivity.

  • @fosefx
    @fosefx Pƙed 4 lety +249

    * Sees 600 PRs *
    > LGTM
    * Merges 600 PRs *

  • @christianwheeler8441
    @christianwheeler8441 Pƙed 4 lety +54

    Thanks for the shoutout Jeff! The GraphQL API is definitely the way to go for validation - not to mention having fun

  • @cecilelebleu5984
    @cecilelebleu5984 Pƙed 4 lety +21

    40 seconds into the video ~*pauses video and gets notebook*~ ~*proceeds to take 1.5 pages of notes on everything*~
    Thank you đŸ™‡đŸŒâ€â™€ïž

  • @siobhanvidaashmole9009
    @siobhanvidaashmole9009 Pƙed 2 lety +5

    You are such a great teacher. This is the video I needed even though I'm a complete noob, it explains so much of how to think of and implement projects. Also you are the first person to ever make me excited about testing and tdd.

  • @pogiman7488
    @pogiman7488 Pƙed 4 lety +6

    To become really good at anything, you have to practice and repeat, practice and repeat until the technique becomes intuitive. One of the best advise for anybody.

  • @sergiosabas5673
    @sergiosabas5673 Pƙed 4 lety +59

    I really liked your video. It was informative and fun at the same time. I think that's the right approach to teach. Thank You for such an excellent video. Keep up with the good work! =D

  • @cm3462
    @cm3462 Pƙed rokem +7

    As a newbie working on their first project, I suspect this will be one of your most valuable videos to me. 1000 thanks.

  • @tomhames6884
    @tomhames6884 Pƙed 4 lety +18

    Great video!
    I went through the process you described of learning syntax then teaching myself problem solving. Kind of the downside of being self-taught vs. comp sci degree.
    I echo everything you said in this video. For practice, I've found coding challenge sites super helpful. CodeWars is my fave as it's more fun and less interview-y than others.
    Keep up the great work!

  • @wildwildwest1
    @wildwildwest1 Pƙed rokem +2

    Thanks for this video! I’m a junior developer, 6 months into the job and I’m struggling with problem solving. You have some great advice here that I’ll remember and use!

  • @alejkun4923
    @alejkun4923 Pƙed 4 lety +2

    Hi Jeff! Using your schema i found some problems that i would otherwise find annoying turned quite enjoyable. Quite an eye opener and very refreshing! Thank you!

  • @Aviv_rs
    @Aviv_rs Pƙed rokem +1

    Amazing video, I really like the way you break down and explain everything in such a clear and understandable manner plus the cool editing and humor that always keeps me intrigued, keep up the awesome content!

  • @k3tna
    @k3tna Pƙed 4 lety +78

    Thanks, Jeff. Informative, to the point.
    15-min break is something everyone should adopt as a routine. Works incredibly well with a little stroll outside.

    • @mango_apple9501
      @mango_apple9501 Pƙed rokem

      Use study md for work the best thing ever.

    • @mango_apple9501
      @mango_apple9501 Pƙed rokem

      Does exactly that.

    • @jaagup
      @jaagup Pƙed rokem +1

      I did my bachelors thesis with this method.
      Work on thesis -> get stuck -> play a game of PUBG -> Solve problem -> repeat.

  • @rafaelbadaro2986
    @rafaelbadaro2986 Pƙed 4 lety +1

    I loved the fact that you mentioned testing, It makes a huge difference!! Great video!!

  • @higgz17
    @higgz17 Pƙed 2 lety +4

    8:41 I had an error one day at work ,spent the entire afternoon going crazy about it. I'm kind of stuborn so i immediately doubled down on trying to fix it. Funny thing is I went home had a good night sleep and the next morning I LITERALLY solved the problem I had the previous day in 5 min. That was a lesson I will never forget!

  • @aniceguy2577
    @aniceguy2577 Pƙed 4 lety +15

    It may seem like an irrelevant thing, but the fact that you quote a Brazilian writer made my day😊. Great video as always âœŒđŸ».

    • @Fireship
      @Fireship  Pƙed 4 lety +7

      I read the Alchemist a long time ago, legendary writer!

  • @Sirstealthsalot
    @Sirstealthsalot Pƙed 4 lety +21

    The 15 minute break trick is so true. I was stuck on something that seemed so simple for hours, so I took a break and called my friend and just vented about how I was so stressed, this isn't for me, I'm gonna find a new career path, and then ate an apple. 15 minutes after looking at the code again and I had a solution.

  • @krjonovo2063
    @krjonovo2063 Pƙed 4 lety +1

    I needed this video. I needed someone to say to me to just write something that works and improve the code later. Right now I am working on something and I try to read and learn a lot just so that I do everything right and my code is close to perfect as it could be on the first try but I am stuck on like 20% of the project. And I am dissatisfied with the things that I did, because it feels like they are a hack and not something that someone with experience would do or write. But this "just write something that works and refine later" is exactly what my brain needs to learn (hear). Thank you.

  • @wlcrutch
    @wlcrutch Pƙed 2 lety

    So refreshing to hear crisp, clean, quick English.

  • @MissPBxoxo
    @MissPBxoxo Pƙed 3 lety +1

    Something about your voice so soothing to listen to 😄
    I also agree with taking a break. I’ve done so and came back with two to three possible solutions to fix the error

  • @konstantinshegin9076
    @konstantinshegin9076 Pƙed 3 lety +1

    That's the most useful video I've seen in years. It perfectly address my problem with coding

  • @immanuelt613
    @immanuelt613 Pƙed 2 lety +6

    I didn't understand half the things discussed here

  • @logTopic
    @logTopic Pƙed 2 lety

    Bless the CZcams algorithms for recommending your channel. Every time I watch one of your videos I'm like: "Wow, this is exactly what I needed to hear."
    Thank you man!

  • @mateja176
    @mateja176 Pƙed 4 lety +44

    10:20 the faster your WTF's per minute will decrease 😂

    • @FalseDev
      @FalseDev Pƙed 3 lety +1

      đŸ˜‚đŸ€Ł

    • @tusharmaurya1668
      @tusharmaurya1668 Pƙed 3 lety

      Do u know it is taken from a very popular book? I think it was head first java second edition... Not sure tho

    • @azim
      @azim Pƙed 3 lety +1

      @@tusharmaurya1668 it's from Clean Code by Rober Martin.

  • @vojtechrichter4606
    @vojtechrichter4606 Pƙed 3 lety

    Your videos are extremely satisfying, and interesting to listen to. Keep doing what you're doing, appreciate your work. Stay safe!

  • @BiancaAguglia
    @BiancaAguglia Pƙed 4 lety +15

    There's no substitute for practice when it comes to becoming a good problem solver, but there are ways to make sure your practice is as smart, efficient, and effective as possible. One book that I found helpful is "How to Solve It" by George Polya. It was first published in 1945 and the writing style feels indeed dated, but the ideas in it are good. 😊

    • @Fireship
      @Fireship  Pƙed 4 lety +1

      Thanks for the reference, I will check that out :)

    • @ekwensu8797
      @ekwensu8797 Pƙed rokem

      How do I apply those concepts from the book outside of just math?

  • @rossomaguire17
    @rossomaguire17 Pƙed 4 lety +12

    The 15 min break tip is truest thing. It can be so hard to pull yourself away from code when you're in the throws of it but if it's not happening for you then save your work and step away. Its always always worked for me to come back to it at a later time after proper time away from it. I'm with Asimov on this one. Great vid

    • @Gaellka
      @Gaellka Pƙed 2 lety +2

      Yeah, and when you got the "Aha!" Moment, that feels soooo good, like, the best moment in my life lmao.

    • @pythonxz
      @pythonxz Pƙed 7 měsĂ­ci

      You could just work on another part of the project. In most cases, I cannot just walk away.

  • @williamrose7345
    @williamrose7345 Pƙed rokem

    Your videos are an absolute goldmine. One of my favorite channels.

  • @prashanthreddy1924
    @prashanthreddy1924 Pƙed 11 měsĂ­ci

    I just revisited this video and I’m sure now I become a better developer/ problem solver. Thanks for the video.

  • @mariuspet89
    @mariuspet89 Pƙed 4 lety

    I think this is the best video I've seen on your channel. Thanks a lot !!!!

  • @abeechr
    @abeechr Pƙed 4 lety

    You are THE best, number #1, lo mejor CZcams channel for coding noobs. Where were you when I suffered and slogged through bootcamp?

  • @chicken6969
    @chicken6969 Pƙed rokem +1

    I thought this video would just state the obvious but I actually really like how you explained this. Thank you

  • @yjr4df758
    @yjr4df758 Pƙed 2 lety +1

    I usually make kind of a rough draft of the control structure and after getting it to work (mostly) I delete or comment out the whole thing and start from scratch, now I know what I'm doing and how to do it, since it's completely new I can improve it very easily

  • @anupamdahal7029
    @anupamdahal7029 Pƙed 2 lety +12

    I have learnt a lot of new things that I have never worked with from your videos, like AWS, nginx, kubernetes, graphQL(and other dbs), typescript to name a few. One thing that I don't understand is how they work together. I would really love to see a video where you design a mock system using all of these (and possibly more) and explain each of their roles and why you chose it (kinda like your reverse-cloud migration video using raspberry pi).
    Whenever I think of a software architecture I think of them as several layers that interact with each other. However, I am unable to assign which layer what belongs to by watching a stand alone tutorial about a single tool.
    Btw, I am a college senior pursuing CS major and I love your content. Thanks for all the awesome contents.

    • @Trynxy
      @Trynxy Pƙed rokem

      If still need something, this may help you a bit
      czcams.com/video/Sxxw3qtb3_g/video.html

  • @SirLasterOfDesaster
    @SirLasterOfDesaster Pƙed 4 lety

    Hey!
    Thank you for your great video!
    I just "wasted" 20 Minutes to switch between the GraphQL output and your code to understand what it is doing ;D
    The disallowedFiles was the main problem, but now I get it

  • @lifasibiya4810
    @lifasibiya4810 Pƙed 4 lety +1

    What a great lesson, I enjoyed it very much. Thanks Jeff.

  • @normantas3940
    @normantas3940 Pƙed 4 lety

    This came perfect timing... wanted to improve my problem-solving skills, so this came.

  • @UninspiredFilm5
    @UninspiredFilm5 Pƙed 21 dnem

    thanks for the vid. I get a little overwhelmed approaching questions and problems as a noob.

  • @ElectroMathExp
    @ElectroMathExp Pƙed 4 lety

    perfect timing .
    i just started learing data structures and algorithms
    Thank you .

  • @FedJimSmith
    @FedJimSmith Pƙed 4 lety

    this is mostly common-sense once you're already experienced but not so if for a newbie whose focus is the language ... so kudos to this vdeo

  • @Samir-50082
    @Samir-50082 Pƙed 4 lety

    I understand your purpose with this video. Thank you I think different now with programming. It’s lot easier now. I don’t think about the syntax but how to solve the problem.

  • @thatOne873
    @thatOne873 Pƙed 4 lety +1

    Just posted a comment to thank U for knowledge that goes straight into our minds in beautiful way

  • @ayoubhr77
    @ayoubhr77 Pƙed 3 lety

    Quality channel, keep it up, this video brought to me a valuable insight to what a programmer really does often.

  • @tracyannang7445
    @tracyannang7445 Pƙed rokem

    You just might be the person I needed to help me on my journey. Thank you

  • @jamesallen74
    @jamesallen74 Pƙed 3 lety +21

    Fantastic video.
    The one step I would add (probably after either research or pseudocode.) And that step is...
    Decide.
    Decide to pursue or not.
    If you are doing it for learning, fun, hobby, cool go for it. This is the best way to learn and even have fun doing it. However....
    If you are doing it for a business, you have to consider things like
    - R.O.I. (will it take 20-30 hours to automate something that would take 5 hours in totality to do manually)
    - feasibility (are you building CZcams in the year 1995 before it was feasible)
    - risks (risk of doing it, and risks of not doing it)
    It's a rabbit hole topic & a Debbie Downer topic for sure, but important especially since you are paid to provide value to the business which includes considering its costs.

  • @mandongpedroza7486
    @mandongpedroza7486 Pƙed 4 lety

    This video is a lot of help to me. I hope u publish more about problem solving. Thanks a lot!

  • @lemuelreyes1941
    @lemuelreyes1941 Pƙed 4 lety

    Spongebob meme and Iverson meme in one video...perfect! This was a great video, awesome content like always. Thanks!

  • @HazemElsawy
    @HazemElsawy Pƙed 4 lety

    Those are some dope videos, they’re so much fun to be even called tutorials

  • @illiachalyk195
    @illiachalyk195 Pƙed rokem

    How is this possible, so many valuable tips within just 10 minutes?!?!? đŸ”„

  • @urlroute1489
    @urlroute1489 Pƙed 3 lety +4

    Awesome video. Great point about getting a prototype done asap. A psychological win!!!
    Having the software done is way more important than trying to create the perfect masterpiece code! I have seen talented developers eventually lose their jobs because they were trying to code perfection (did the code get done... no. Client had some WTFs for sure.).

  • @michaelz6820
    @michaelz6820 Pƙed 4 lety +1

    You used number 6 twice.
    Good video man! This will help me in my career.

  • @fernandonakamuta1502
    @fernandonakamuta1502 Pƙed 4 lety

    Great Lesson Jeff,
    You have a lot of practice in teaching

  • @vivekteega
    @vivekteega Pƙed 3 lety

    Wow, this is a "Problem-Solving for Life guide" .. Thanks for taking the time to make this dude

  • @optimusdebugger9638
    @optimusdebugger9638 Pƙed 4 lety

    I knew I would love this video. turns out really great

  • @ldpuri
    @ldpuri Pƙed 2 lety +1

    That was helpful! Learning a ton from your videos man.

  • @ArthurKhazbs
    @ArthurKhazbs Pƙed 2 lety

    Rep+ for using Insomnia, my friend! It's awesome, I wish more people knew about it.

  • @nirmalperera3665
    @nirmalperera3665 Pƙed 2 lety

    a girl I loved long time ago, following an IT related degree, advised me to go and have a coffee if I am stuck in a coding problem, your 6th topic made me remind her

  • @desther
    @desther Pƙed 4 lety +2

    You are very talented teacher. Thanks for another great video.

  • @RobbSnor
    @RobbSnor Pƙed 3 lety

    This channel is a goldmine anything programming related

  • @berad6034
    @berad6034 Pƙed rokem

    added this to like 4 playlists. incredible video

  • @RohanChouguleTechEd
    @RohanChouguleTechEd Pƙed 4 lety +3

    Indeed something so great packed in such tight duration.
    Would love to know which software do you use for video editing.
    Cheers!

  • @HikingFeral
    @HikingFeral Pƙed rokem

    Thanks for this mate, I got green ticks on my university quiz for everything except problem solving so I am going to treat it like a problem that needs to be solved and use problem solving techniques to solve it, hopefully after solving the problem like this I will be able to re take the quiz and turn my problem-solving problem into - "problem solved" or - problem? Solved. Without people like you offering free problem-solving videos to help me solve my problem-solving problem I would have a serious problem which would be a big problem and lead to possible problems in my future regarding the ability to solve problems.
    (I am being serious about the quiz, maybe if I spent more time problem solving and less time trying to be funny I would have less of a problem)

  • @AntonLukas
    @AntonLukas Pƙed 3 měsĂ­ci

    Fantastic video! Solid advice for everyone.

  • @nikotin777
    @nikotin777 Pƙed 4 lety

    Great explanation of a most part of developers work!

  • @kaneleh
    @kaneleh Pƙed 17 dny

    Good video! Unusually long for your channel but worth the extra time.

  • @morat3hi714
    @morat3hi714 Pƙed 20 dny

    I enjoyed this video, very thorough.

  • @ryanmckenna2047
    @ryanmckenna2047 Pƙed 2 lety

    You you tube channel is easily one of the most valuable out there

  • @glebkoshelev
    @glebkoshelev Pƙed 4 lety +9

    Desire should be emphasised, not practice. Without intention/desire/care there is no way to validate the result of your action. Without validation there can't be practice, only messing around. That's pragmatism for you. The reason why learning on pet-projects is so hard is that it's hard to find something you actually care for. For example, with your "600 merges" project, you created a real problem for yourself by giving a (careless) promise. There wouldn't be a project if you wouldn't have a problem you cared for. So the real advice should be: find something you care for, focus on it and try to employ code as a tool... or if there is no problem, create it) Like you yourself did.

    • @Fireship
      @Fireship  Pƙed 4 lety

      That's a great point! You need to something to drive you to practice.

  • @kevindean8312
    @kevindean8312 Pƙed rokem

    All I can say about your videos is, "they are kick-ass". This one was again, "dead on"!

  • @iliankarasimirov9685
    @iliankarasimirov9685 Pƙed 4 lety

    Great and flawless tips which I use to develop, thanks

  • @xdgtwjk23_rtfd
    @xdgtwjk23_rtfd Pƙed 4 lety

    Finally someone who talks about Problem solving in Programming.

  • @SirXtC
    @SirXtC Pƙed 2 lety +3

    I have noticed that you can only truly start thinking about problem-solving when you know how to code already. the usual problem that juniors have is not even problem solving, just not knowing how the code works.

  • @dennisong8270
    @dennisong8270 Pƙed 4 lety

    Just bought fireship io ! Thank you for your videos. CS student here

  • @spotlight761
    @spotlight761 Pƙed měsĂ­cem +2

    What is the difference between thinking about the problem and thinking about solutions? Thinking about the problem isn't also thinking about solutions?

  • @SAMs3piol
    @SAMs3piol Pƙed rokem

    Your channel is so helpful dude. Thumbs Up.

  • @EdwardChan.999
    @EdwardChan.999 Pƙed rokem

    Good video! I'm glad that I have the habit of drawing flow charts on paper XD

  • @yaninahernandez7751
    @yaninahernandez7751 Pƙed rokem

    This video is pure gold!

  • @shreeramparija7731
    @shreeramparija7731 Pƙed 2 lety

    We all know these videos are really informative but damn his sense of humour is really on point as well

  • @GNRLsprinkles
    @GNRLsprinkles Pƙed 4 lety

    I feel like there's an opportunity hear to make a really slick minimalism poster with all this information. I'd definitely pick one up!

  • @nathanyang3288
    @nathanyang3288 Pƙed 4 lety

    Iverson part is gold lol Love your video

  • @maximenadeau9453
    @maximenadeau9453 Pƙed 2 lety

    The little subtile jokes thrown around make these very enjoyable to watch. Thanks for the great content !

  • @budkin
    @budkin Pƙed 2 lety

    Just a fantastic video. Thank you.

  • @lucasfelipe-ze5sy
    @lucasfelipe-ze5sy Pƙed 4 lety

    Guy, I really like your videos. I feel inspired

  • @akporraphael9069
    @akporraphael9069 Pƙed rokem

    Leetcode in 100 second and logic to use when solving leetcode problem. Thanks fireship đŸ”„

  • @MineBuggy
    @MineBuggy Pƙed 4 lety +10

    What a great decomposition of the fundamentals đŸ”„đŸ”„ Appreciate the AI practice clip 😁

    • @Fireship
      @Fireship  Pƙed 4 lety +2

      Thanks for sticking around until the end of the vid :)

  • @suyashdongre
    @suyashdongre Pƙed 8 měsĂ­ci

    Excellent video. Helped a lot.

  • @asandax6
    @asandax6 Pƙed rokem

    After learning basics in multiple languages It's became easier to solve problem no matter what language it is because they are all the same (The Logic part at least). I can also translate code from one language to another even if I've never seen any code of that language before since they are the same. OK there are some outliers like Assembly and Esoteric languages.

  • @muhammadahmed8571
    @muhammadahmed8571 Pƙed 2 lety

    Your voice is so soothing to hear.

  • @avishai2345
    @avishai2345 Pƙed 2 lety

    Excellent as usual!! đŸ’ȘđŸ»đŸ’ȘđŸ»

  • @v_iancu
    @v_iancu Pƙed 2 lety

    In the test part I would create an actual pull request on a separate repo to see that the logic is good and more importantly, the API behaves the way I expect it to.

  • @lubaaudio
    @lubaaudio Pƙed rokem

    great video. I specially like the quote from Paulo Coelho.

  • @adri_owns_this
    @adri_owns_this Pƙed 4 měsĂ­ci

    I love how the solution to my problem came up while I was watching this XD