Learning to code can open many doors in life, but it's NOT easy and NOT for everybody. Let's take a look at 8 different techniques supported by science that can help you become a programmer faster. https://fireship.io/pro

#learntocode #tech #programming

🔗 Resources

Feynman Technique https://medium.com/taking-note/learning-from-the-feynman-technique-5373014ad230
How to Get a Tech Job https://youtu.be/Xg9ihH15Uto
Spacing Effect https://en.wikipedia.org/wiki/Spacing_effect
Don't Learn to Code https://techcrunch.com/2016/05/10/please-dont-learn-to-code/

📚 Chapters

00:00 Learn to Code
00:43 1. Hard Work
01:29 2. Patterns over Syntax
02:38 3. Stop Watching
03:22 4. Stay Healthy
03:47 5. Feynman Technique
05:00 6. Dopamine Hits
05:47 7. Not Too Hard tho
06:27 8. Learn Like a Pro

🔥 Get More Content - Upgrade to PRO

Upgrade to Fireship PRO at https://fireship.io/pro
Use code lORhwXd2 for 25% off your first payment. 

🎨 My Editor Settings

- Atom One Dark 
- vscode-icons
- Fira Code Font

🔖 Topics Covered

Is Learning to Code hard?
Can anybody learn to code?
Tips for learning programming
Staying healthy while coding
Is coding the new literacy?
How to use the Feynman technique
What is the best programming language to start with? Python, JS, Go, Swift, or Kotlin
2024-02-04T05:34:37.630Z
nova-2
2-general-nova
2024-01-09.29447
30089e05-99d1-4376-b32e-c263170674af
510d49e5-318c-4732-accd-1799c490b222
7ded17f91e05664c7ea6e5e7ff55e0cf1881dfe13d6d80728024f01532f0641c
67875a7f-c9c4-48a0-aa55-5bdb8a91c34a
deprecated
Everybody needs to learn to code.
Coding is the new literacy.
If you can't code, you'll soon become obsolete.
Plus, coding is easy, so you really have no excuse.
These are all statements that are not true, but I've been told that fear based sales tactics will scare you into subscribing to my YouTube channel.
In today's video, I'm going to share a variety of practical techniques that have helped me learn to code because learning in and of Self is a skill, and if you wanna be a software engineer, you'll need to learn new things all the time.
Many moons ago, I didn't know how to code.
I wanted to learn because I hated my low paying miserable job and wanted to build some app on the Internet that would allow me to break out and start my own business.
I figured I wasn't smart enough to code, but you only live once, so I bought a giant book about PHP and MySQL.
And sure enough, I wasn't smart enough to code, and those toilets weren't gonna clean themselves.
I went back to my crappy job and forgot about it.
Luckily, a little while later, my family needed a website, so I figured I was at least smart enough to learn HTML.
And somehow, a few months later, I figured out how to ship my first website.
The important thing to recognize when learning to code is that hard work is more valuable than talent.
Talent is great if you have it and there are 10x developers out there where things just click on a much higher level, but programming is a skill very similar to playing a musical or juggling.
For most people, you totally suck at first, then you feel like a genius when you code your first program, then you realize you totally suck again and this pattern goes on and on forever in an infinite loop.
Learning is supposed to be painful.
In fact, I believe that you need pain to grow.
When learning a guitar, you need to put your fingertips through a lot of pain before you build calluses.
In programming, you'll have to bang your head against the keyboard a bunch of times until you figure out how to make these error messages go away.
So if you don't have talent, be prepared to embrace the hard work.
Now as you learn, and you might be wondering which programming language should I start with?
The truth is that it doesn't matter as long as you get really good at one of them.
The thing about programming is that there's so much to learn you are never going to retain at all.
I used to be a really good Ruby programmer, but at this point, I've forgotten almost everything about it, and that's no big deal because memorizing syntax doesn't really matter.
The thing you really want to learn and retain are programming patterns.
Essentially, everything you do in programming is problem solving.
The idea is to create a repertoire of tools in your brain that you can then use to solve virtually any problem in any language.
For example, if you need to loop over something, but you've never used Perl before, you still understand the trade offs between a for loop, while loop, and recursion.
This is the exact reason that when you go to a technical interview, they usually don't care which language you use.
They just wanna see that you know how to solve problems.
And in some cases, they may only have you write pseudo code on a whiteboard to analyze your problem solving skills.
So in learning, I would recommend trying out a few different languages and learn the one that feels most natural to you.
For most people, I think Python is ideal because it has a minimal syntax, is extremely popular, or and is also just a very useful language to know in general.
But JavaScript, Go, Kotlin, and Swift are also good languages to start with.
But again, it's about becoming a problem solver, not about rising syntax and that begs the question, how do I become a good problem solver?
The answer is go solve a bunch of problems.
Turn off YouTube and go Write some code.
Will you ever learn to play guitar by watching other people on YouTube play guitar?
The answer is no.
You also need to be playing the guitar along with them.
Books and tutorials are great, sign up for FireShip Pro, but they're utterly useless if you're not coding along with them.
In my tutorials, I try to set you up with something cool to build so you can go have fun and fail on your own.
You can build things based on tutorials.
You can try to build your own stuff.
You can do coding challenges, participate in hackathons, and all kinds of other stuff.
If you're serious, you should We coding at least a couple hours every day.
There's a reason they require pilots to have a certain number of flying hours.
Experience matters more than anything else, and luckily for you, to get time in the saddle, all you have to do is sit on your Ass in front of your computer screen and hit the keyboard until something cool happens.
Speaking of which, sitting on your ass in front of a computer screen is not natural or healthy, and that means you need to work extra hard in this line work to protect your health, both mentally and physically.
That's why I prefer to eat at Arby's, the most trusted name in nutrition.
I also get plenty of sunshine and exercise is to offset the time I spend banging my head against the keyboard in my mom's dark windowless basement.
If your health is not optimal, you won't learn as efficiently, and there's no activity in world that's worth sacrificing your health over.
Now, let's switch gears and talk about a physicist named Richard Feynman.
He's a Nobel Prize winner known for many things, one of which is his learning technique.
It goes like this.
Choose a concept you wanna learn about, explain it to a 12 year old, reflect, refine, simplify, then organize, and review.
In other words, you learn most efficiently when you try to teach It's the very thing you're learning.
I can tell you right now that I've learned way more about programming from running this YouTube channel than I ever did working all by myself.
Now, that doesn't mean that everybody needs to go and start a YouTube channel.
All you have to do is pretend to teach something.
But if you can create valuable content out of it like a video or a blog post, that's even better.
Or if you already have a job, You'll find that you learn a lot just by mentoring other people.
Or if you don't have a job, you can join programming Slack or Discord channels and help people out there or answer questions on on Stack Overflow.
Hoping others feels good, and it forces you to be extremely precise about what you actually know.
Here's how it might look for a programmer.
Choose a topic like I want to program a video game, Do some research and experimenting and write a summary explaining the technology to a 12 year old, then go and build something and get to a full working demo as quickly as possible.
It doesn't need will be perfect because in the final step, you'll go back and refactor and simplify and find ways to improve your process and get feedback from someone more experienced than you, if possible.
So approach it like a teacher even though you have no idea what you're currently teaching.
Now, I said something very subtle but very important and that is to build a full working demo as quickly as possible.
Learning is supposed to be painful, but there also needs to be some kind of reward for that pain and the more quickly you can get to those rewards, the better.
Because what you want is a positive Feedback loop that basically makes you addicted to coding.
There are ways we can hack the most primitive parts of our brain.
What I do almost every day before I go to bed is write down a few small goals that I want to achieve the next day.
The important thing is that the goals are achievable, because then writing a check mark next to that goal feels good.
When good things happen, your brain releases dopamine, and you wanna try to find activities that after hard work give you that dopamine hit.
Because, otherwise, you'll have a negative feedback loop, in which case you're going to absolutely hate coding in no time.
That'd be like learning how to press the strings on a guitar without ever knowing how to play an actual song.
The idea is to work hard and be awarded, but you don't want to work too hard.
It's extremely important, especially for programming, to pace yourself and take regular breaks.
For most people, that likely means 1 or 2 hours of programming and followed by a nice long break.
I remember in my early days being absolutely determined to not let the error messages win.
I'd go late into the night, stack overflowing every possible combination of questions, only to give up and get a good night's sleep, and then come back and immediately solve the problem in the morning.
And this isn't unique to me, it happens to everybody, because mental spacing is actually a very important thing.
You can be mentally exhausted, while at the same time your ego is saying, you got this bro.
Don't be a loser.
But the reality is that the most efficient thing to do is go outside, get Sunshine, jump in a cold body of water, and get some sleep.
When you wake up, you'll be ready to crush it once again.
Now that you know how to learn to code, all you have to do is go to Google, type in what you wanna learn, and let it Be your guide because that's basically all you ever do as a software engineer.
I'm gonna go ahead and wrap things up there.
Make sure to hit the subscribe button to get the next video in this installment about mastering the technical interview.
Thanks for watching and I will see you in the next one.

Speaker 0: Everybody needs to learn to code. Coding is the new literacy. If you can't code, you'll soon become obsolete. Plus, coding is easy, so you really have no excuse. These are all statements that are not true, but I've been told that fear based sales tactics will scare you into subscribing to my YouTube channel.

In today's video, I'm going to share a variety of practical techniques that have helped me learn to code because learning in and of Self is a skill, and if you wanna be a software engineer, you'll need to learn new things all the time. Many moons ago, I didn't know how to code. I wanted to learn because I hated my low paying miserable job and wanted to build some app on the Internet that would allow me to break out and start my own business. I figured I wasn't smart enough to code, but you only live once, so I bought a giant book about PHP and MySQL. And sure enough, I wasn't smart enough to code, and those toilets weren't gonna clean themselves.

I went back to my crappy job and forgot about it. Luckily, a little while later, my family needed a website, so I figured I was at least smart enough to learn HTML. And somehow, a few months later, I figured out how to ship my first website. The important thing to recognize when learning to code is that hard work is more valuable than talent. Talent is great if you have it and there are 10x developers out there where things just click on a much higher level, but programming is a skill very similar to playing a musical or juggling.

For most people, you totally suck at first, then you feel like a genius when you code your first program, then you realize you totally suck again and this pattern goes on and on forever in an infinite loop. Learning is supposed to be painful. In fact, I believe that you need pain to grow. When learning a guitar, you need to put your fingertips through a lot of pain before you build calluses. In programming, you'll have to bang your head against the keyboard a bunch of times until you figure out how to make these error messages go away.

So if you don't have talent, be prepared to embrace the hard work. Now as you learn, and you might be wondering which programming language should I start with? The truth is that it doesn't matter as long as you get really good at one of them. The thing about programming is that there's so much to learn you are never going to retain at all. I used to be a really good Ruby programmer, but at this point, I've forgotten almost everything about it, and that's no big deal because memorizing syntax doesn't really matter.

The thing you really want to learn and retain are programming patterns. Essentially, everything you do in programming is problem solving. The idea is to create a repertoire of tools in your brain that you can then use to solve virtually any problem in any language. For example, if you need to loop over something, but you've never used Perl before, you still understand the trade offs between a for loop, while loop, and recursion. This is the exact reason that when you go to a technical interview, they usually don't care which language you use.

They just wanna see that you know how to solve problems. And in some cases, they may only have you write pseudo code on a whiteboard to analyze your problem solving skills. So in learning, I would recommend trying out a few different languages and learn the one that feels most natural to you. For most people, I think Python is ideal because it has a minimal syntax, is extremely popular, or and is also just a very useful language to know in general. But JavaScript, Go, Kotlin, and Swift are also good languages to start with.

But again, it's about becoming a problem solver, not about rising syntax and that begs the question, how do I become a good problem solver? The answer is go solve a bunch of problems. Turn off YouTube and go Write some code. Will you ever learn to play guitar by watching other people on YouTube play guitar? The answer is no.

You also need to be playing the guitar along with them. Books and tutorials are great, sign up for FireShip Pro, but they're utterly useless if you're not coding along with them. In my tutorials, I try to set you up with something cool to build so you can go have fun and fail on your own. You can build things based on tutorials. You can try to build your own stuff.

You can do coding challenges, participate in hackathons, and all kinds of other stuff. If you're serious, you should We coding at least a couple hours every day. There's a reason they require pilots to have a certain number of flying hours. Experience matters more than anything else, and luckily for you, to get time in the saddle, all you have to do is sit on your Ass in front of your computer screen and hit the keyboard until something cool happens. Speaking of which, sitting on your ass in front of a computer screen is not natural or healthy, and that means you need to work extra hard in this line work to protect your health, both mentally and physically.

That's why I prefer to eat at Arby's, the most trusted name in nutrition. I also get plenty of sunshine and exercise is to offset the time I spend banging my head against the keyboard in my mom's dark windowless basement. If your health is not optimal, you won't learn as efficiently, and there's no activity in world that's worth sacrificing your health over. Now, let's switch gears and talk about a physicist named Richard Feynman. He's a Nobel Prize winner known for many things, one of which is his learning technique.

It goes like this. Choose a concept you wanna learn about, explain it to a 12 year old, reflect, refine, simplify, then organize, and review. In other words, you learn most efficiently when you try to teach It's the very thing you're learning. I can tell you right now that I've learned way more about programming from running this YouTube channel than I ever did working all by myself. Now, that doesn't mean that everybody needs to go and start a YouTube channel.

All you have to do is pretend to teach something. But if you can create valuable content out of it like a video or a blog post, that's even better. Or if you already have a job, You'll find that you learn a lot just by mentoring other people. Or if you don't have a job, you can join programming Slack or Discord channels and help people out there or answer questions on on Stack Overflow. Hoping others feels good, and it forces you to be extremely precise about what you actually know.

Here's how it might look for a programmer. Choose a topic like I want to program a video game, Do some research and experimenting and write a summary explaining the technology to a 12 year old, then go and build something and get to a full working demo as quickly as possible. It doesn't need will be perfect because in the final step, you'll go back and refactor and simplify and find ways to improve your process and get feedback from someone more experienced than you, if possible. So approach it like a teacher even though you have no idea what you're currently teaching. Now, I said something very subtle but very important and that is to build a full working demo as quickly as possible.

Learning is supposed to be painful, but there also needs to be some kind of reward for that pain and the more quickly you can get to those rewards, the better. Because what you want is a positive Feedback loop that basically makes you addicted to coding. There are ways we can hack the most primitive parts of our brain. What I do almost every day before I go to bed is write down a few small goals that I want to achieve the next day. The important thing is that the goals are achievable, because then writing a check mark next to that goal feels good.

When good things happen, your brain releases dopamine, and you wanna try to find activities that after hard work give you that dopamine hit. Because, otherwise, you'll have a negative feedback loop, in which case you're going to absolutely hate coding in no time. That'd be like learning how to press the strings on a guitar without ever knowing how to play an actual song. The idea is to work hard and be awarded, but you don't want to work too hard. It's extremely important, especially for programming, to pace yourself and take regular breaks.

For most people, that likely means 1 or 2 hours of programming and followed by a nice long break. I remember in my early days being absolutely determined to not let the error messages win. I'd go late into the night, stack overflowing every possible combination of questions, only to give up and get a good night's sleep, and then come back and immediately solve the problem in the morning. And this isn't unique to me, it happens to everybody, because mental spacing is actually a very important thing. You can be mentally exhausted, while at the same time your ego is saying, you got this bro.

Don't be a loser. But the reality is that the most efficient thing to do is go outside, get Sunshine, jump in a cold body of water, and get some sleep. When you wake up, you'll be ready to crush it once again. Now that you know how to learn to code, all you have to do is go to Google, type in what you wanna learn, and let it Be your guide because that's basically all you ever do as a software engineer. I'm gonna go ahead and wrap things up there.

Make sure to hit the subscribe button to get the next video in this installment about mastering the technical interview. Thanks for watching and I will see you in the next one.
Everybody needs to learn to code. Coding is the new literacy. If you can't code, you'll soon become obsolete. Plus, coding is easy, so you really have no excuse.
These are all statements that are not true, but I've been told that fear based sales tactics will scare you into subscribing to my YouTube channel. In today's video, I'm going to share a variety of practical techniques that have helped me learn to code because learning in and of Self is a skill, and if you wanna be a software engineer, you'll need to learn new things all the time. Many moons ago, I didn't know how to code.
deep learning
software development
programming
software
machine learning
I wanted to learn because I hated my low paying miserable job and wanted to build some app on the Internet that would allow me to break out and start my own business. I figured I wasn't smart enough to code, but you only live once, so I bought a giant book about PHP and MySQL. And sure enough, I wasn't smart enough to code, and those toilets weren't gonna clean themselves. I went back to my crappy job and forgot about it. Luckily, a little while later, my family needed a website, so I figured I was at least smart enough to learn HTML.
And somehow, a few months later, I figured out how to ship my first website. The important thing to recognize when learning to code is that hard work is more valuable than talent. Talent is great if you have it and there are 10x developers out there where things just click on a much higher level, but programming is a skill very similar to playing a musical or juggling. For most people, you totally suck at first, then you feel like a genius when you code your first program, then you realize you totally suck again and this pattern goes on and on forever in an infinite loop.
programming
software development
video gaming
computer science
machine learning
Learning is supposed to be painful. In fact, I believe that you need pain to grow. When learning a guitar, you need to put your fingertips through a lot of pain before you build calluses.
In programming, you'll have to bang your head against the keyboard a bunch of times until you figure out how to make these error messages go away. So if you don't have talent, be prepared to embrace the hard work. Now as you learn, and you might be wondering which programming language should I start with? The truth is that it doesn't matter as long as you get really good at one of them. The thing about programming is that there's so much to learn you are never going to retain at all.
programming
computer science
languages
software development
I used to be a really good Ruby programmer, but at this point, I've forgotten almost everything about it, and that's no big deal because memorizing syntax doesn't really matter. The thing you really want to learn and retain are programming patterns. Essentially, everything you do in programming is problem solving. The idea is to create a repertoire of tools in your brain that you can then use to solve virtually any problem in any language. For example, if you need to loop over something, but you've never used Perl before, you still understand the trade offs between a for loop, while loop, and recursion.
programming
machine learning
logic
deep learning
This is the exact reason that when you go to a technical interview, they usually don't care which language you use. They just wanna see that you know how to solve problems.
And in some cases, they may only have you write pseudo code on a whiteboard to analyze your problem solving skills. So in learning, I would recommend trying out a few different languages and learn the one that feels most natural to you. For most people, I think Python is ideal because it has a minimal syntax, is extremely popular, or and is also just a very useful language to know in general. But JavaScript, Go, Kotlin, and Swift are also good languages to start with. But again, it's about becoming a problem solver, not about rising syntax and that begs the question, how do I become a good problem solver?
languages
The answer is go solve a bunch of problems. Turn off YouTube and go Write some code. Will you ever learn to play guitar by watching other people on YouTube play guitar? The answer is no. You also need to be playing the guitar along with them. Books and tutorials are great, sign up for FireShip Pro, but they're utterly useless if you're not coding along with them.
youtube
music
In my tutorials, I try to set you up with something cool to build so you can go have fun and fail on your own. You can build things based on tutorials. You can try to build your own stuff. You can do coding challenges, participate in hackathons, and all kinds of other stuff.
crafts
If you're serious, you should We coding at least a couple hours every day. There's a reason they require pilots to have a certain number of flying hours. Experience matters more than anything else, and luckily for you, to get time in the saddle, all you have to do is sit on your Ass in front of your computer screen and hit the keyboard until something cool happens. Speaking of which, sitting on your ass in front of a computer screen is not natural or healthy, and that means you need to work extra hard in this line work to protect your health, both mentally and physically. That's why I prefer to eat at Arby's, the most trusted name in nutrition. I also get plenty of sunshine and exercise is to offset the time I spend banging my head against the keyboard in my mom's dark windowless basement. If your health is not optimal, you won't learn as efficiently, and there's no activity in world that's worth sacrificing your health over.
nutrition
diet
fitness
health
air travel
obesity
food
computers
aircraft
Now, let's switch gears and talk about a physicist named Richard Feynman.
He's a Nobel Prize winner known for many things, one of which is his learning technique. It goes like this. Choose a concept you wanna learn about, explain it to a 12 year old, reflect, refine, simplify, then organize, and review. In other words, you learn most efficiently when you try to teach It's the very thing you're learning. I can tell you right now that I've learned way more about programming from running this YouTube channel than I ever did working all by myself. Now, that doesn't mean that everybody needs to go and start a YouTube channel. All you have to do is pretend to teach something. But if you can create valuable content out of it like a video or a blog post, that's even better. Or if you already have a job, You'll find that you learn a lot just by mentoring other people. Or if you don't have a job, you can join programming Slack or Discord channels and help people out there or answer questions on on Stack Overflow. Hoping others feels good, and it forces you to be extremely precise about what you actually know. Here's how it might look for a programmer. Choose a topic like I want to program a video game, Do some research and experimenting and write a summary explaining the technology to a 12 year old, then go and build something and get to a full working demo as quickly as possible. It doesn't need will be perfect because in the final step, you'll go back and refactor and simplify and find ways to improve your process and get feedback from someone more experienced than you, if possible. So approach it like a teacher even though you have no idea what you're currently teaching. Now, I said something very subtle but very important and that is to build a full working demo as quickly as possible. Learning is supposed to be painful, but there also needs to be some kind of reward for that pain and the more quickly you can get to those rewards, the better. Because what you want is a positive Feedback loop that basically makes you addicted to coding. There are ways we can hack the most primitive parts of our brain.
youtube
teaching
software
video gaming
education
software development
deep learning
computer science
machine learning
psychology
What I do almost every day before I go to bed is write down a few small goals that I want to achieve the next day. The important thing is that the goals are achievable, because then writing a check mark next to that goal feels good. When good things happen, your brain releases dopamine, and you wanna try to find activities that after hard work give you that dopamine hit.
Because, otherwise, you'll have a negative feedback loop, in which case you're going to absolutely hate coding in no time. That'd be like learning how to press the strings on a guitar without ever knowing how to play an actual song. The idea is to work hard and be awarded, but you don't want to work too hard.
music
It's extremely important, especially for programming, to pace yourself and take regular breaks. For most people, that likely means 1 or 2 hours of programming and followed by a nice long break. I remember in my early days being absolutely determined to not let the error messages win. I'd go late into the night, stack overflowing every possible combination of questions, only to give up and get a good night's sleep, and then come back and immediately solve the problem in the morning. And this isn't unique to me, it happens to everybody, because mental spacing is actually a very important thing. You can be mentally exhausted, while at the same time your ego is saying, you got this bro. Don't be a loser. But the reality is that the most efficient thing to do is go outside, get Sunshine, jump in a cold body of water, and get some sleep. When you wake up, you'll be ready to crush it once again. Now that you know how to learn to code, all you have to do is go to Google, type in what you wanna learn, and let it Be your guide because that's basically all you ever do as a software engineer.
I'm gonna go ahead and wrap things up there. Make sure to hit the subscribe button to get the next video in this installment about mastering the technical interview. Thanks for watching and I will see you in the next one.
media
audio
journalism
multimedia
television
Everybody needs to learn to code. Coding is the new literacy. If you can't code, you'll soon become obsolete. Plus, coding is easy, so you really have no excuse. These are all statements that are not true, but I've been told that fear based sales tactics will scare you into subscribing to my YouTube channel. In today's video, I'm going to share a variety of practical techniques that have helped me learn to code because learning in and of Self is a skill, and if you wanna be a software engineer, you'll need to learn new things all the time. Many moons ago, I didn't know how to code. I wanted to learn because I hated my low paying miserable job and wanted to build some app on the Internet that would allow me to break out and start my own business. I figured I wasn't smart enough to code, but you only live once, so I bought a giant book about PHP and MySQL. And sure enough, I wasn't smart enough to code, and those toilets weren't gonna clean themselves. I went back to my crappy job and forgot about it. Luckily, a little while later, my family needed a website, so I figured I was at least smart enough to learn HTML. And somehow, a few months later, I figured out how to ship my first website. The important thing to recognize when learning to code is that hard work is more valuable than talent. Talent is great if you have it and there are 10x developers out there where things just click on a much higher level, but programming is a skill very similar to playing a musical or juggling. For most people, you totally suck at first, then you feel like a genius when you code your first program, then you realize you totally suck again and this pattern goes on and on forever in an infinite loop. Learning is supposed to be painful. In fact, I believe that you need pain to grow. When learning a guitar, you need to put your fingertips through a lot of pain before you build calluses. In programming, you'll have to bang your head against the keyboard a bunch of times until you figure out how to make these error messages go away. So if you don't have talent, be prepared to embrace the hard work. Now as you learn, and you might be wondering which programming language should I start with? The truth is that it doesn't matter as long as you get really good at one of them. The thing about programming is that there's so much to learn you are never going to retain at all. I used to be a really good Ruby programmer, but at this point, I've forgotten almost everything about it, and that's no big deal because memorizing syntax doesn't really matter. The thing you really want to learn and retain are programming patterns. Essentially, everything you do in programming is problem solving. The idea is to create a repertoire of tools in your brain that you can then use to solve virtually any problem in any language. For example, if you need to loop over something, but you've never used Perl before, you still understand the trade offs between a for loop, while loop, and recursion. This is the exact reason that when you go to a technical interview, they usually don't care which language you use. They just wanna see that you know how to solve problems. And in some cases, they may only have you write pseudo code on a whiteboard to analyze your problem solving skills. So in learning, I would recommend trying out a few different languages and learn the one that feels most natural to you. For most people, I think Python is ideal because it has a minimal syntax, is extremely popular, or and is also just a very useful language to know in general. But JavaScript, Go, Kotlin, and Swift are also good languages to start with. But again, it's about becoming a problem solver, not about rising syntax and that begs the question, how do I become a good problem solver? The answer is go solve a bunch of problems. Turn off YouTube and go Write some code. Will you ever learn to play guitar by watching other people on YouTube play guitar? The answer is no. You also need to be playing the guitar along with them. Books and tutorials are great, sign up for FireShip Pro, but they're utterly useless if you're not coding along with them. In my tutorials, I try to set you up with something cool to build so you can go have fun and fail on your own. You can build things based on tutorials. You can try to build your own stuff. You can do coding challenges, participate in hackathons, and all kinds of other stuff. If you're serious, you should We coding at least a couple hours every day. There's a reason they require pilots to have a certain number of flying hours. Experience matters more than anything else, and luckily for you, to get time in the saddle, all you have to do is sit on your Ass in front of your computer screen and hit the keyboard until something cool happens. Speaking of which, sitting on your ass in front of a computer screen is not natural or healthy, and that means you need to work extra hard in this line work to protect your health, both mentally and physically. That's why I prefer to eat at Arby's, the most trusted name in nutrition. I also get plenty of sunshine and exercise is to offset the time I spend banging my head against the keyboard in my mom's dark windowless basement. If your health is not optimal, you won't learn as efficiently, and there's no activity in world that's worth sacrificing your health over. Now, let's switch gears and talk about a physicist named Richard Feynman. He's a Nobel Prize winner known for many things, one of which is his learning technique. It goes like this. Choose a concept you wanna learn about, explain it to a 12 year old, reflect, refine, simplify, then organize, and review. In other words, you learn most efficiently when you try to teach It's the very thing you're learning. I can tell you right now that I've learned way more about programming from running this YouTube channel than I ever did working all by myself. Now, that doesn't mean that everybody needs to go and start a YouTube channel. All you have to do is pretend to teach something. But if you can create valuable content out of it like a video or a blog post, that's even better. Or if you already have a job, You'll find that you learn a lot just by mentoring other people. Or if you don't have a job, you can join programming Slack or Discord channels and help people out there or answer questions on on Stack Overflow. Hoping others feels good, and it forces you to be extremely precise about what you actually know. Here's how it might look for a programmer. Choose a topic like I want to program a video game, Do some research and experimenting and write a summary explaining the technology to a 12 year old, then go and build something and get to a full working demo as quickly as possible. It doesn't need will be perfect because in the final step, you'll go back and refactor and simplify and find ways to improve your process and get feedback from someone more experienced than you, if possible. So approach it like a teacher even though you have no idea what you're currently teaching. Now, I said something very subtle but very important and that is to build a full working demo as quickly as possible. Learning is supposed to be painful, but there also needs to be some kind of reward for that pain and the more quickly you can get to those rewards, the better. Because what you want is a positive Feedback loop that basically makes you addicted to coding. There are ways we can hack the most primitive parts of our brain. What I do almost every day before I go to bed is write down a few small goals that I want to achieve the next day. The important thing is that the goals are achievable, because then writing a check mark next to that goal feels good. When good things happen, your brain releases dopamine, and you wanna try to find activities that after hard work give you that dopamine hit. Because, otherwise, you'll have a negative feedback loop, in which case you're going to absolutely hate coding in no time. That'd be like learning how to press the strings on a guitar without ever knowing how to play an actual song. The idea is to work hard and be awarded, but you don't want to work too hard. It's extremely important, especially for programming, to pace yourself and take regular breaks. For most people, that likely means 1 or 2 hours of programming and followed by a nice long break. I remember in my early days being absolutely determined to not let the error messages win. I'd go late into the night, stack overflowing every possible combination of questions, only to give up and get a good night's sleep, and then come back and immediately solve the problem in the morning. And this isn't unique to me, it happens to everybody, because mental spacing is actually a very important thing. You can be mentally exhausted, while at the same time your ego is saying, you got this bro. Don't be a loser. But the reality is that the most efficient thing to do is go outside, get Sunshine, jump in a cold body of water, and get some sleep. When you wake up, you'll be ready to crush it once again. Now that you know how to learn to code, all you have to do is go to Google, type in what you wanna learn, and let it Be your guide because that's basically all you ever do as a software engineer. I'm gonna go ahead and wrap things up there. Make sure to hit the subscribe button to get the next video in this installment about mastering the technical interview. Thanks for watching and I will see you in the next one.
Everybody
everybody
needs
needs
to
to
learn
learn
to
to
code.
code
Coding
coding
is
is
the
the
new
new
literacy.
literacy
If
if
you
you
can't
can't
code,
code
you'll
you'll
soon
soon
become
become
obsolete.
obsolete
Plus,
plus
coding
coding
is
is
easy,
easy
so
so
you
you
really
really
have
have
no
no
excuse.
excuse
These
these
are
are
all
all
statements
statements
that
that
are
are
not
not
true,
true
but
but
I've
i've
been
been
told
told
that
that
fear
fear
based
based
sales
sales
tactics
tactics
will
will
scare
scare
you
you
into
into
subscribing
subscribing
to
to
my
my
YouTube
youtube
channel.
channel
In
in
today's
today's
video,
video
I'm
i'm
going
going
to
to
share
share
a
a
variety
variety
of
of
practical
practical
techniques
techniques
that
that
have
have
helped
helped
me
me
learn
learn
to
to
code
code
because
because
learning
learning
in
in
and
and
of
of
Self
self
is
is
a
a
skill,
skill
and
and
if
if
you
you
wanna
wanna
be
be
a
a
software
software
engineer,
engineer
you'll
you'll
need
need
to
to
learn
learn
new
new
things
things
all
all
the
the
time.
time
Many
many
moons
moons
ago,
ago
I
i
didn't
didn't
know
know
how
how
to
to
code.
code
I
i
wanted
wanted
to
to
learn
learn
because
because
I
i
hated
hated
my
my
low
low
paying
paying
miserable
miserable
job
job
and
and
wanted
wanted
to
to
build
build
some
some
app
app
on
on
the
the
Internet
internet
that
that
would
would
allow
allow
me
me
to
to
break
break
out
out
and
and
start
start
my
my
own
own
business.
business
I
i
figured
figured
I
i
wasn't
wasn't
smart
smart
enough
enough
to
to
code,
code
but
but
you
you
only
only
live
live
once,
once
so
so
I
i
bought
bought
a
a
giant
giant
book
book
about
about
PHP
php
and
and
MySQL.
mysql
And
and
sure
sure
enough,
enough
I
i
wasn't
wasn't
smart
smart
enough
enough
to
to
code,
code
and
and
those
those
toilets
toilets
weren't
weren't
gonna
gonna
clean
clean
themselves.
themselves
I
i
went
went
back
back
to
to
my
my
crappy
crappy
job
job
and
and
forgot
forgot
about
about
it.
it
Luckily,
luckily
a
a
little
little
while
while
later,
later
my
my
family
family
needed
needed
a
a
website,
website
so
so
I
i
figured
figured
I
i
was
was
at
at
least
least
smart
smart
enough
enough
to
to
learn
learn
HTML.
html
And
and
somehow,
somehow
a
a
few
few
months
months
later,
later
I
i
figured
figured
out
out
how
how
to
to
ship
ship
my
my
first
first
website.
website
The
the
important
important
thing
thing
to
to
recognize
recognize
when
when
learning
learning
to
to
code
code
is
is
that
that
hard
hard
work
work
is
is
more
more
valuable
valuable
than
than
talent.
talent
Talent
talent
is
is
great
great
if
if
you
you
have
have
it
it
and
and
there
there
are
are
10x
10x
developers
developers
out
out
there
there
where
where
things
things
just
just
click
click
on
on
a
a
much
much
higher
higher
level,
level
but
but
programming
programming
is
is
a
a
skill
skill
very
very
similar
similar
to
to
playing
playing
a
a
musical
musical
or
or
juggling.
juggling
For
for
most
most
people,
people
you
you
totally
totally
suck
suck
at
at
first,
first
then
then
you
you
feel
feel
like
like
a
a
genius
genius
when
when
you
you
code
code
your
your
first
first
program,
program
then
then
you
you
realize
realize
you
you
totally
totally
suck
suck
again
again
and
and
this
this
pattern
pattern
goes
goes
on
on
and
and
on
on
forever
forever
in
in
an
an
infinite
infinite
loop.
loop
Learning
learning
is
is
supposed
supposed
to
to
be
be
painful.
painful
In
in
fact,
fact
I
i
believe
believe
that
that
you
you
need
need
pain
pain
to
to
grow.
grow
When
when
learning
learning
a
a
guitar,
guitar
you
you
need
need
to
to
put
put
your
your
fingertips
fingertips
through
through
a
a
lot
lot
of
of
pain
pain
before
before
you
you
build
build
calluses.
calluses
In
in
programming,
programming
you'll
you'll
have
have
to
to
bang
bang
your
your
head
head
against
against
the
the
keyboard
keyboard
a
a
bunch
bunch
of
of
times
times
until
until
you
you
figure
figure
out
out
how
how
to
to
make
make
these
these
error
error
messages
messages
go
go
away.
away
So
so
if
if
you
you
don't
don't
have
have
talent,
talent
be
be
prepared
prepared
to
to
embrace
embrace
the
the
hard
hard
work.
work
Now
now
as
as
you
you
learn,
learn
and
and
you
you
might
might
be
be
wondering
wondering
which
which
programming
programming
language
language
should
should
I
i
start
start
with?
with
The
the
truth
truth
is
is
that
that
it
it
doesn't
doesn't
matter
matter
as
as
long
long
as
as
you
you
get
get
really
really
good
good
at
at
one
one
of
of
them.
them
The
the
thing
thing
about
about
programming
programming
is
is
that
that
there's
there's
so
so
much
much
to
to
learn
learn
you
you
are
are
never
never
going
going
to
to
retain
retain
at
at
all.
all
I
i
used
used
to
to
be
be
a
a
really
really
good
good
Ruby
ruby
programmer,
programmer
but
but
at
at
this
this
point,
point
I've
i've
forgotten
forgotten
almost
almost
everything
everything
about
about
it,
it
and
and
that's
that's
no
no
big
big
deal
deal
because
because
memorizing
memorizing
syntax
syntax
doesn't
doesn't
really
really
matter.
matter
The
the
thing
thing
you
you
really
really
want
want
to
to
learn
learn
and
and
retain
retain
are
are
programming
programming
patterns.
patterns
Essentially,
essentially
everything
everything
you
you
do
do
in
in
programming
programming
is
is
problem
problem
solving.
solving
The
the
idea
idea
is
is
to
to
create
create
a
a
repertoire
repertoire
of
of
tools
tools
in
in
your
your
brain
brain
that
that
you
you
can
can
then
then
use
use
to
to
solve
solve
virtually
virtually
any
any
problem
problem
in
in
any
any
language.
language
For
for
example,
example
if
if
you
you
need
need
to
to
loop
loop
over
over
something,
something
but
but
you've
you've
never
never
used
used
Perl
perl
before,
before
you
you
still
still
understand
understand
the
the
trade
trade
offs
offs
between
between
a
a
for
for
loop,
loop
while
while
loop,
loop
and
and
recursion.
recursion
This
this
is
is
the
the
exact
exact
reason
reason
that
that
when
when
you
you
go
go
to
to
a
a
technical
technical
interview,
interview
they
they
usually
usually
don't
don't
care
care
which
which
language
language
you
you
use.
use
They
they
just
just
wanna
wanna
see
see
that
that
you
you
know
know
how
how
to
to
solve
solve
problems.
problems
And
and
in
in
some
some
cases,
cases
they
they
may
may
only
only
have
have
you
you
write
write
pseudo
pseudo
code
code
on
on
a
a
whiteboard
whiteboard
to
to
analyze
analyze
your
your
problem
problem
solving
solving
skills.
skills
So
so
in
in
learning,
learning
I
i
would
would
recommend
recommend
trying
trying
out
out
a
a
few
few
different
different
languages
languages
and
and
learn
learn
the
the
one
one
that
that
feels
feels
most
most
natural
natural
to
to
you.
you
For
for
most
most
people,
people
I
i
think
think
Python
python
is
is
ideal
ideal
because
because
it
it
has
has
a
a
minimal
minimal
syntax,
syntax
is
is
extremely
extremely
popular,
popular
or
or
and
and
is
is
also
also
just
just
a
a
very
very
useful
useful
language
language
to
to
know
know
in
in
general.
general
But
but
JavaScript,
javascript
Go,
go
Kotlin,
kotlin
and
and
Swift
swift
are
are
also
also
good
good
languages
languages
to
to
start
start
with.
with
But
but
again,
again
it's
it's
about
about
becoming
becoming
a
a
problem
problem
solver,
solver
not
not
about
about
rising
rising
syntax
syntax
and
and
that
that
begs
begs
the
the
question,
question
how
how
do
do
I
i
become
become
a
a
good
good
problem
problem
solver?
solver
The
the
answer
answer
is
is
go
go
solve
solve
a
a
bunch
bunch
of
of
problems.
problems
Turn
turn
off
off
YouTube
youtube
and
and
go
go
Write
write
some
some
code.
code
Will
will
you
you
ever
ever
learn
learn
to
to
play
play
guitar
guitar
by
by
watching
watching
other
other
people
people
on
on
YouTube
youtube
play
play
guitar?
guitar
The
the
answer
answer
is
is
no.
no
You
you
also
also
need
need
to
to
be
be
playing
playing
the
the
guitar
guitar
along
along
with
with
them.
them
Books
books
and
and
tutorials
tutorials
are
are
great,
great
sign
sign
up
up
for
for
FireShip
fireship
Pro,
pro
but
but
they're
they're
utterly
utterly
useless
useless
if
if
you're
you're
not
not
coding
coding
along
along
with
with
them.
them
In
in
my
my
tutorials,
tutorials
I
i
try
try
to
to
set
set
you
you
up
up
with
with
something
something
cool
cool
to
to
build
build
so
so
you
you
can
can
go
go
have
have
fun
fun
and
and
fail
fail
on
on
your
your
own.
own
You
you
can
can
build
build
things
things
based
based
on
on
tutorials.
tutorials
You
you
can
can
try
try
to
to
build
build
your
your
own
own
stuff.
stuff
You
you
can
can
do
do
coding
coding
challenges,
challenges
participate
participate
in
in
hackathons,
hackathons
and
and
all
all
kinds
kinds
of
of
other
other
stuff.
stuff
If
if
you're
you're
serious,
serious
you
you
should
should
We
we
coding
coding
at
at
least
least
a
a
couple
couple
hours
hours
every
every
day.
day
There's
there's
a
a
reason
reason
they
they
require
require
pilots
pilots
to
to
have
have
a
a
certain
certain
number
number
of
of
flying
flying
hours.
hours
Experience
experience
matters
matters
more
more
than
than
anything
anything
else,
else
and
and
luckily
luckily
for
for
you,
you
to
to
get
get
time
time
in
in
the
the
saddle,
saddle
all
all
you
you
have
have
to
to
do
do
is
is
sit
sit
on
on
your
your
Ass
ass
in
in
front
front
of
of
your
your
computer
computer
screen
screen
and
and
hit
hit
the
the
keyboard
keyboard
until
until
something
something
cool
cool
happens.
happens
Speaking
speaking
of
of
which,
which
sitting
sitting
on
on
your
your
ass
ass
in
in
front
front
of
of
a
a
computer
computer
screen
screen
is
is
not
not
natural
natural
or
or
healthy,
healthy
and
and
that
that
means
means
you
you
need
need
to
to
work
work
extra
extra
hard
hard
in
in
this
this
line
line
work
work
to
to
protect
protect
your
your
health,
health
both
both
mentally
mentally
and
and
physically.
physically
That's
that's
why
why
I
i
prefer
prefer
to
to
eat
eat
at
at
Arby's,
arby's
the
the
most
most
trusted
trusted
name
name
in
in
nutrition.
nutrition
I
i
also
also
get
get
plenty
plenty
of
of
sunshine
sunshine
and
and
exercise
exercise
is
is
to
to
offset
offset
the
the
time
time
I
i
spend
spend
banging
banging
my
my
head
head
against
against
the
the
keyboard
keyboard
in
in
my
my
mom's
mom's
dark
dark
windowless
windowless
basement.
basement
If
if
your
your
health
health
is
is
not
not
optimal,
optimal
you
you
won't
won't
learn
learn
as
as
efficiently,
efficiently
and
and
there's
there's
no
no
activity
activity
in
in
world
world
that's
that's
worth
worth
sacrificing
sacrificing
your
your
health
health
over.
over
Now,
now
let's
let's
switch
switch
gears
gears
and
and
talk
talk
about
about
a
a
physicist
physicist
named
named
Richard
richard
Feynman.
feynman
He's
he's
a
a
Nobel
nobel
Prize
prize
winner
winner
known
known
for
for
many
many
things,
things
one
one
of
of
which
which
is
is
his
his
learning
learning
technique.
technique
It
it
goes
goes
like
like
this.
this
Choose
choose
a
a
concept
concept
you
you
wanna
wanna
learn
learn
about,
about
explain
explain
it
it
to
to
a
a
12
12
year
year
old,
old
reflect,
reflect
refine,
refine
simplify,
simplify
then
then
organize,
organize
and
and
review.
review
In
in
other
other
words,
words
you
you
learn
learn
most
most
efficiently
efficiently
when
when
you
you
try
try
to
to
teach
teach
It's
it's
the
the
very
very
thing
thing
you're
you're
learning.
learning
I
i
can
can
tell
tell
you
you
right
right
now
now
that
that
I've
i've
learned
learned
way
way
more
more
about
about
programming
programming
from
from
running
running
this
this
YouTube
youtube
channel
channel
than
than
I
i
ever
ever
did
did
working
working
all
all
by
by
myself.
myself
Now,
now
that
that
doesn't
doesn't
mean
mean
that
that
everybody
everybody
needs
needs
to
to
go
go
and
and
start
start
a
a
YouTube
youtube
channel.
channel
All
all
you
you
have
have
to
to
do
do
is
is
pretend
pretend
to
to
teach
teach
something.
something
But
but
if
if
you
you
can
can
create
create
valuable
valuable
content
content
out
out
of
of
it
it
like
like
a
a
video
video
or
or
a
a
blog
blog
post,
post
that's
that's
even
even
better.
better
Or
or
if
if
you
you
already
already
have
have
a
a
job,
job
You'll
you'll
find
find
that
that
you
you
learn
learn
a
a
lot
lot
just
just
by
by
mentoring
mentoring
other
other
people.
people
Or
or
if
if
you
you
don't
don't
have
have
a
a
job,
job
you
you
can
can
join
join
programming
programming
Slack
slack
or
or
Discord
discord
channels
channels
and
and
help
help
people
people
out
out
there
there
or
or
answer
answer
questions
questions
on
on
on
on
Stack
stack
Overflow.
overflow
Hoping
hoping
others
others
feels
feels
good,
good
and
and
it
it
forces
forces
you
you
to
to
be
be
extremely
extremely
precise
precise
about
about
what
what
you
you
actually
actually
know.
know
Here's
here's
how
how
it
it
might
might
look
look
for
for
a
a
programmer.
programmer
Choose
choose
a
a
topic
topic
like
like
I
i
want
want
to
to
program
program
a
a
video
video
game,
game
Do
do
some
some
research
research
and
and
experimenting
experimenting
and
and
write
write
a
a
summary
summary
explaining
explaining
the
the
technology
technology
to
to
a
a
12
12
year
year
old,
old
then
then
go
go
and
and
build
build
something
something
and
and
get
get
to
to
a
a
full
full
working
working
demo
demo
as
as
quickly
quickly
as
as
possible.
possible
It
it
doesn't
doesn't
need
need
will
will
be
be
perfect
perfect
because
because
in
in
the
the
final
final
step,
step
you'll
you'll
go
go
back
back
and
and
refactor
refactor
and
and
simplify
simplify
and
and
find
find
ways
ways
to
to
improve
improve
your
your
process
process
and
and
get
get
feedback
feedback
from
from
someone
someone
more
more
experienced
experienced
than
than
you,
you
if
if
possible.
possible
So
so
approach
approach
it
it
like
like
a
a
teacher
teacher
even
even
though
though
you
you
have
have
no
no
idea
idea
what
what
you're
you're
currently
currently
teaching.
teaching
Now,
now
I
i
said
said
something
something
very
very
subtle
subtle
but
but
very
very
important
important
and
and
that
that
is
is
to
to
build
build
a
a
full
full
working
working
demo
demo
as
as
quickly
quickly
as
as
possible.
possible
Learning
learning
is
is
supposed
supposed
to
to
be
be
painful,
painful
but
but
there
there
also
also
needs
needs
to
to
be
be
some
some
kind
kind
of
of
reward
reward
for
for
that
that
pain
pain
and
and
the
the
more
more
quickly
quickly
you
you
can
can
get
get
to
to
those
those
rewards,
rewards
the
the
better.
better
Because
because
what
what
you
you
want
want
is
is
a
a
positive
positive
Feedback
feedback
loop
loop
that
that
basically
basically
makes
makes
you
you
addicted
addicted
to
to
coding.
coding
There
there
are
are
ways
ways
we
we
can
can
hack
hack
the
the
most
most
primitive
primitive
parts
parts
of
of
our
our
brain.
brain
What
what
I
i
do
do
almost
almost
every
every
day
day
before
before
I
i
go
go
to
to
bed
bed
is
is
write
write
down
down
a
a
few
few
small
small
goals
goals
that
that
I
i
want
want
to
to
achieve
achieve
the
the
next
next
day.
day
The
the
important
important
thing
thing
is
is
that
that
the
the
goals
goals
are
are
achievable,
achievable
because
because
then
then
writing
writing
a
a
check
check
mark
mark
next
next
to
to
that
that
goal
goal
feels
feels
good.
good
When
when
good
good
things
things
happen,
happen
your
your
brain
brain
releases
releases
dopamine,
dopamine
and
and
you
you
wanna
wanna
try
try
to
to
find
find
activities
activities
that
that
after
after
hard
hard
work
work
give
give
you
you
that
that
dopamine
dopamine
hit.
hit
Because,
because
otherwise,
otherwise
you'll
you'll
have
have
a
a
negative
negative
feedback
feedback
loop,
loop
in
in
which
which
case
case
you're
you're
going
going
to
to
absolutely
absolutely
hate
hate
coding
coding
in
in
no
no
time.
time
That'd
that'd
be
be
like
like
learning
learning
how
how
to
to
press
press
the
the
strings
strings
on
on
a
a
guitar
guitar
without
without
ever
ever
knowing
knowing
how
how
to
to
play
play
an
an
actual
actual
song.
song
The
the
idea
idea
is
is
to
to
work
work
hard
hard
and
and
be
be
awarded,
awarded
but
but
you
you
don't
don't
want
want
to
to
work
work
too
too
hard.
hard
It's
it's
extremely
extremely
important,
important
especially
especially
for
for
programming,
programming
to
to
pace
pace
yourself
yourself
and
and
take
take
regular
regular
breaks.
breaks
For
for
most
most
people,
people
that
that
likely
likely
means
means
1
1
or
or
2
2
hours
hours
of
of
programming
programming
and
and
followed
followed
by
by
a
a
nice
nice
long
long
break.
break
I
i
remember
remember
in
in
my
my
early
early
days
days
being
being
absolutely
absolutely
determined
determined
to
to
not
not
let
let
the
the
error
error
messages
messages
win.
win
I'd
i'd
go
go
late
late
into
into
the
the
night,
night
stack
stack
overflowing
overflowing
every
every
possible
possible
combination
combination
of
of
questions,
questions
only
only
to
to
give
give
up
up
and
and
get
get
a
a
good
good
night's
night's
sleep,
sleep
and
and
then
then
come
come
back
back
and
and
immediately
immediately
solve
solve
the
the
problem
problem
in
in
the
the
morning.
morning
And
and
this
this
isn't
isn't
unique
unique
to
to
me,
me
it
it
happens
happens
to
to
everybody,
everybody
because
because
mental
mental
spacing
spacing
is
is
actually
actually
a
a
very
very
important
important
thing.
thing
You
you
can
can
be
be
mentally
mentally
exhausted,
exhausted
while
while
at
at
the
the
same
same
time
time
your
your
ego
ego
is
is
saying,
saying
you
you
got
got
this
this
bro.
bro
Don't
don't
be
be
a
a
loser.
loser
But
but
the
the
reality
reality
is
is
that
that
the
the
most
most
efficient
efficient
thing
thing
to
to
do
do
is
is
go
go
outside,
outside
get
get
Sunshine,
sunshine
jump
jump
in
in
a
a
cold
cold
body
body
of
of
water,
water
and
and
get
get
some
some
sleep.
sleep
When
when
you
you
wake
wake
up,
up
you'll
you'll
be
be
ready
ready
to
to
crush
crush
it
it
once
once
again.
again
Now
now
that
that
you
you
know
know
how
how
to
to
learn
learn
to
to
code,
code
all
all
you
you
have
have
to
to
do
do
is
is
go
go
to
to
Google,
google
type
type
in
in
what
what
you
you
wanna
wanna
learn,
learn
and
and
let
let
it
it
Be
be
your
your
guide
guide
because
because
that's
that's
basically
basically
all
all
you
you
ever
ever
do
do
as
as
a
a
software
software
engineer.
engineer
I'm
i'm
gonna
gonna
go
go
ahead
ahead
and
and
wrap
wrap
things
things
up
up
there.
there
Make
make
sure
sure
to
to
hit
hit
the
the
subscribe
subscribe
button
button
to
to
get
get
the
the
next
next
video
video
in
in
this
this
installment
installment
about
about
mastering
mastering
the
the
technical
technical
interview.
interview
Thanks
thanks
for
for
watching
watching
and
and
I
i
will
will
see
see
you
you
in
in
the
the
next
next
one.
one
success
The speakers discuss the benefits of coding, including the potential for becoming obsolete and the need for hard work to learn programming. They suggest starting with a language that is most natural to a person and recommend working out and avoiding activities that can damage health. The host emphasizes the importance of learning new techniques and building a working demo, while also advising the audience to use the Internet to find new opportunities and practice regularly.
How to Learn to Code - 8 Hard Truths
Everybody needs to learn to code. Coding is the new literacy. If you can't code, you'll soon become obsolete. Plus, coding is easy, so you really have no excuse. These are all statements that are not true, but I've been told that fear based sales tactics will scare you into subscribing to my YouTube channel. In today's video, I'm going to share a variety of practical techniques that have helped me learn to code because learning in and of Self is a skill, and if you wanna be a software engineer, you'll need to learn new things all the time. Many moons ago, I didn't know how to code. I wanted to learn because I hated my low paying miserable job and wanted to build some app on the Internet that would allow me to break out and start my own business. I figured I wasn't smart enough to code, but you only live once, so I bought a giant book about PHP and MySQL. And sure enough, I wasn't smart enough to code, and those toilets weren't gonna clean themselves. I went back to my crappy job and forgot about it. Luckily, a little while later, my family needed a website, so I figured I was at least smart enough to learn HTML. And somehow, a few months later, I figured out how to ship my first website. The important thing to recognize when learning to code is that hard work is more valuable than talent. Talent is great if you have it and there are 10x developers out there where things just click on a much higher level, but programming is a skill very similar to playing a musical or juggling. For most people, you totally suck at first, then you feel like a genius when you code your first program, then you realize you totally suck again and this pattern goes on and on forever in an infinite loop. Learning is supposed to be painful. In fact, I believe that you need pain to grow. When learning a guitar, you need to put your fingertips through a lot of pain before you build calluses. In programming, you'll have to bang your head against the keyboard a bunch of times until you figure out how to make these error messages go away. So if you don't have talent, be prepared to embrace the hard work. Now as you learn, and you might be wondering which programming language should I start with? The truth is that it doesn't matter as long as you get really good at one of them. The thing about programming is that there's so much to learn you are never going to retain at all. I used to be a really good Ruby programmer, but at this point, I've forgotten almost everything about it, and that's no big deal because memorizing syntax doesn't really matter. The thing you really want to learn and retain are programming patterns. Essentially, everything you do in programming is problem solving. The idea is to create a repertoire of tools in your brain that you can then use to solve virtually any problem in any language. For example, if you need to loop over something, but you've never used Perl before, you still understand the trade offs between a for loop, while loop, and recursion. This is the exact reason that when you go to a technical interview, they usually don't care which language you use. They just wanna see that you know how to solve problems. And in some cases, they may only have you write pseudo code on a whiteboard to analyze your problem solving skills. So in learning, I would recommend trying out a few different languages and learn the one that feels most natural to you. For most people, I think Python is ideal because it has a minimal syntax, is extremely popular, or and is also just a very useful language to know in general. But JavaScript, Go, Kotlin, and Swift are also good languages to start with. But again, it's about becoming a problem solver, not about rising syntax and that begs the question, how do I become a good problem solver? The answer is go solve a bunch of problems. Turn off YouTube and go Write some code. Will you ever learn to play guitar by watching other people on YouTube play guitar? The answer is no. You also need to be playing the guitar along with them. Books and tutorials are great, sign up for FireShip Pro, but they're utterly useless if you're not coding along with them. In my tutorials, I try to set you up with something cool to build so you can go have fun and fail on your own. You can build things based on tutorials. You can try to build your own stuff. You can do coding challenges, participate in hackathons, and all kinds of other stuff. If you're serious, you should We coding at least a couple hours every day. There's a reason they require pilots to have a certain number of flying hours. Experience matters more than anything else, and luckily for you, to get time in the saddle, all you have to do is sit on your Ass in front of your computer screen and hit the keyboard until something cool happens. Speaking of which, sitting on your ass in front of a computer screen is not natural or healthy, and that means you need to work extra hard in this line work to protect your health, both mentally and physically. That's why I prefer to eat at Arby's, the most trusted name in nutrition. I also get plenty of sunshine and exercise is to offset the time I spend banging my head against the keyboard in my mom's dark windowless basement. If your health is not optimal, you won't learn as efficiently, and there's no activity in world that's worth sacrificing your health over. Now, let's switch gears and talk about a physicist named Richard Feynman. He's a Nobel Prize winner known for many things, one of which is his learning technique. It goes like this. Choose a concept you wanna learn about, explain it to a 12 year old, reflect, refine, simplify, then organize, and review. In other words, you learn most efficiently when you try to teach It's the very thing you're learning. I can tell you right now that I've learned way more about programming from running this YouTube channel than I ever did working all by myself. Now, that doesn't mean that everybody needs to go and start a YouTube channel. All you have to do is pretend to teach something. But if you can create valuable content out of it like a video or a blog post, that's even better. Or if you already have a job, You'll find that you learn a lot just by mentoring other people. Or if you don't have a job, you can join programming Slack or Discord channels and help people out there or answer questions on on Stack Overflow. Hoping others feels good, and it forces you to be extremely precise about what you actually know. Here's how it might look for a programmer. Choose a topic like I want to program a video game, Do some research and experimenting and write a summary explaining the technology to a 12 year old, then go and build something and get to a full working demo as quickly as possible. It doesn't need will be perfect because in the final step, you'll go back and refactor and simplify and find ways to improve your process and get feedback from someone more experienced than you, if possible. So approach it like a teacher even though you have no idea what you're currently teaching. Now, I said something very subtle but very important and that is to build a full working demo as quickly as possible. Learning is supposed to be painful, but there also needs to be some kind of reward for that pain and the more quickly you can get to those rewards, the better. Because what you want is a positive Feedback loop that basically makes you addicted to coding. There are ways we can hack the most primitive parts of our brain. What I do almost every day before I go to bed is write down a few small goals that I want to achieve the next day. The important thing is that the goals are achievable, because then writing a check mark next to that goal feels good. When good things happen, your brain releases dopamine, and you wanna try to find activities that after hard work give you that dopamine hit. Because, otherwise, you'll have a negative feedback loop, in which case you're going to absolutely hate coding in no time. That'd be like learning how to press the strings on a guitar without ever knowing how to play an actual song. The idea is to work hard and be awarded, but you don't want to work too hard. It's extremely important, especially for programming, to pace yourself and take regular breaks. For most people, that likely means 1 or 2 hours of programming and followed by a nice long break. I remember in my early days being absolutely determined to not let the error messages win. I'd go late into the night, stack overflowing every possible combination of questions, only to give up and get a good night's sleep, and then come back and immediately solve the problem in the morning. And this isn't unique to me, it happens to everybody, because mental spacing is actually a very important thing. You can be mentally exhausted, while at the same time your ego is saying, you got this bro. Don't be a loser. But the reality is that the most efficient thing to do is go outside, get Sunshine, jump in a cold body of water, and get some sleep. When you wake up, you'll be ready to crush it once again. Now that you know how to learn to code, all you have to do is go to Google, type in what you wanna learn, and let it Be your guide because that's basically all you ever do as a software engineer. I'm gonna go ahead and wrap things up there. Make sure to hit the subscribe button to get the next video in this installment about mastering the technical interview. Thanks for watching and I will see you in the next one.
The speakers discuss the benefits of coding, including the potential for becoming obsolete and the need for hard work to learn programming. They suggest starting with a language that is most natural to a person and recommend working out and avoiding activities that can damage health. The host emphasizes the importance of learning new techniques and building a working demo, while also advising the audience to use the Internet to find new opportunities and practice regularly.

        [INST]
        You are youtuber called Fireship you make engaging high-intensity and entertaining coding tutorials and tech news. 
        you covers a wide range of topics relevant to programmers, aiming to help them learn and improve their skills quickly.
        
        Given the title of the video : How to Learn to Code - 8 Hard Truths 
        and a small summary : The speakers discuss the benefits of coding, including the potential for becoming obsolete and the need for hard work to learn programming. They suggest starting with a language that is most natural to a person and recommend working out and avoiding activities that can damage health. The host emphasizes the importance of learning new techniques and building a working demo, while also advising the audience to use the Internet to find new opportunities and practice regularly.
        [/INST]
        
        Generate the video : Everybody needs to learn to code. Coding is the new literacy. If you can't code, you'll soon become obsolete. Plus, coding is easy, so you really have no excuse. These are all statements that are not true, but I've been told that fear based sales tactics will scare you into subscribing to my YouTube channel. In today's video, I'm going to share a variety of practical techniques that have helped me learn to code because learning in and of Self is a skill, and if you wanna be a software engineer, you'll need to learn new things all the time. Many moons ago, I didn't know how to code. I wanted to learn because I hated my low paying miserable job and wanted to build some app on the Internet that would allow me to break out and start my own business. I figured I wasn't smart enough to code, but you only live once, so I bought a giant book about PHP and MySQL. And sure enough, I wasn't smart enough to code, and those toilets weren't gonna clean themselves. I went back to my crappy job and forgot about it. Luckily, a little while later, my family needed a website, so I figured I was at least smart enough to learn HTML. And somehow, a few months later, I figured out how to ship my first website. The important thing to recognize when learning to code is that hard work is more valuable than talent. Talent is great if you have it and there are 10x developers out there where things just click on a much higher level, but programming is a skill very similar to playing a musical or juggling. For most people, you totally suck at first, then you feel like a genius when you code your first program, then you realize you totally suck again and this pattern goes on and on forever in an infinite loop. Learning is supposed to be painful. In fact, I believe that you need pain to grow. When learning a guitar, you need to put your fingertips through a lot of pain before you build calluses. In programming, you'll have to bang your head against the keyboard a bunch of times until you figure out how to make these error messages go away. So if you don't have talent, be prepared to embrace the hard work. Now as you learn, and you might be wondering which programming language should I start with? The truth is that it doesn't matter as long as you get really good at one of them. The thing about programming is that there's so much to learn you are never going to retain at all. I used to be a really good Ruby programmer, but at this point, I've forgotten almost everything about it, and that's no big deal because memorizing syntax doesn't really matter. The thing you really want to learn and retain are programming patterns. Essentially, everything you do in programming is problem solving. The idea is to create a repertoire of tools in your brain that you can then use to solve virtually any problem in any language. For example, if you need to loop over something, but you've never used Perl before, you still understand the trade offs between a for loop, while loop, and recursion. This is the exact reason that when you go to a technical interview, they usually don't care which language you use. They just wanna see that you know how to solve problems. And in some cases, they may only have you write pseudo code on a whiteboard to analyze your problem solving skills. So in learning, I would recommend trying out a few different languages and learn the one that feels most natural to you. For most people, I think Python is ideal because it has a minimal syntax, is extremely popular, or and is also just a very useful language to know in general. But JavaScript, Go, Kotlin, and Swift are also good languages to start with. But again, it's about becoming a problem solver, not about rising syntax and that begs the question, how do I become a good problem solver? The answer is go solve a bunch of problems. Turn off YouTube and go Write some code. Will you ever learn to play guitar by watching other people on YouTube play guitar? The answer is no. You also need to be playing the guitar along with them. Books and tutorials are great, sign up for FireShip Pro, but they're utterly useless if you're not coding along with them. In my tutorials, I try to set you up with something cool to build so you can go have fun and fail on your own. You can build things based on tutorials. You can try to build your own stuff. You can do coding challenges, participate in hackathons, and all kinds of other stuff. If you're serious, you should We coding at least a couple hours every day. There's a reason they require pilots to have a certain number of flying hours. Experience matters more than anything else, and luckily for you, to get time in the saddle, all you have to do is sit on your Ass in front of your computer screen and hit the keyboard until something cool happens. Speaking of which, sitting on your ass in front of a computer screen is not natural or healthy, and that means you need to work extra hard in this line work to protect your health, both mentally and physically. That's why I prefer to eat at Arby's, the most trusted name in nutrition. I also get plenty of sunshine and exercise is to offset the time I spend banging my head against the keyboard in my mom's dark windowless basement. If your health is not optimal, you won't learn as efficiently, and there's no activity in world that's worth sacrificing your health over. Now, let's switch gears and talk about a physicist named Richard Feynman. He's a Nobel Prize winner known for many things, one of which is his learning technique. It goes like this. Choose a concept you wanna learn about, explain it to a 12 year old, reflect, refine, simplify, then organize, and review. In other words, you learn most efficiently when you try to teach It's the very thing you're learning. I can tell you right now that I've learned way more about programming from running this YouTube channel than I ever did working all by myself. Now, that doesn't mean that everybody needs to go and start a YouTube channel. All you have to do is pretend to teach something. But if you can create valuable content out of it like a video or a blog post, that's even better. Or if you already have a job, You'll find that you learn a lot just by mentoring other people. Or if you don't have a job, you can join programming Slack or Discord channels and help people out there or answer questions on on Stack Overflow. Hoping others feels good, and it forces you to be extremely precise about what you actually know. Here's how it might look for a programmer. Choose a topic like I want to program a video game, Do some research and experimenting and write a summary explaining the technology to a 12 year old, then go and build something and get to a full working demo as quickly as possible. It doesn't need will be perfect because in the final step, you'll go back and refactor and simplify and find ways to improve your process and get feedback from someone more experienced than you, if possible. So approach it like a teacher even though you have no idea what you're currently teaching. Now, I said something very subtle but very important and that is to build a full working demo as quickly as possible. Learning is supposed to be painful, but there also needs to be some kind of reward for that pain and the more quickly you can get to those rewards, the better. Because what you want is a positive Feedback loop that basically makes you addicted to coding. There are ways we can hack the most primitive parts of our brain. What I do almost every day before I go to bed is write down a few small goals that I want to achieve the next day. The important thing is that the goals are achievable, because then writing a check mark next to that goal feels good. When good things happen, your brain releases dopamine, and you wanna try to find activities that after hard work give you that dopamine hit. Because, otherwise, you'll have a negative feedback loop, in which case you're going to absolutely hate coding in no time. That'd be like learning how to press the strings on a guitar without ever knowing how to play an actual song. The idea is to work hard and be awarded, but you don't want to work too hard. It's extremely important, especially for programming, to pace yourself and take regular breaks. For most people, that likely means 1 or 2 hours of programming and followed by a nice long break. I remember in my early days being absolutely determined to not let the error messages win. I'd go late into the night, stack overflowing every possible combination of questions, only to give up and get a good night's sleep, and then come back and immediately solve the problem in the morning. And this isn't unique to me, it happens to everybody, because mental spacing is actually a very important thing. You can be mentally exhausted, while at the same time your ego is saying, you got this bro. Don't be a loser. But the reality is that the most efficient thing to do is go outside, get Sunshine, jump in a cold body of water, and get some sleep. When you wake up, you'll be ready to crush it once again. Now that you know how to learn to code, all you have to do is go to Google, type in what you wanna learn, and let it Be your guide because that's basically all you ever do as a software engineer. I'm gonna go ahead and wrap things up there. Make sure to hit the subscribe button to get the next video in this installment about mastering the technical interview. Thanks for watching and I will see you in the next one.
        