The Best Way To Learn Programming

Поделиться
HTML-код
  • Опубликовано: 17 мар 2024
  • Recorded live on twitch, GET IN
    / theprimeagen
    Become a backend engineer. Its my favorite site
    boot.dev/?promo=PRIMEYT
    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-Kinesis
    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/deeznuts
  • НаукаНаука

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

  • @SimGunther
    @SimGunther 3 месяца назад +2931

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

    • @richardmenz3257
      @richardmenz3257 3 месяца назад +94

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

    • @cd-zw2tt
      @cd-zw2tt 3 месяца назад +20

      every single download guitde

    • @CW91
      @CW91 3 месяца назад +15

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

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

      I love that subreddit

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

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

  • @tiko-
    @tiko- 3 месяца назад +1346

    no struggle = no gains

    • @ginxxxxx
      @ginxxxxx 3 месяца назад +24

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

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

      birb

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

      lightweight bebe

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

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

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

      ​@@ginxxxxx no pain, no gain.

  • @xTriplexS
    @xTriplexS 3 месяца назад +696

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

  • @hansdampf2284
    @hansdampf2284 Месяц назад +136

    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 Месяц назад +3

      Mostly fail because of lack of training

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

      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 Месяц назад

      ​@@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 22 дня назад

      @@MaynardFreek then you keep doing it until u succeed

    • @artemis-arrow3098
      @artemis-arrow3098 9 дней назад +3

      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

  • @Evilanious
    @Evilanious 3 месяца назад +248

    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 2 месяца назад +12

      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 2 месяца назад +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 2 месяца назад +4

      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 Месяц назад +1

      Has anybody taught a baby a walking theory?

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

      @@upcom1ng116 yes

  •  29 дней назад +13

    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.

  • @xiongbenjamin
    @xiongbenjamin 2 месяца назад +155

    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.

    • @ProductDesignTalk
      @ProductDesignTalk 2 месяца назад +30

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

    • @twistertee
      @twistertee 2 месяца назад +8

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

    • @ProductDesignTalk
      @ProductDesignTalk 2 месяца назад +17

      @@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 2 месяца назад +3

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

    • @kettelbe
      @kettelbe Месяц назад +1

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

  • @selewin
    @selewin 3 месяца назад +54

    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 3 месяца назад +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 3 месяца назад +2

      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

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

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

  • @AngmarAnvil
    @AngmarAnvil 2 месяца назад +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.

  • @GloriousReign
    @GloriousReign Месяц назад +9

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

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

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

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

    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.

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

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

    • @secretzpt176
      @secretzpt176 2 месяца назад +21

      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 2 месяца назад +2

      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 2 месяца назад +1

      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 Месяц назад

      Been there every week

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

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

  • @tongpoo8985
    @tongpoo8985 29 дней назад +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.

  • @ADGroupOfArtMedia1
    @ADGroupOfArtMedia1 3 месяца назад +73

    So simple yet a deep philosophy

  • @OIP_1
    @OIP_1 Месяц назад +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.

  • @xandercorp6175
    @xandercorp6175 3 месяца назад +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 3 месяца назад +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 3 месяца назад +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 3 месяца назад +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 3 месяца назад +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 3 месяца назад +2

      Sanity.

  • @thehibbi
    @thehibbi 3 месяца назад +26

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

    • @user-dj9ys9tq4x
      @user-dj9ys9tq4x 3 месяца назад +3

      i was looking for that comment

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

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

  • @Rose-ec6he
    @Rose-ec6he 3 месяца назад +12

    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

  • @Playeroth
    @Playeroth 3 месяца назад +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.

  • @MyCodingDiarie
    @MyCodingDiarie 3 месяца назад +8

    Your energy and enthusiasm are contagious. Love it!

  • @TheDmviper
    @TheDmviper 3 месяца назад +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 3 месяца назад +2

      Proof by contradiction 👌

  • @dnhatanh
    @dnhatanh 3 месяца назад +12

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

  • @johnathanrhoades7751
    @johnathanrhoades7751 Месяц назад +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.

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

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

  • @Hellmiauz
    @Hellmiauz Месяц назад +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.

  • @chad_giga6934
    @chad_giga6934 3 месяца назад +8

    It ain’t learning if you ain’t fail

  • @hitbox7422
    @hitbox7422 2 часа назад

    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.

  • @dewanpretorius
    @dewanpretorius 3 месяца назад +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.).

  • @ShilohFox
    @ShilohFox 3 месяца назад +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 3 месяца назад +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 3 месяца назад +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 3 месяца назад +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 3 месяца назад +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 3 месяца назад

      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 3 месяца назад +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.

  • @quibster
    @quibster 3 месяца назад +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.

  • @adammontgomery7980
    @adammontgomery7980 3 месяца назад +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 3 месяца назад +1

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

  • @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

  • @lukaandjelov766
    @lukaandjelov766 2 месяца назад +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.

  • @PinakiGupta82Appu
    @PinakiGupta82Appu 3 месяца назад +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!

  • @SlitDiver
    @SlitDiver 3 месяца назад +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.

  • @robertfox4114
    @robertfox4114 3 месяца назад +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.

  • @Sarg0goldleaf
    @Sarg0goldleaf 27 дней назад

    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

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

    Starting Forth:
    F stars
    Shows you how to make F stars step by step.
    He doesn't explain, now complete the word 'FORTH' with the foundation given.
    That first chapter is really amazing as an example of the power of Forth.

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

    I never got it in school. Later in life, I decided to try learning it again, so I tried all the books and RUclips 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.

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

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

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

    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.

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

    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.

  • @servantofthelord8147
    @servantofthelord8147 9 дней назад

    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.

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

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

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

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

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

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

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

    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.

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

    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.

  • @Lil_Puppy
    @Lil_Puppy 9 дней назад

    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.

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

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

  • @scene-famous
    @scene-famous 2 месяца назад

    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.

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

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

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

    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

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

    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

  • @asdfghyter
    @asdfghyter 3 месяца назад +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 3 месяца назад +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'

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

    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

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

    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

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

    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.

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

    one of my profs, which ended up being my advisor during my master's program, did exactly that.
    All the other embedded courses were like 'you put this here and this here and this there, tada, now you have your robot moving'.
    His approach was 'Ok, we have this component that needs to do this. We use these concepts A B and C to implement functionality. Now go and implement' - and he'd have this huge codebase for a robot that can do all kinds of stuff with functionality left out to implement during the course.

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

    Thats why fundamentals is the most important part of learning.

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

    This is why when I create something, instead of using prebuilt methods by the language lets say “sort” usually when I first started I create my own version in for loop with diff sorting algos

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

    SoloLearn does a cool way of teaching coding. Either drag and drop the code to correct spots, type in missing pieces, or giving you a playground to manipulate code to see how it behaves. At the end of each lesson there is a problem you have to solve so ot gives you practical examples of each concept. You cant move on until the problem is solved.

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

    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.

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

    My simple rule, See the end result you wanna achieve and then break it step by step either from end result to the starting or starting to the end

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

    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)

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

    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..

  • @AROAH
    @AROAH 27 дней назад

    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.

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

    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.

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

    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.

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

    Well, you dont have to reinvent the wheel, you try to learn good practice

  • @saultube44
    @saultube44 8 дней назад

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

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

    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.

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

    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.

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

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

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

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

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

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

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

    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.

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

    I certainly agree with the point hes trying to make. but everyone has to start somewhere. depending on where you are in the learning process, generally lesson 1 of some completely new topic has to be directly shown to you before you can figure out other problems yourself
    im a comp sci grad with 2 years experience and I still ALWAYS have my first experience with a new technology be a 1:1 find the answer exactly how I want it done. then from there I work on doing more and more myself without external sources

  • @star-warsien
    @star-warsien 2 месяца назад

    Agreed, and this should be the case before you enter the industry.

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

    This is what in game dev is called tutorial hell. The way out or the way to prevent it is to force yourself to duplicate what you just copied by yourself using only the docs and references.

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

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

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

    Tutorial hell is real, I started with html 3 days ago and now starting with css. It's super fun! I hope to be able to apply for a job in the future. I originally worked in a catering buisness. It took a toll to my health and relationship with others. I'll fight!

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

      How did you overcome tutorial hell

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

      ​@@shafialanower3820He found a tutorial on it.

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

    Indeed, you learn by making mistakes, but getting help from others is a nice thing and it can also help with learning.

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

    THIS. I was "learning" js in the first way he explained. It felt like i progressed. Then i wanted to create something from scratch and saw i actually didn't learn shit.

  • @paininmydroid4526
    @paininmydroid4526 24 дня назад

    This is it. So, so accurate.

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

    GAH I wish my college professors took 2 minutes out of every other class to tell us. The assignment isn't to do it right, the assignment is to try and fail, because failing is where the learning happens.

  • @firemyst9064
    @firemyst9064 2 дня назад

    Failing is learning, I love it.

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

    I totally agree with that. Learning is a more practical thing rather than theoretical or just copy pasting.😊

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

    That's for learning anything

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

    Remember, if youre not crashing either your compiler, the program, the engine youre building it all in, or your pc, youre not learning
    i built a highly flexible, easily expandable, and very human readable for even a novice programmer like myself, type of menu system, and while developing it i ran into memory overflow errors, process hangs, and other issues that lead to me hard restarting my pc about 12 times
    but now?
    i have the best menu system ive ever seen

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

    I always try to find the tutorials that just gives me the working "simple" code but explains why it works along the way. Then i find I learn best by rewriting the code on my own without the totorial after I've studied it enough to understand it. Typically making adjustments along the way to better suit my use case.
    But i agree that just following the tutorial without any thought on your part makes it impossible to learn.

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

    This advice can be applied to so many jobs!

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

    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.

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

    That’s true, I just start learning how to coding like 3 weeks ago. I was watching a video on how to turn variables in to integers, but I didn’t wanna copy the video because I felt like I’m not learning anything. But I also wanted python to read the string with the integers and it took me like 15 minutes to figure it out. lol, just to find out if I was to just watched the video for another minute the answer was right there😂

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

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

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

    Catlike Coding's tutorials take a kinda in between approach, while they DO guide you step by step, those steps take you through the process of "why does this previous step fail/not do what you want" and then explain the correction

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

    I learned by first copying exactly what they said, it not working, then copying exactly what someone else said and using that to fix the first thing. Fucking around with why it did/did not work and messing around with everything, until I learned all the parts and how to use them.