The Best Way To Learn Programming

Поділитися
Вставка
  • Опубліковано 26 сер 2024
  • Recorded live on twitch, GET IN
    / theprimeagen
    Become a backend engineer. Its my favorite site
    boot.dev/?prom...
    This is also the best way to support me is to support yourself becoming a better backend engineer.
    MY MAIN YT CHANNEL: Has well edited engineering videos
    / theprimeagen
    Discord
    / discord
    Have something for me to read or react to?: / theprimeagenreact
    Kinesis Advantage 360: bit.ly/Prime-K...
    Hey I am sponsored by Turso, an edge database. I think they are pretty neet. Give them a try for free and if you want you can get a decent amount off (the free tier is the best (better than planetscale or any other))
    turso.tech/dee...

КОМЕНТАРІ • 586

  • @SimGunther
    @SimGunther 5 місяців тому +3946

    1. Draw a circle
    2. Draw the rest of the owl

    • @richardmenz3257
      @richardmenz3257 5 місяців тому +116

      1. Draw a circle
      2. Draw a hawk
      Manager: ship it. It’s good enough.

    • @cd-zw2tt
      @cd-zw2tt 5 місяців тому +24

      every single download guitde

    • @CW91
      @CW91 5 місяців тому +20

      1. Trace on the dotted lines to draw an owl
      2. Draw an elephant on a blank piece of paper

    • @omomer3506
      @omomer3506 5 місяців тому +1

      I love that subreddit

    • @hansgluck5228
      @hansgluck5228 4 місяці тому +1

      thats wrong, your forgott one thing. you dont know what a owl is. Thats the problem with all teachers?

  • @JesseGilbride
    @JesseGilbride 3 місяці тому +504

    "The master has failed more times than the beginner has even tried."

  • @tiko-
    @tiko- 5 місяців тому +1819

    no struggle = no gains

    • @ginxxxxx
      @ginxxxxx 5 місяців тому +31

      it so many words, and without youtuber help. the best way to learn how to program is to program

    • @Margen67
      @Margen67 5 місяців тому +3

      birb

    • @exginto8053
      @exginto8053 5 місяців тому

      lightweight bebe

    • @hendrywilliam
      @hendrywilliam 5 місяців тому

      @@ginxxxxx indeed, just get your hands dirty and keep banging your head against the table :)

    • @nogrammer
      @nogrammer 5 місяців тому +6

      ​@@ginxxxxx no pain, no gain.

  • @hansdampf2284
    @hansdampf2284 3 місяці тому +351

    How I learn programming is:
    - I want to build something
    - I learn about the thing I want to build and it’s surroundings
    - I try to find out how to build the things I need
    - I learn a ton of (at first) useless half-correct things along the way
    -I build the thing (or I fail to build it)

    • @MaynardFreek
      @MaynardFreek 2 місяці тому +8

      Mostly fail because of lack of training

    • @DasHeino2010
      @DasHeino2010 2 місяці тому +5

      I am new to this and I was really worried with that tutorial. I wanted to make a website. Now I made one with a simple calculator.
      But the first thing mentioned was: If you dont know HTML and CSS then dont bother watching this tutorial. And I was like AW man! :3

    • @gamester7152
      @gamester7152 2 місяці тому

      ​@@DasHeino2010 then just learn general use of html and css and then move on. If youre confused just search google and take note.

    • @razpaqhvh7501
      @razpaqhvh7501 2 місяці тому

      @@MaynardFreek then you keep doing it until u succeed

    • @artemis-arrow3098
      @artemis-arrow3098 Місяць тому +9

      how I learned programming
      1. think of a project
      2. start creating it without having the slightest idea where to begin
      in all seriousness, C was my second language, right after python
      my first project in C was a ring 0 rootkit for linux

  • @xTriplexS
    @xTriplexS 5 місяців тому +926

    Can confirm. Throughout my school years, I learned more when my teachers made intentional mistakes and explain why doing that was a mistake

    • @Gregzenegair
      @Gregzenegair 2 місяці тому +5

      intentional mistakes

    • @FlowersByIrene
      @FlowersByIrene 22 дні тому +2

      Same when I watch videos of people coding and they don't edit out the mistakes. Sometimes that mistake is a complete tangent and they have to scrap the whole thing.

  • @xiongbenjamin
    @xiongbenjamin 4 місяці тому +245

    I studied programming for two years and didn’t understand. I learned better by looking at the end result. Then I broke each component of the architecture down to its simplest. Started with the end and worked my way to the start. Kind of like trying to build a tv for the first time by taking apart all the parts of the tv and understanding each component.

    • @fulldeploy
      @fulldeploy 4 місяці тому +42

      This is why I recommend new programmers learn to read code first before learning to write it.

    • @twistertee
      @twistertee 4 місяці тому +10

      Could you clarify? What's the difference? Isn't learning how to read natural language done by teaching how to write?

    • @fulldeploy
      @fulldeploy 4 місяці тому +24

      @@twistertee Both are important, but you can’t know how to write well if you don’t know how to read what good writing is. Same with writing software. Yes you learn by doing, but you can speed up your learning by reading good code.

    • @comradecameron3726
      @comradecameron3726 3 місяці тому +4

      @@twisterteeHell no. You don’t learn to read by learning how to write.
      That’s not how language works.

    • @kettelbe
      @kettelbe 2 місяці тому +1

      ​@@comradecameron3726 yeah that s why Kids never do step by step their poems et lol

  • @Evilanious
    @Evilanious 5 місяців тому +296

    I think there's room for both. Showing a final result can give an idea of how a concept is supposed to work. It builds understanding but not skill. Just trying stuff until it works builds resilience and skill but if you don't understand why what you made works you're missing out. You might also keep doing stuff in inconvenient ways because your working in a way that's locally optimal but globally subpar. So I think there needs to be a split of 30% new concepts cleanly introduced and 70% unguided or lightly guided practice.

    • @EddieVillamor
      @EddieVillamor 4 місяці тому +14

      Agreed, what if the person is a junior, they're just gonna have a much longer learning curve when the senior could have helped skip a lot of the reading.

    • @aceman0000099
      @aceman0000099 3 місяці тому +1

      I think you look at the result, realise it's too hard, do your own thing, learn a little bit, struggle, try something new and that Maybe works and then go back to the perfect way and you understand it. You can skip a week of trial and error but still learn

    • @Antri-jd9jy
      @Antri-jd9jy 3 місяці тому +5

      Exactly, it is simply too black and white what primeagen suggests, it is always good to try on your own first and really try to solve the problem but if nothing comes up, then looking for guidance is totally fine as long as you try your best to understand why it works that way. I mean this is why we have education, it is simply too inefficient for every invidual to just try stuff on their own, and hope they will magically figure it out one day.

    • @upcom1ng116
      @upcom1ng116 3 місяці тому +2

      Has anybody taught a baby a walking theory?

    • @aceman0000099
      @aceman0000099 3 місяці тому

      @@upcom1ng116 yes

  •  2 місяці тому +33

    I still didn't see anyone else teach like Jeffrey Way from Laracasts. His approach is pure learning. He builds on the screencast the wrong version, shows you the error, then fixes it (kinda), shows you the way, and then improves the fix again. He is just brilliant.

    • @jonathanjohnson2785
      @jonathanjohnson2785 Місяць тому +1

      So true. That dude takes you through the entire process and that is where real learning happens

  • @Atrain1349
    @Atrain1349 3 місяці тому +11

    It’s important to see the final result when you are first learning. This is because when learning something new, most times you never understand the “why”. The end result gives you an answer to this “why”. Then when you dive into the code and learn more about the individual parts, the “how” becomes clear. Next thing you know you have a solid end to end knowledge of an application.

  • @sods2731
    @sods2731 25 днів тому +3

    What has helped me more in learning to program is getting to the point where I have just enough knowledge to know what I need to look for if I get stuck, and to be able to properly translate the code into english that makes sense. When I first started out, no one said in any of the classes I had about it or any of the videos I watched, some of the most important advice which is to look at the documentation for the language you are using. Being able to understand what something is doing is far more helpful than just being told "use this because it's correct". It also helps to realise that translating the shorthand into the full phrase helps you to understand it, like in for loops when an "i" is used, if you don't know what "i" is, or what "for" does but you get told "this is for iterating over data" it can be very confusing, and is far more helpful to say "the i stands for iterator, and reading what a for loop does goes something like this 'for each i (iterator), do these instructions'"

  • @selewin
    @selewin 5 місяців тому +61

    How I learned it is to do the step by step solution and then start figuring out what means what. And tweaking things try and adjust the solution to fit my current problem better. After a few of those you have a general understanding of how things work and when you do the proper way of learning then it's a lot faster. But this keeps my interest high

    • @ginxxxxx
      @ginxxxxx 5 місяців тому +1

      you should call your tech "hacking" and also when you really understand it you should call it "grok"
      you will be fame

    • @kintenle8882
      @kintenle8882 4 місяці тому +3

      Same. Tho Id like to add, once I get comfortable with it / highly intrigued I'll start challenging myself, doing X but out of context, without handholding. This is the final step that will solidify all that I've learned

  • @Rose-ec6he
    @Rose-ec6he 5 місяців тому +14

    I agree 100%. Most learning comes from making assumptions about a system and doing things that rely those assumptions, and looking back at those assumptions to reasess your understanding until you stop failing. True understanding does not come from memorisation but from making assumptions and repeatedly interrogating them until your understanding grows to account for most nuances and edge cases

  • @thehibbi
    @thehibbi 5 місяців тому +40

    Why would I rebuild X?! Elon dominates the market, there is no way I could compete with him

    • @user-dj9ys9tq4x
      @user-dj9ys9tq4x 5 місяців тому +5

      i was looking for that comment

    • @astrahcat1212
      @astrahcat1212 2 місяці тому +1

      X is billion dollar software so if you make 0.1% of that you're good.

  • @MyCodingDiary
    @MyCodingDiary 5 місяців тому +9

    Your energy and enthusiasm are contagious. Love it!

  • @tongpoo8985
    @tongpoo8985 2 місяці тому +1

    This is correct and it applies to a lot of stuff, it's how I learned Solidworks really quickly. Went through a youtube tutorial series, and I'd always pause the video and try to draw/model the thing myself, then after I was done, I'd watch the professor do it. The first part was where I really learned my way around the software in-depth and independent problem solving, then watching the professor do it after showed me where I messed up, best practices, and shortcuts and techniques I could've used.

  • @Playeroth
    @Playeroth 4 місяці тому +1

    that's absolutely true. i found that by myself, was more productive if i only had what i need but not the result, this way i can work my way to the result.

  • @LuLzezRoflcopter
    @LuLzezRoflcopter 6 днів тому

    Makes sense. Same was true in math class. Watching the teacher work through a problem is completely different to you being given a unique problem and asked to work through it yourself.
    A very easy trap to fall into was just watching lots of math videos and watching the teacher work through problems and go yup it all makes sense seems easy. Approaching a problem alone and figuring out what tools to apply yourself for the solution. It’s like a muscle, you gotta put the work in yourself. Watching others only helps to a certain extent.

  • @nikolastamenkovic7069
    @nikolastamenkovic7069 23 дні тому

    Whenever this reel comes up in my feed, I watch it. Precise and beautiful explanation of what learning is.

  • @OIP_1
    @OIP_1 3 місяці тому +1

    this is absolute facts. the struggle is where you get the understanding. the caveat though is you can get stuck in bad habits without someone to help you optimise your cobbled together solutions.

  • @TheDmviper
    @TheDmviper 5 місяців тому +46

    One way to get understanding is through failure. You let reality tell you you're wrong over and over again until things start to work. And the hope is that things work because you understand what you did.
    Another way that I honestly think is better and almost never addressed is by starting with the right answer and trying to break it. You look at each step and think of all the ways you could do it differently and then see if they work or why they don't. Basically, you go backwards in an attempt to prove to yourself the "correct" version is actually correct.

    • @22albi22
      @22albi22 5 місяців тому +2

      Proof by contradiction 👌

  • @GloriousReign
    @GloriousReign 3 місяці тому +10

    As someone learning to code this 💯 facts . And you have to read the damn docs. .

  • @hitbox7422
    @hitbox7422 Місяць тому

    exactly that. My mentor told me what an array is, different data types for variables/functions, what functions and parameters are, how to create a class, how to build a constructor for that class and so on and so on .... In the end he told me "and now, here is an actual project im working on right now, i can't be bothered to do it myself, but i think for you it would be the perfect training case to work on".
    I can now do this stuff with my eyes closed.
    Edit : I knew most of the stuff i mentioned earlier before my mentor got into those things with me, but the bottom line is, that i learned those things "for the sake of repeating it", i never really got into using those principles on a daily basis. Through him i developed a natural understanding on how to dissect the amount of states within a function for example, or why it is so important to use Type- over JavaScript if your building actual React components. These are lessons you are not going to figure out yourself without hands on experience, a lot of Junior Dev's write singular functions and write everything in global lets- or constants, let alone useful documentation. Properly using function/variable scopes and reusable class components is an important lesson.

  • @xandercorp6175
    @xandercorp6175 5 місяців тому +47

    This has an element of truth, but is dangerous to follow to an extreme conclusion. Throw them in the deep end, sure, but make sure they have working arms and legs first.
    The first method is great for getting up to speed on specifics when you know what you're doing generally, the second builds character - but only if you have those basics down first. You have to build up both parts of your personality, passive and active motivation and perception.

    • @alansmithee419
      @alansmithee419 5 місяців тому +1

      Almost everything is dangerous to take to the absolute extreme.
      This is intended as a nudge in the right direction. How far to take it will be dependant on the individual and how that person finds they learn best.
      Indeed, all he is really saying here is to *avoid the extreme* of "just copy what someone else did."

    • @xandercorp6175
      @xandercorp6175 5 місяців тому +2

      @@alansmithee419 The capable mind learns what's laid out for it, then goes to find more. It's true that you learn to think by thinking for yourself; but once you've learned to do that to a proper degree, the conveyor belt system only helps you.
      Trying to get everyone to bootstrap themselves constantly is both an accelerant at the bottom 2% and a brain tax everywhere else.

    • @alansmithee419
      @alansmithee419 5 місяців тому +3

      @@xandercorp6175
      The video is about learning, not about doing. So any complaint you have that this isn't effective once you have learned is irrelevant.
      You *learn* almost nothing by following the steps of a tutorial like-for-like. *That's all this video is saying.* It can get a job done sure, but you don't learn. If you want to learn to provide skills beyond "I can copy paste code" or want to make your own stuff, you have to learn by doing it yourself at some point - which is something you say in your comment. So we are not in disagreement it seems. You just misinterpreted what he's saying.
      "Trying to get everyone to bootstrap themselves constantly..."
      My entire previous comment was dedicated to explaining that he wasn't advocating for any extremes like this. If we go the other way:
      Making everyone copy code all the time without ever doing any coding themselves would lead to a severe loss of skills in the industry that would ultimately destroy most opportunity for innovation and progress, as well as make bugfixing almost impossible.
      See how that doesn't work as an argument against anything you said, because you never advocated for that? That seems to be what you are doing, just in the opposite direction.

    • @xandercorp6175
      @xandercorp6175 5 місяців тому +2

      @@alansmithee419The video is about learning to program, not about learning to learn (learning is also a kind of doing, anyway).
      You do in fact learn a lot by copying how something is done by others, that's how reverse engineering takes place and isn't a casual intellectual endeavour. The problem is stopping there, not doing it in the first place. What people need to remember to do is to set their own goals, and learn from the result.
      People who like learning don't need to be told this.

    • @TheCrusaderRabbits
      @TheCrusaderRabbits 4 місяці тому +2

      Sanity.

  • @dewanpretorius
    @dewanpretorius 5 місяців тому +3

    I think it matters at what stage you are. I've found that when beginning to learn a new language and you're learning the basics, it helps to do a bunch of projects just to get used to the language, and then to tackle something like described (i.e. to the point where the language and its syntax isn't the barrier, but what you are trying to do is.).

  • @hudsonreynolds4349
    @hudsonreynolds4349 13 днів тому

    Thats why I like learning it in college. Our classes overview the components then we have to go build X. Its great. Group projects, solo, long, short, languages & IDEs we know and ones we don't, our own project ideas or theirs, etc

  • @TheCodeTinkerer
    @TheCodeTinkerer 3 місяці тому +1

    That is the exact approach in the current course I am attending. I have never learned so much so quickly and retained it.

  • @crazycrazy7710
    @crazycrazy7710 Місяць тому

    First you learn the tools, then you learn how to use the tools to make small things to understand which tool works in what case. Repeat, play and get familiar with tools so that you can express basic ideas with them. This is important as then you know how to use the tool to shape your ideas in a way that can be created.
    Then you take a problem, break it down in sub-problems you can solve. If subproblem is too slow or too difficult, look for solutions or clever tool usage and reinforce your understanding of the tool used.
    This "playing with tools" is the process of learning. Repeat is a way to reinforce, solving better problems is the application + feedback loop which deepens the concept. They are not mutually exclusive, rather they comes one after the other. Skip either and you would not gain proficiency

  • @teresmajor7956
    @teresmajor7956 7 днів тому

    Same with music as well. Most people just play, but its the theory that accelerates your understanding.

  • @ADGroupOfArtMedia1
    @ADGroupOfArtMedia1 5 місяців тому +75

    So simple yet a deep philosophy

  • @AngmarAnvil
    @AngmarAnvil 4 місяці тому +1

    I like to be able to answer where why and how before starting to code, building a solution design proposal before moving to the implementation works for me.

  • @jarrettonions3392
    @jarrettonions3392 4 місяці тому +1

    Yeah.. this can be really tough, especially early on.. but it is the only way to get to making what you actually want

  • @1Manda1
    @1Manda1 5 місяців тому +107

    Issue with programming is that you can easily struggle, waste time, have mental anguish and not learn anything new.

    • @secretzpt176
      @secretzpt176 4 місяці тому +24

      You shouldn't look at it that way. If you struggled to do something it means that you were approaching the problem the wrong way. Eventually finding the right way not only teaches you what the right way is, but also how the other things you considered can and can't be applied.
      When you wasted time, many times you actually came out learning a lot more than if you get it right the first try.

    • @scrimb
      @scrimb 3 місяці тому +4

      i've never had this issue ever. how do you not at least learn that your incorrect approach was not an efficient way of solving the problem? you can at least eliminate a couple of variables this way

    • @youcefdz5598
      @youcefdz5598 3 місяці тому +2

      i'm a cs student second year , i jumped into native android app developement with java , i can tell you it's complex . 95 % of the time i try to do something new it doesn't work and i struggle my ass of to get it working and that made me learn a lot , it's been almost a month and the amount if stuff i learnt is astronomical

    • @demolazer
      @demolazer 2 місяці тому

      Been there every week

    • @PixelThorn
      @PixelThorn 2 місяці тому

      That goes with all learning, try pottery, you will realize you go through these steps even there

  • @johnathanrhoades7751
    @johnathanrhoades7751 3 місяці тому +1

    I’ve done a bunch of tutorials, but am currently working through the second half of nand2tetris and it’s ways better. They say “here is how our assembly language works with the virtual hardware. Now make a multiplication program” and I had to figure out how to use the three available registers and do it out on my own. And then I took that and made something to do integer division. Way better than most tutorials I have had.

  • @dnhatanh
    @dnhatanh 5 місяців тому +12

    Love it. We only learn from being wrong. The struggle is real, and worth it.

  • @Hellmiauz
    @Hellmiauz 2 місяці тому +1

    That's one way.
    Copying even understanding what you copied has little value. On CS50p for example they teach you the base case, and then to solve the problems you'll never make it with that base case alone, you have to think and go read the python docs, libraries docs, whatever.
    Each problem is a struggle, but it feels so good when you finally solve them.

  • @ShilohFox
    @ShilohFox 5 місяців тому +2

    i learned programming mostly by step by step direction when i was a kid. it worked for me for most of it, but my troubleshooting skills DEFINITELY came from me screwing around and making tons of mistakes with those directions.
    You still learn, especially when even following the directions doesn’t work. Then you gotta figure out what dumb crap you did to mess up, then you learn troubleshooting.
    my learning path is unique though. i am autistic and have a severe special interest in programming. i was so determined that i would destroy my sleep and school schedules and pretend to do schoolwork when i was actually programming

  • @Fs3i
    @Fs3i 5 місяців тому +54

    I know that prime speaks with an authorotative voice, but actually people have studied what works best.
    They've looked at high-schoolers learning to program (I think in the Netherlands), and split it up in three groups:
    - One was mainly focused on learning code through reading, i.e. they read code, discussed code, and then implemented new stuff.
    - One was mainly focused on writing code, i.e. the thing that is described here. A bit of guidance, but mostly trial-and-error
    - The third group was a mixed group with both, but still a large focus of intentional reading.
    When it came to performance in tests afterwards, the reading and mixed group were fairly close in performance, but the mixed group won out.
    The "mostly-trial-and-error" group did the worst of all. The conclusion of the study-authors was that too much emphasis is placed on writing of code, and trial-and-error, and too little of just reading comprehension.
    We need to do more stuff like "explain what this piece of code does in your own words?" and also things like "why does it have this bug?" "which method implements this?" "describe this function in your own words"
    I think, yeah, just following a tutorial is stupid. But reading, the "clean solution by a master" is something that is undervalued in programming courses all over the world!

    • @asdfljasdfaklsd1910
      @asdfljasdfaklsd1910 5 місяців тому +3

      Yeah what he is describing is how experienced engineers learn something new. When you have a foundation, context, and a lot of preexisting knowledge it’s a good way to go.
      For everyone else it is not and you will likely fail

    • @ReganDryke
      @ReganDryke 5 місяців тому +1

      @@asdfljasdfaklsd1910 What he is describing is how we build a body of knowledge so that the trial and error step can be minimized in the future. Especially for learning.
      It's a waste of time to have student reinvent the wheel especially when you get to anything complex. They don't have the time for decade of trial and error to reinvent modern solution that a stack overflow thread would have given them in 2 minutes.

    • @asdfljasdfaklsd1910
      @asdfljasdfaklsd1910 5 місяців тому +2

      ​@@ReganDrykeYour tone implies you think you disagree with me but your words don't seem to contradict what I said, so I suspect you didn't understand my point.
      Trial and error is often what occurs when a student with little background tries to got their own way in getting to a solution. It's not good.
      For more experienced programmers, it's not trial-and-error; you have enough background to reason through things. In this case, going your own way to get to a solution can be a useful and productive way to learn.
      On the whole, I think the original video makes a bad point.

    • @alansmithee419
      @alansmithee419 5 місяців тому

      All he said to do was avoid your example 1 by *shifting toward* example 2 - the implication of this is you end up in example 3.
      You and him agree from what I can tell. I don't know why everyone is interpreting what he's saying in this extreme absolute sense. He's just saying "don't do option 1."

    • @monkeibusiness
      @monkeibusiness 5 місяців тому +1

      Yeah, thanks for your post. All it does is frustrate the shit out of people who then give up. Not everybody is autistic and sticks with it fail after fail after fail after fail... and as you said, while learning at a slow pace doing that.
      When you start out, you need to see how its done right instead of wasting your life away.

  • @rabiddoughnuts
    @rabiddoughnuts Місяць тому

    My teacher taught us the very basic principles like what strings are, what for loops are etc, and along the had us practice things with no real guidance other than, build this, you should know all the tools you need already, you could get help if needed, but she was great about not giving answers but a gentle nudge in the right direction, i loved her.

  • @PinakiGupta82Appu
    @PinakiGupta82Appu 5 місяців тому +1

    You add value to people's experiences. That's something I like about you. Yes, learning by doing is the most effective way to acquire experience. Look at the problem. Break it into steps. Think from there. Good work, keep it up!

  • @jiggy17
    @jiggy17 3 дні тому +1

    "that will never ever work" i doubt that. Looking at an already written code can give you a lot more insight than just knowing what it does.

  • @adammontgomery7980
    @adammontgomery7980 5 місяців тому +4

    I'm a hobbyist, and still don't understand how people design programs. I just bang my head against the keyboard until something approximating my intent happens. I've always learned better with the 'over the shoulder' approach

    • @willd0g
      @willd0g 4 місяці тому +1

      Keep going. You’ll be the one over someone else’s shoulder. I realised when it happened to me.

  • @shoaib_akhtar_1729
    @shoaib_akhtar_1729 Місяць тому

    I have never seen such an educator who goes to the underpinnings of learning, eager to follow you to learn more.

  • @Sarg0goldleaf
    @Sarg0goldleaf 2 місяці тому

    Currently going through the process of learning how to code. The places with higher quality teaching use a blend of both. They usually do the first method of teaching you step by step. At the end of a section they use the second method, usually something along the lines of, "now use what you've learned and build some stuff out of it like x, y, or z."
    Imagine teaching gravity by dropping apples on student's heads and then asking them to create a mathematical proof for what just happened lol

  • @xealit
    @xealit Місяць тому

    that's right, but I would say there is value in executing a known plan too. Especially if someone explains you the idioms in the solution, etc. The point is that these are different things: learning something, developing, operating it. And it is really overwhelming to overlap them, to do each at 100% at the same time. Especially if you have deadlines. You want to learn things separately as much as possible, then apply what you already know to some extend in development. Yeah, there there will never be a perfect split. You will certainly need to learn in the real project. But it is possible to learn ahead, and it will make your life much easier if you go into a real project with some basics learnt in a simpler situation.

  • @kwith
    @kwith 24 дні тому

    That's what I'm doing right now in my course. I'm told about various features and then the challenge is to make X. Sometimes it's easy sometimes you have to read documentation. The documentation is told to you as well so part of the onus is on you to read to figure it out.

  • @servantofthelord8147
    @servantofthelord8147 Місяць тому

    Wow. This is a perspective shift. Now on Leetcode, I’m going to look forward to the “Wrong Answer” status as a sign that I’m learning! And the “correct answer” is simply just the final result.

  • @Xeoncross
    @Xeoncross 2 місяці тому

    If you swap programming for cooking I think there are some issues following this approach if you take it too literally. However, avoiding too much hand-holding and micromanaging is certainly a good thing.
    I would recommend starting with full instructions and slowly leaving out larger and larger steps for them to figure out.

  • @jonr4651
    @jonr4651 4 місяці тому +1

    Is this before Thor got his second puberty and his voice dropped?

  • @quibster
    @quibster 4 місяці тому +2

    There's a construction set called Meccano by the old toy company Hornby, this exact understanding was known to them at the time of construction (it's as old as 1898) where they would intentionally fudge the instructions with mistakes, so that the individual creations would become more unique. This concept is lost to time as people are hungrier and hungrier for learning but refuse to subject themselves to any failure or strife.

  • @robertfox4114
    @robertfox4114 5 місяців тому +1

    That's how I feel on learning C with K&R. First i try to make the stuff that is vaguely explained in the book -> fail -> read the example code -> take notes on the stuff you did wrong.
    Also the exercises at the end of each chapter are a good way to get stuck for a week.

  • @SlitDiver
    @SlitDiver 5 місяців тому +1

    I learned to programme by building games in batch back in the early days of youtube. There was very few tutorials or guides on games in batch, but I thought it was really cool, and eventually worked my way up to other languages. I learned because I had to figure out the code myself.

  • @michalkrsik2702
    @michalkrsik2702 Місяць тому

    This is also the reason why there are so many "smart" frameworks on how to be more productive and whatnot. It is not the final output that is what makes you better, it is the process of discovery for that one person.
    Learning is the journey. Final answer is just information.

  • @alexandratsankova5825
    @alexandratsankova5825 Місяць тому

    To be fair, the first approach does help if you already have some prior knowledge in programming. It is how i learned Java (after already knowing C and Pascal) as it outs me directly in the deep end, by blazing me through the basics to the things I'm interested in

  • @johanmbaabu1580
    @johanmbaabu1580 Місяць тому

    the most sensible guy on youtube advincin programers

  • @MgelikaXevi
    @MgelikaXevi 3 місяці тому

    exactly. This is why, even if you poured a year into "doing courses" - you still can be completely confounded when you try to build something from a scratch.
    Use course to familiarize with concepts and fundamentals, and then start your personal project.
    Also, when you learn something new while ALREADY having experience with your own projects and mistakes - you gonna learn A LOT more and much more efficiently.

  • @lukaandjelov766
    @lukaandjelov766 4 місяці тому +3

    When he started explaining I thought he was gonna tell us why AI will be able to do this as well if not better and faster.

  • @MisterDevel
    @MisterDevel 4 місяці тому

    That's why I do retro coding. A lot of pain, a lot of learning.

  • @AROAH
    @AROAH 2 місяці тому

    This methodology is how I’ve learned nearly everything in my life, and now I make more money than two of my friends combined without ever going to college.
    Never doubt what perseverance can teach you.

  • @StarnikBayley
    @StarnikBayley 4 місяці тому

    the best way to learn is to have an end toy application in mind. then use the documentation and tutorial to achive the "application" you had in mind.. you will get a general idea of the language/framwork/library/api capabilites and the gaps it has and it keeps you motivated to learn..

  • @Choco794
    @Choco794 3 місяці тому

    That’s why building projects are beneficial and so vital to ingrain knowledge.

  • @chad_giga6934
    @chad_giga6934 5 місяців тому +8

    It ain’t learning if you ain’t fail

  • @scene-famous
    @scene-famous 4 місяці тому

    correct, this is how I learn by myself, by trying and failing over again till i get it right or just search for the answer if I cant figure it myself.

  • @kaiser724
    @kaiser724 4 місяці тому

    Dam Schiffman sort of does both of these. He will make videos where he’s live coding some concept and actually figures out some things on camera rather than just showing the step by step. This allows at least some of that learning process to be done even if the learner is just copying what he’s doing. I think for complete beginners this helps a lot and shows them that even an experienced programmer goes through this process over and over, and they can just do that themselves

  • @RGcrasyRG
    @RGcrasyRG Місяць тому

    The amount of failures I encountered doing a simple Pong game all by myself after "successfully" completing courses/tutorials was astonishing.

  • @terry2295
    @terry2295 3 місяці тому

    That’s literally how I teach myself pretty anything.
    Rarely do I do courses on stuff, I mostly just start trying something then inevitably fail and reading up on my precise point of failure and fixing it.

  • @xkali8119
    @xkali8119 4 місяці тому

    I agree, you should just make X as learning practice. Some source code was even published not too long ago, so when when you're ready you can check your code with the original.

  • @3-valdiondreemur564
    @3-valdiondreemur564 3 місяці тому

    If your students don't faceplant head over heels while learning, they're not learning. You're handing out answers, not questions.

  • @Coreplay_
    @Coreplay_ 4 місяці тому

    The way I've been learning is the first thing that you said. BUT there's a challenge at the end of each stage that revises what you learned during the stage that you do yourself.

  • @The_flipsideview
    @The_flipsideview 5 місяців тому

    This might not be general and all but when i was learning programming at school, we were given a step by step guide(pseudo code) in our assignments and after we did that we had another assignment that has a description of the wanted program and an exemplary output. This way, the step by step guide gives you a way to know the language and the second assessment let you test if you understand what you have just learnt.
    I dont know if this is the full video but if its like what you said where you just try to write a code by your self after learning a language. There is a big chance you wil give up especially if you are very new because programming can really be confusing.
    Although you will learn from mistakes but not a lot and you will waste a lot of time. This is in most cases because you will only learn how to make your program work not how the codes you are actually using works. When you now have to use the same code in another work you will go and google the same thing again so that it will work for your program.
    What works for me is to read the notes and understand the basics, and when i want to code, i write a pseudo code and i follow the it in my program and correct my mistake along the way. After that i run my code, if it is working well, praise to god, if not , i try to solve it till i am stuck and i seek help.
    These are just from my own experiences. It does not apply to everyone but i think there is no one strong way to learn programming. And you dont have to choke yourself with all the little bugs from early on because you will make the mistakes many times again in the future and you will google it again.

  • @matthewread9001
    @matthewread9001 29 днів тому

    That’s how I learned android development (I’ve been programming in other languages for years). I watched a step by step tutorial to make one project. Then took what I learned about the environment and made my own project.

  • @miras1433
    @miras1433 3 місяці тому

    To me, coding grows exponentially abstract. Seeing the bigger picture is a must. It's about absorbing a large amount of specific information, compressing it into an idea, applying it to something useful, then moving on to the next new topic.

  • @Lil_Puppy
    @Lil_Puppy Місяць тому

    Back in my day.... we bought the language book and reverse engineered programs we found on the second hand computer our parents bought us at a garage sale.

  • @brockobama257
    @brockobama257 4 місяці тому

    My intro to code was
    1. Oh you can execute javascript in chrome dev tools
    2. Oh you can approximate pi through math summations ill implement every sum known to humanity
    3. I kind of like this ill think ill build something

  • @saultube44
    @saultube44 Місяць тому

    The thinking is what doesn't happen much in the learning, it's mostly memorizing

  • @m3mes420
    @m3mes420 5 місяців тому +1

    The first one falls under tutorial hell. Second one is actually learning.

  • @BertoLaDK
    @BertoLaDK 5 місяців тому

    Im in a class with a bunch of other guys where we do electronics, and currently its all arduino programming, luckily the teacher is actually somewhat doing it in the right way and giving them problems that they have to solve on their own. Im bored af as I do programming as a part of my Apprenticeship soo, but its great seeing how others learn it and also helping them.

  • @iamthebubb
    @iamthebubb 4 місяці тому

    That is the best way, someone should show you something, then tell you to try multiple things using what they just showed you

  • @JediCore
    @JediCore 5 місяців тому

    The most important part in the middle is to show you HOW and WHAT to look for the stuff you need to do X. This is the issue I see everywhere. Point me to the somewhat vague but right direction and I'll do the rest by myself and go through the learning process. But if I don't even know where to start, I simply won't

  • @asdfghyter
    @asdfghyter 5 місяців тому +15

    i think at the very very beginning the first method can be useful, just to give some basic framework, but you should start doing the second as soon as possible or maybe even in parallel

    • @nilscoussement
      @nilscoussement 5 місяців тому +5

      Yes,
      You tell people of the journey
      Only when they know of the journey, can you explain parts of the trip.
      That order is not important though
      But if yo don't understand where your data is coming from, you will never learn how to 'create a page'

  • @RaigyoEcU
    @RaigyoEcU 3 місяці тому

    Yep, sometimes when you read UA-camrs code is like how the hell did they think of this perfect piece of code? But actually they iterated so many times

  • @evolagenda
    @evolagenda 5 місяців тому

    I've been looking for a way to put this into words about a year now thank you

  • @aribaariba8609
    @aribaariba8609 4 місяці тому

    How i learned is to code over and over again , and watch youtube tutorials while solving my problem over and over again.

  • @youcefmantas4944
    @youcefmantas4944 5 місяців тому +4

    Can you please provide us with more tips like this im honestly really counting only on you on my journey of learning , i watch all your videos even tho most of time i don’t understand what you’re talking about but i make researches on topic but please keep on giving us more tips , i hope you can read comments even tho i know you are always busy building and reading about amazing stuff , keep it up !!

    • @SimGunther
      @SimGunther 5 місяців тому +1

      He's not the only mentor you can read about for tips and research papers relevant to your specific kinds of projects. That struggle will mold you better than any generic kind of advice pointing you in the right direction. You still have to conduct the experiments and go through the struggle.
      Have a wondrous and splendid experience in your projects!

    • @v0id_d3m0n
      @v0id_d3m0n 5 місяців тому

      Same here💙

  • @huffinLeeroy
    @huffinLeeroy 4 місяці тому

    I never got it in school. Later in life, I decided to try learning it again, so I tried all the books and UA-cam tutorials I could find...still didnt get it. Then, a friend got me into arma. I loved the game and became curious about the creative possibilities the scenario creation afforded. I picked up the basics quite quickly. Because no one is saying "do this this and this to create this", I was self teaching by finding an incidental, self-created, problem; and working out not only the coding around it, but also different ways of applying types of structures to different problems, and later how to optimise. Now that same friend (who is a professional programmer) asks me for my scripts and functions! I then found that going to other languages was a breeze, and I was able to pick them up quickly and create some awesome things. Long story short, the benefit of self education is enormous. Finding your own problems and finding your own way around them with the assistance of the available resources (forums, programming tutorials, etc.) provides the most robust skill set you can achieve.

  • @onihae9063
    @onihae9063 4 місяці тому

    This is true. Really fortunate I had a great mentor of a lead back then on my first job.

  • @parkerhyde_
    @parkerhyde_ 5 місяців тому

    For me, it is impossible to learn anything without this method. This is the way

  • @demonman1234
    @demonman1234 4 місяці тому

    I learned by going head-first into projects and then studying pre-existing opensource programs to figure out what it did/how it worked, only using documents or youtube if I got stuck.. it worked pretty well so far. Also, sure, this probably isn’t the best way to learn since everyone that makes the open source programs are at a different skill level, so I could be looking at a complete beginners program or a professional. I didn’t care at the time though as I just wanted to learn basics. Sure, there’s probably a better way to do things but oh well, I’ll learn those as I go.

  • @erikgrammeltvedt9117
    @erikgrammeltvedt9117 5 місяців тому

    In context of learning true, but for completing tasks one can’t reinvent the wheel every time. I can’t write the numpy array library, but I can learn how to use it. Programming is built on “final results “, I might not understand the context though as it is a short.

  • @pregooooooooski
    @pregooooooooski 3 місяці тому

    In my OS class had to build specific components. However, understanding a mid/large scale system and tweaking it is also highly valuable on a real job; not as easy as it seems and many times more difficult than to start from scratch. Looking at others people’s code is how you learn as well. You rarely do things from scratch. A mix pf both is ideal IMO

  • @SaiyanSpiritSeven
    @SaiyanSpiritSeven 4 місяці тому

    Free Code Camp does the best version of this that I've seen.

  • @lethil
    @lethil 5 місяців тому

    100% I would no way call my self a programmer, but I can knock out some tools, small scale things and trouble shoot and that's only because I took on learning how to my self, learnt the basics, came up with a project, made it, failed a dozen times along the way until it began to work. Thats enough to get you by, but what really kept me learning was refactoring and doing the same thing again but better with the new knowledge you have.
    Nothing is more rewarding then looking at some of your old code and seeing how far you have come and whipping up an old tool to be better (As long as you remembered to comment for yourself/others haha)

  • @michaelbennett7396
    @michaelbennett7396 4 місяці тому

    It's called scaffolding - it's essential for the learning process. That's why people and toys helped you with your first steps; why you went over dotted lines when writing or learning to draw etc.

  • @xandroid001
    @xandroid001 5 місяців тому +1

    Thats why fundamentals is the most important part of learning.

  • @MyCodingDiary
    @MyCodingDiary 5 місяців тому

    This video is like a ray of sunshine on a cloudy day.

  • @human_brian
    @human_brian 4 місяці тому

    Trial by Fire is the best way to learn anything, I think. I was given a job as a Linux admin 7-8 years ago and knew 1 Linux command (ifconfig if you must know). I learned rapidly how to be a Linux admin, probably helps that I was a Windows admin for 12 years prior so I had a solid background. I'm a mixed Windows, Mac,, iOS, and Linux admin now days. I teach my junior admins by giving them a task with specific details and deliverables. They either learn it or they fail.

  • @dev_taco
    @dev_taco 5 місяців тому

    The way you suggested to learn how to code is how I learned to code. The most astounding thing I learned was I just learned how to learn.

  • @vitalysuper3193
    @vitalysuper3193 4 місяці тому

    My way to learn programming: ok I’m doing full Minecraft rewrite in web

  • @stalinstylez4034
    @stalinstylez4034 25 днів тому

    Thank you… this is so true but hard too realise

  • @elementkingaming1947
    @elementkingaming1947 5 місяців тому

    The way i learned from videos who showed you exactly how to do a specific thing, is i would than break down every component of the code and than figure out HOW it works and WHY it works, than build something different off that code component. Kind of like reverse engineering, that way i retain more information about it, and i gain new coding techniques that i can implement into my future projects. Its extremely helpful but it takes a long time to figure it all out

  • @aram5642
    @aram5642 4 місяці тому

    I actually like best those videos where the instructor runs into a problem and solves it live rather than edits it out.