Learn To Code Like a PRO and Not Waste Time

Tech With Tim
9 Sept 202413:53

Summary

TLDRThis video script emphasizes the challenges of learning to code and offers a roadmap for success. It highlights the importance of embracing struggle as a learning opportunity, focusing on problem-solving rather than syntax, and finding the right learning medium. The speaker recommends creating a learning roadmap, engaging in consistent practice, and tackling difficult projects to accelerate progress. The script also promotes the use of interactive platforms like Brilliant for hands-on learning and concludes with encouragement to persevere through challenges.

Takeaways

  • 😌 Learning to code is challenging and requires embracing struggle as a part of the process.
  • 💡 The most significant learning occurs during moments of difficulty and frustration.
  • 🛠 Becoming a proficient programmer involves problem-solving and overcoming obstacles.
  • 🎯 Focus on understanding problems and solving them, rather than just memorizing syntax or features.
  • 🔍 Identify your most effective learning medium, whether it's auditory, visual, or hands-on.
  • 📚 Experiment with various learning resources to find the best fit for your style and needs.
  • 🗺️ Create a roadmap with clear goals and a step-by-step plan to guide your learning journey.
  • ⌨️ Practice is essential; spend most of your learning time actively coding and applying concepts.
  • 🏆 Aim to build complex projects to challenge your skills and enhance your problem-solving abilities.
  • ⏳ Recognize that becoming proficient in coding is a long-term commitment requiring consistent practice and learning.

Q & A

  • What is the main challenge most people face when learning to code?

    -The main challenge is that most people don't know how to learn effectively for coding, which is different from traditional subjects taught in school.

  • Why is struggling considered a part of the learning process when coding?

    -Struggling is part of learning to code because it's during these difficult and frustrating moments that one learns the most, especially when persevering through obstacles.

  • What is the role of problem-solving in becoming a proficient programmer?

    -Problem-solving is central to programming, as programmers primarily identify and solve problems. The more one practices this, the better they become at programming.

  • Why should one not focus solely on syntax and features when learning to code?

    -Focus should be on understanding how to take a problem and solve it, rather than just memorizing syntax and features, to become a competent programmer.

  • How does the speaker suggest accelerating one's learning process in coding?

    -The speaker suggests using resources like Brilliant, which offers interactive lessons and emphasizes understanding the 'why' behind each concept.

  • What is the significance of daily consistent learning in programming, according to the script?

    -Daily consistent learning is crucial in programming as it allows for the acquisition of meaningful knowledge in small, manageable sessions, which can replace idle screen time.

  • How does the speaker recommend determining the best learning medium for coding?

    -The speaker recommends trying out different mediums such as books, videos, podcasts, and in-person classes to figure out which one resonates best with the individual.

  • Why is creating a roadmap important when learning to code?

    -A roadmap is important as it provides a structured guide on what to learn, ensuring that the learning process is directed towards specific goals and progress can be tracked.

  • What does the speaker suggest should be the primary activity during a coding learning session?

    -The speaker suggests that the majority of a coding learning session should involve writing code, with other resources like videos or articles serving as guides.

  • How does the speaker encourage learners to tackle the challenge of programming?

    -The speaker encourages learners to challenge themselves by working on difficult projects, comparing it to lifting heavier weights at the gym to get stronger.

  • What is the final advice the speaker gives to aspiring programmers?

    -The final advice is to repeatedly challenge oneself with difficult projects and to understand that becoming a good programmer requires a lot of practice and continuous learning.

Outlines

00:00

💻 Learning to Code: The Struggle and the Process

The paragraph emphasizes the difficulty of learning to code and the importance of embracing the struggle. It highlights that coding is unlike traditional school subjects and requires a different approach to learning. The speaker shares personal experiences of frustration and perseverance, which are crucial for growth. The video also credits another source for the idea and suggests that overcoming obstacles is what shapes a great programmer. The key message is that the most learning occurs during challenging times, and programmers are essentially problem solvers who improve by practicing problem-solving.

05:01

🎓 Effective Learning Strategies for Coding

This section discusses strategies to accelerate learning and avoid wasting time. It introduces 'Brilliant' as a resource for interactive learning through problem-solving. The speaker stresses the importance of daily learning and the effectiveness of active engagement over passive learning. The paragraph also touches on the need to understand one's own learning style, whether auditory, visual, or hands-on, and to find the best resources that match that style. The speaker encourages experimenting with different mediums to find the most effective learning method and to create a roadmap for learning with clear goals and a structured approach.

10:01

🛠 Hands-on Practice: The Key to Mastering Coding

The final paragraph stresses the necessity of hands-on practice for mastering coding. It advises that most of the learning time should be spent writing code, not just consuming educational content. The speaker shares personal techniques, such as typing along with video tutorials and challenging oneself with complex projects. The paragraph concludes with the idea that continuous practice, even on difficult projects, is essential for growth. It also touches on the importance of continuous learning and improvement in the field of software engineering, comparing the journey to a gym workout where heavier lifts lead to greater strength.

Mindmap

Keywords

💡Struggle

In the context of the video, 'struggle' refers to the challenges and difficulties one encounters while learning to code. It is portrayed as an integral part of the learning process, where overcoming obstacles leads to significant growth. The speaker emphasizes that struggling with coding problems is when learners make the most progress, as it forces them to persevere and ultimately understand the material deeply.

💡Roadmap

A 'roadmap' in the video represents a structured plan or guide that outlines the learning journey for coding. It is crucial for directing one's efforts and ensuring that learning is purposeful and goal-oriented. The speaker suggests creating a roadmap to avoid aimless learning and to track progress systematically, which is exemplified by writing down weekly goals and ticking them off as completed.

💡Problem Solving

Problem solving is highlighted as the core activity of programming. It involves identifying issues and finding solutions, which is what programmers do on a daily basis. The video stresses that effective problem-solving skills are developed by consistently challenging oneself with tough coding problems. This concept is illustrated by the speaker's advice to focus on solving problems and overcoming obstacles rather than just memorizing syntax.

💡Syntax

Syntax, in programming, refers to the set of rules that dictate how code should be written. The video suggests that while understanding syntax is necessary, it should not be the primary focus of learning. Instead, learners should concentrate on problem-solving, as frequent practice naturally leads to familiarity with syntax. The speaker notes that with enough coding practice, one will internalize syntax almost as a form of muscle memory.

💡Resources

Resources in the video are the materials and tools that aid in the learning process, such as books, videos, and interactive platforms. The speaker acknowledges the importance of finding high-quality resources that match one's learning style and using them effectively to accelerate learning. An example given is Brilliant, an interactive learning platform that offers lessons in programming and other subjects.

💡Practice

Practice is emphasized as the key to mastering coding. The video stresses that the majority of one's learning time should be spent actively writing and experimenting with code. Practice is depicted as the means by which learners apply theoretical knowledge, make mistakes, and ultimately solidify their skills. The speaker advises to have the code editor open while learning and to engage with the material by typing along and experimenting.

💡Learning Style

Learning style refers to the preferred way an individual absorbs and processes information. The video discusses the importance of identifying one's learning style, such as auditory, visual, or hands-on, and selecting resources that align with it. The speaker shares a personal preference for auditory learning and suggests that understanding one's learning style can significantly improve the efficiency of learning programming.

💡Challenge

Challenge, in the video, is used to describe the process of taking on difficult tasks or projects to push one's limits and enhance learning. The speaker encourages learners to seek out challenges, such as complex coding projects, to stimulate growth. This concept is exemplified by the idea of lifting heavier weights at the gym to get stronger, suggesting that increased difficulty leads to greater skill development.

💡Project

A 'project' in the video is a practical application of coding skills, often involving creating a software solution or a piece of software. The speaker suggests that working on challenging projects is where one truly hones their programming abilities. Projects provide a real-world context to apply knowledge, solve complex problems, and see tangible results, which is crucial for skill development beyond theoretical learning.

💡Continuous Learning

Continuous learning is the concept of ongoing education and skill development, which is essential in a rapidly evolving field like programming. The video underscores the need for programmers to continuously learn and adapt to new technologies and methodologies. The speaker implies that even after becoming proficient, the learning journey continues, and the best programmers are those who write the most code and continually challenge themselves.

Highlights

Learning to code is challenging and different from traditional school subjects.

Struggle is an essential part of the learning process in coding.

Perseverance through difficult coding problems leads to significant learning.

All programmers are problem solvers, focusing on overcoming obstacles.

Learning to code is not about memorizing syntax but solving problems.

Brilliant.org is recommended for interactive learning in programming and AI.

Consistent daily learning with bite-sized lessons is effective for coding.

Understanding one's learning style is crucial for efficient coding education.

Experimenting with different learning mediums helps in finding the most effective one.

Creating a roadmap is essential for structured learning in programming.

Coding sessions should primarily involve writing code, not just passive learning.

Building difficult projects is the key to becoming proficient in programming.

Continuous learning and development are necessary for a successful coding career.

Programming teaches critical thinking and problem-solving skills applicable in life.

The best programmers are those who write the most amount of code.

Transcripts

play00:00

Tens of millions of people try to learn how to code every single year,

play00:03

but only a small percentage succeed.

play00:05

And that's because most people don't know how to learn.

play00:08

And learning to code is a lot different than other subjects that you're traditionally taught in school.

play00:13

So in this video, I'm going to break down the exact roadmap,

play00:16

the exact process, and the way that you can learn how to code like a pro

play00:20

so that you stop wasting your time and actually start making progress.

play00:24

Now, quickly, let me give some credit to the coding slot for this video idea.

play00:28

I've definitely got a lot of different things to say, but his video is really well done,

play00:32

so definitely check it out.

play00:34

Now, the first thing I want to mention to you is that to learn is to struggle.

play00:38

Now I say this because learning how to code is really difficult.

play00:42

I can tell you firsthand that when I was learning how to code, especially because I was starting

play00:46

as a child, when I was about 12, I found this really, really hard.

play00:49

It took me years to even get decent at coding.

play00:52

And most nights I would just sit with my head on the desk

play00:54

wondering what I was doing wrong and making no progress.

play00:58

Now, in hindsight, those are actually the moments where you learn the most

play01:02

when you're struggling, when things are difficult, when you're super frustrated,

play01:05

when you've been working on a bug for hours but you persevere and you eventually get through it.

play01:10

That's when you really learn.

play01:11

So I want to remind you that coding is difficult.

play01:14

You are going to struggle.

play01:15

It's going to be frustrating.

play01:17

And that's actually the moments that you want to look for.

play01:19

You want to do tough problems.

play01:21

You want to challenge yourself,

play01:22

and you want to feel like at some point you're making no progress and you're running into a wall,

play01:26

because being able to overcome those obstacles is what makes a great programmer.

play01:31

All programmers are problem solvers.

play01:33

That's really all they do.

play01:35

They have a problem and they need to find a way to solve it.

play01:37

And the more you can practice doing that, the better you're going to be at programing.

play01:41

So don't focus on all the syntax.

play01:43

Don't focus on all the fancy features.

play01:45

Focus on how do I take a problem, solve that problem, and overcome all of the obstacles that I run into.

play01:51

So remember, learning is struggling.

play01:53

And when you're struggling the most, that's probably when you're actually learning.

play01:57

And when you're really picking up those skills, you need to be a competent programmer.

play02:01

Now, as much as you definitely want to struggle and work on really difficult problems,

play02:04

there's obviously other things you can do that are going to help accelerate

play02:07

your learning and make sure you're not wasting a ton of time.

play02:11

Now this video is a great start.

play02:12

I'm going to share some of those resources with you.

play02:15

But if you want a more tangible resource to actually learn those programing skills,

play02:19

then check out the sponsor of this video. Brilliant.

play02:21

Brilliant is where you learn by doing with thousands of interactive lessons

play02:25

in math, data analysis, programing and AI.

play02:29

They adopt a first principles approach, ensuring you understand the why behind each concept.

play02:34

Every lesson is interactive, engaging you in hands on problem solving,

play02:38

which is proven to be six times more effective than simply watching lectures.

play02:42

The content is developed by top notch educators, researchers,

play02:45

and professionals from institutions like MIT, Caltech, and Google.

play02:50

Brilliant emphasizes enhancing your critical thinking abilities

play02:53

through active problem solving rather than memorization.

play02:56

As you learn specific subjects, you're simultaneously training your mind to think more effectively.

play03:01

Consistent daily learning is crucial and brilliant makes it effortless with their bite sized lessons

play03:07

allowing you to acquire meaningful knowledge in just a few minutes each day.

play03:10

Perfect for replacing idle screen time.

play03:13

Additionally, brilliant offers a comprehensive range of computer science

play03:16

and Python courses, as well as extensive AI workshops guiding you

play03:20

from complete beginner to an expert through practical, hands on lessons.

play03:24

Try everything brilliant has to offer for free for 30 days

play03:27

by visiting Brilliant Agtech with Tim or click the link in the description.

play03:32

You'll also get 20% off a premium and you will subscription.

play03:36

So now that we understand that this is going to be difficult,

play03:38

I want to give you some pointers that will help you learn more effectively.

play03:42

Now, most people go through life and they never realize that learning how to learn

play03:46

is actually a skill.

play03:48

Being able to learn something quickly and understanding what methods resonate with you

play03:52

is the number one way that you can improve the speed at which you're going to learn programing.

play03:56

What I mean by that is understanding, for example, what medium you learn best through.

play04:01

Is it auditory? Is it visual?

play04:03

Is it having your hands on the keyboard?

play04:04

Is it having someone beside you, coaching you through things?

play04:07

You need to figure out the way that's most effective for you.

play04:10

Personally, for me, I actually learn best by hearing things.

play04:13

So if I hear someone talk, I can almost memorize everything that they say.

play04:17

I can recall that very quickly.

play04:19

And hearing things auditory is a lot better for me than, for example, seeing it on a screen.

play04:24

Now that's going to differ from a lot of other people.

play04:26

Maybe some people are much more visual learners.

play04:28

Maybe they actually need someone beside them, guiding them through things.

play04:32

But you need to figure out the way

play04:33

in which you learn, and you need to go all in on those types of resources.

play04:37

Some people are going to learn a lot better by reading through an article.

play04:40

Some are going to have a lot better experience going through videos or having maybe an in-person class.

play04:46

You need to understand which of these mediums works best for you,

play04:49

and then find the highest quality resources within that medium.

play04:53

So what you should do ideally is try all of them.

play04:55

Try reading a book.

play04:57

Try watching a bunch of videos.

play04:58

Try listening to a podcast or a lecture.

play05:01

Now, obviously that's not as applicable as something like programing, but you get the point.

play05:04

Try all of these different mediums.

play05:06

Figure out which responds or resonates with you the best,

play05:09

and then go and find the highest quality instructors, the highest quality courses,

play05:13

and really spend a lot of time finding the best resource to learn from.

play05:17

One of the reasons a lot of people struggle is they never find a good resource to use.

play05:21

They click on the first YouTube video

play05:23

or the first website article, and they don't understand it from that.

play05:26

And they immediately rule out the programing is for them.

play05:29

There's so many different people online, there's so many different instruction styles

play05:33

and teaching styles.

play05:34

For example, I have thousands of videos teaching programing.

play05:37

A lot of people love them, but for some people it's not their style.

play05:40

So you need to find what works best for you.

play05:43

Start with medium and then go and find the best instructional resources

play05:46

you can by trying a bunch of different stuff.

play05:49

Don't feel like you're just bailing out or jumping out if you're quitting after a few minutes.

play05:53

If you know this person isn't for you and you're not meshing with their style,

play05:56

don't waste your time and move on to someone else because there's so many options out there.

play06:01

Now, at this point, you're probably saying, okay,

play06:02

all of that sounds great, but how do I know what I'm supposed to learn?

play06:06

Now, that's the right question to be asking, because the biggest mistake that we

play06:10

so much time is people don't know what they're supposed to learn.

play06:14

They wake up every morning, they go to the computer, they have that burst of motivation.

play06:18

They want to learn coding. They want to land a job.

play06:21

They have some kind of goal in mind,

play06:22

but they have no idea what's actually going to bring them in that direction.

play06:26

That means they learn so many different

play06:27

random topics, but none of them really progress them towards their goal.

play06:31

And even if they do, they have no idea how much progress they're actually making.

play06:35

So that's why what I need you to do is to create some kind of roadmap.

play06:39

Now you can do this by yourself.

play06:40

You can follow along with a roadmap provided by someone like me.

play06:43

Or you can go through something like a course.

play06:45

I have one, for example, with course careers, even if you don't want to take that course,

play06:49

you can just copy the exact roadmap that we have in there and learn all of those topics.

play06:54

The point is, you need to have at least some kind of list that's guiding you

play06:57

with what you need to learn.

play06:59

Now, I can tell you, as someone who's an entrepreneur, the most difficult

play07:02

parts of my day are figuring out what I actually need to do.

play07:06

And the exact same thing applies when you're trying to learn and taunting

play07:09

tasks like programing, coding, software engineering.

play07:12

You need to come up with some kind of list, some kind of roadmap, and use that as that guiding principle.

play07:18

And that thing you always go back to,

play07:20

to understand what it is you're going to do today, what you're going to learn next,

play07:23

what you're going to move towards, and to see the progress that you're making.

play07:27

What I used to do that was really effective for me when I was learning is

play07:30

I would write out the next few goals that I had for maybe the upcoming week on a whiteboard,

play07:34

and I would physically tick those off

play07:36

so that as the week went on, I could actually see the progress that I was making.

play07:40

So when it comes to programing, what you need to do is determine your goal.

play07:44

Do you want to land a job?

play07:45

Do you want to build a hobby project?

play07:47

Is there something you want to make specifically, what exactly is it that you want to do?

play07:51

What's a longer term goal like?

play07:52

What do you want to get out of this in two years?

play07:54

And what do you want to get out of this in the next few months?

play07:56

Do you want to learn JavaScript? You want to learn Python?

play07:59

You need to have some kind of these goals in mind.

play08:01

Now, once you have that goal, you can create a roadmap that will guide you in that direction.

play08:05

Figure out what exactly you need to learn step by step.

play08:09

Lesson by lesson.

play08:10

If you wanted to learn a language like Python.

play08:12

Write those down.

play08:13

Put them in a spreadsheet however you want to organize it and actually keep track of your progress.

play08:18

That way, when you get up in the morning

play08:19

and you want to work towards your goal, you know exactly what you need to do.

play08:23

Now, once you have your roadmap, the next and probably most important thing

play08:27

that you need to understand is that the only way you get good at coding is by doing a ton of coding.

play08:33

You need to put your hands on the keyboard, and in any learning session you have,

play08:37

you need to spend a majority of your time writing code as opposed to doing anything else.

play08:42

So what I mean by that is, let's say today you're going to dedicate four hours to learning how to code.

play08:47

In that four hours, you should be spending most of that time actually writing code.

play08:52

Now, obviously you're probably going to have to watch a video, or maybe you're going

play08:55

to have to go to an article, or you're gonna have to read some chapters of a book or whatever.

play08:59

Learning style works best for you.

play09:01

You still need to learn the topic.

play09:03

You need to get the theory.

play09:04

But the point is that most of that session should be you applying.

play09:07

It should be you practicing messing around,

play09:09

breaking things, and actually working on coding in your editor.

play09:13

The biggest mistake I see most people make

play09:16

is they think they can learn how to code by simply watching other people do it.

play09:19

For example, I have really long video courses.

play09:22

My course with course careers has over 40 hours of content.

play09:25

Now people think that if they just watched those 40 hours of content, they're going to know how to code.

play09:30

No. The point is, you need to watch the video while you're watching the video.

play09:34

You should have your code editor open alongside it, and you should be typing along with me.

play09:38

You should be doing the exact same stuff that I'm doing, and you should be breaking things

play09:42

along the way.

play09:43

Pausing the video, predicting what's going to come next.

play09:46

Constantly challenging yourself and making sure that this is mentally stimulating.

play09:50

If you watch a 30 minute coding tutorial that might take you two hours, three hours

play09:55

to get through,

play09:55

that's how long it took me to get through them when I was starting out, when I was a lot younger.

play09:59

And that's because I would pause the video.

play10:01

I would try something new.

play10:02

I would try to predict what the instructor was going to do next.

play10:05

I would use this as a tool, but not solely rely on just watching the content

play10:09

to get all of the information.

play10:11

So remember that in any coding session that you have when you're trying to learn something,

play10:15

most of your time should actually be in your editor writing code.

play10:19

Use the video, use the article, use the book, the exercise, whatever as a tool.

play10:24

Help it guide your learning.

play10:25

But don't rely on that.

play10:26

And don't just simply binge watch videos again.

play10:29

Any video you watch, you should be spending

play10:31

at least the same amount of time messing around with the concept afterwards.

play10:35

Trying something out.

play10:36

Breaking something. Getting errors. Asking questions.

play10:38

Looking up content.

play10:39

Really make sure you make this as mentally stimulating as possible

play10:43

because again, the only way you learn is to challenge yourself and to struggle.

play10:47

So whenever you're learning,

play10:48

please put your hands on the keyboard and actually write as much code as you possibly can.

play10:53

And by the way, if you do this, you're going to notice you don't struggle with syntax anymore

play10:57

because the more you code, the easier it is to just naturally memorize the syntax.

play11:02

It's not something you should actually be aiming to do to memorize

play11:05

all of this code, but you'll find that you just know how all of these things work.

play11:09

You know what the syntax is.

play11:10

When you write a ton of code because you've done it with muscle memory hundreds upon hundreds of times.

play11:15

So now I want to bring all of this full circle with my final point, which is to build difficult stuff.

play11:21

If you really want to get good at programing, you need to challenge yourself

play11:25

with the most difficult projects you could possibly imagine.

play11:28

Once you've learned the theory, once you have that kind of basic competence in programing,

play11:32

you know a language.

play11:33

You know, if you frameworks you've gone through, you know, kind of the tutorial.

play11:36

Hell of watching a ton of videos.

play11:38

The time when you really get good is when you spend a lot of time working on a project.

play11:43

That's when you're really going to see those skills develop.

play11:46

And you're not only just going to get better

play11:47

at programing, you're going to get better at learning and figuring things out.

play11:51

You'll notice that if you actually take everything I've said in this video into practice, the times

play11:55

when you learn the most are when you're thinking the hardest and you can't think any harder

play12:00

than when you try to solve a problem that you have no idea how to solve.

play12:04

Now that's why companies like to do these coding interviews.

play12:06

They want to see the way in which you think, the way in which you break down problems,

play12:10

how you persevere, how you know, look for different solutions in different avenues.

play12:14

And the same thing applies here when I tell you to build something difficult.

play12:17

So what I mean is pick some really difficult project, something that you couldn't

play12:21

imagine you'd possibly be able to build and tackle it.

play12:24

Try it, attempt it. Now, you might not be able to complete this.

play12:27

You might not even get 20% of the way there.

play12:29

But the point is, the only way to get better is to do harder stuff.

play12:33

Just like going to the gym, you're not going to get stronger unless you lift heavier weight.

play12:36

And that's exactly what you need to do with program.

play12:39

Keep giving yourself bigger challenges, harder problems, and work your way towards them.

play12:43

It doesn't matter if you fail or if you complete all of it.

play12:46

The point is, you're going out of your way to become a better problem solver and developing

play12:51

those skills that you're going to use

play12:52

throughout your entire career and to be honest, throughout the rest of your life.

play12:55

The reason why I love teaching people programing, even if they're not going to become a software

play12:59

engineer, is because it really trains that critical thinking skill, and it teaches you

play13:03

to go out of your way and find the solution using any resource you have available to you.

play13:08

Now, once you've done that, you've challenge yourself.

play13:10

Do it again and again and again and again.

play13:13

And once you've done it, hundreds, if not thousands of times, then you're going to be a good programmer.

play13:17

This takes a lot of hours of practice.

play13:19

Yes, it is possible to become a software engineer in six, eight,

play13:22

12 months, but you can only do that if you put an insane amount of time in.

play13:26

And you have to understand you're still just at the very beginning of your journey.

play13:29

Because this is a field where you need continuous learning, continuous development,

play13:33

and the best software engineers are the best because they write the most amount of code.

play13:38

So with that said, guys, I'm going to wrap up the video here.

play13:40

If you enjoyed, make sure to leave a like.

play13:42

Subscribe to the channel and I will see you in the next one.

Rate This

5.0 / 5 (0 votes)

関連タグ
Coding SkillsLearn to CodeProblem SolvingProgramming RoadmapEducational VideoStruggle and LearnInteractive LessonsCoding ChallengesSelf-LearningTech Tutorial
英語で要約が必要ですか?