Mindset of Successful Programmers

bigboxSWE
17 Mar 202304:55

Summary

TLDRThis video script emphasizes the importance of mindset over tutorials or programming languages when learning to code. The speaker suggests focusing on practice, avoiding the 'tutorial hell,' and embracing the continuous learning process rather than seeking mastery. They also highlight the need to manage ego, start with basics, and be comfortable with the discomfort of not knowing everything in software engineering. The key takeaway is that programming is a craft that improves with experience and persistence, not just theoretical knowledge.

Takeaways

  • 📚 Focus on Practice: The speaker emphasizes the importance of writing code over consuming theoretical content, advocating for the 'ten thousand lines of code' approach rather than the 'ten thousand hours' rule.
  • 🔨 Embrace the Craft: Programming is likened to a craft like woodworking or playing an instrument, where improvement comes from doing rather than just learning.
  • 🚧 Avoid Tutorial Hell: The speaker suggests that relying too heavily on tutorials can be detrimental and offers to create a guide to help others escape this cycle if the video gets enough likes.
  • 🦄 Tame Your Ego: Beginners should start with simple projects rather than attempting complex ones driven by ego, which can hinder learning and growth.
  • 🌱 Be Comfortable with Discomfort: Software engineering involves constant learning and dealing with the unknown, which can be uncomfortable but is a part of the job.
  • 🌟 Continuous Learning: The speaker stresses that you will never truly master programming, but rather continuously learn and improve by applying concepts in projects.
  • 🛠️ Apply Concepts in Projects: Understanding programming concepts comes from applying them in real projects, not just by studying them theoretically.
  • 🔄 Iterate and Improve: Each new line of code should be better than the last, indicating a cycle of learning and refinement.
  • 🏆 Mastery is a Myth: The notion of mastering a programming language or concept is misguided; instead, focus on building and iterating.
  • 🛑 Patience and Persistence: Becoming a good programmer requires patience, persistence, and a willingness to learn from each project.
  • 🎯 Targeted Learning: As a junior developer, you're expected to know a specific domain and to be eager to learn and adapt to new challenges.

Q & A

  • What is the primary focus according to the speaker for improving coding skills?

    -The speaker emphasizes the importance of practice over theory, suggesting that writing thousands of lines of code and focusing on continuous improvement is more beneficial than just reading books or watching tutorials.

  • What is the '10,000 hours rule to Mastery' mentioned in the script, and how did the speaker initially misunderstand it?

    -The '10,000 hours rule to Mastery' is a concept that suggests one can become a master in a field by practicing it for 10,000 hours. The speaker initially misunderstood it as spending 10,000 hours reading books and watching tutorials, rather than actively practicing coding.

  • Why did the speaker believe that focusing on basic projects was beneath them when starting out?

    -The speaker's ego led them to believe that they should start with complex projects like a Facebook or Reddit clone, rather than simple HTML and CSS projects. This was due to a desire to do 'cool stuff' and a belief that basic projects were beneath their capabilities.

  • What is the significance of being comfortable with being uncomfortable in software engineering?

    -Being comfortable with being uncomfortable is important because as a software engineer, one is constantly faced with new problems and technologies. Embracing this discomfort and seeing it as an opportunity to learn and grow is part of the job.

  • Why does the speaker suggest that trying to master programming concepts early on is not the right approach?

    -The speaker argues that instead of trying to master concepts by reading and watching tutorials, one should apply them in projects and continuously improve. This iterative process of applying and refining knowledge is more aligned with the nature of programming as a craft.

  • What is the speaker's view on the idea of mastering a programming language quickly?

    -The speaker believes that the idea of quickly mastering a programming language is misguided. Instead, beginners should focus on building things and iterating on them, understanding that programming is a continuous learning process rather than a state of mastery.

  • What is the speaker's advice for someone who doesn't understand a concept like CSS flexbox?

    -The speaker advises not to stop and try to master the concept immediately. Instead, one should continue with the tutorial or project, apply the concept as best as they can, and then build on that understanding through practice.

  • How does the speaker define the role of a professional developer in terms of knowledge and learning?

    -A professional developer is defined by the speaker as an information manager who is expected to solve problems within their domain. They are not expected to know everything but should be comfortable with learning and adapting to new technologies and tools.

  • What is the speaker's perspective on the importance of building projects for learning programming?

    -The speaker views building projects as a crucial part of learning programming. It is through the process of creating and iterating on projects that one truly understands and improves their skills, rather than just through theoretical learning.

  • What does the speaker mean by 'tutorial hell' and how can one avoid it?

    -The term 'tutorial hell' refers to the trap of endlessly consuming tutorials without applying the knowledge in practice. To avoid it, the speaker suggests focusing on building projects and applying concepts in a practical manner, rather than just watching or reading tutorials.

  • How does the speaker describe the mindset of a good programmer?

    -A good programmer, according to the speaker, has a strong foundation in the basics, is patient, persistent, and always eager to learn more. They are comfortable with being uncomfortable and are on a continuous pursuit of mastery through building projects and learning from them.

Outlines

00:00

💡 Focus on Practice Over Theory

The speaker reflects on their coding journey, emphasizing the importance of practice over theory. Initially, they were misled by the '10,000-hour rule' to mastery, which they interpreted as consuming vast amounts of educational content. However, they've since shifted their philosophy to the '10,000 lines of code' approach, advocating for writing code iteratively, with each addition improving upon the last. This mindset is likened to learning a craft, where improvement comes from doing, not just learning. The speaker suggests that avoiding tutorials too quickly is beneficial and promises a guide on this topic if the video gets 10 likes.

Mindmap

Keywords

💡10,000 Hour Rule

The 10,000 Hour Rule is a concept popularized by Malcolm Gladwell, suggesting that it takes approximately 10,000 hours of practice to achieve mastery in a field. In the script, the speaker initially misunderstood this rule, thinking that it meant reading books and watching tutorials for 10,000 hours would make them a master programmer. However, the speaker later shifts to a more practical approach, emphasizing the importance of writing code and improving with each line of code written.

💡Practice

Practice, in the context of the video, refers to the act of engaging in hands-on coding to improve programming skills. The speaker emphasizes that practice, particularly writing code, is more beneficial than solely focusing on theoretical knowledge. The script mentions a shift from the 10,000 Hour Rule to a '10,000 lines of code' approach, where the focus is on continuous improvement with each line of code written.

💡Ego

Ego, in this script, represents the personal desire to jump into complex projects without mastering the basics first. The speaker reflects on their early days of learning to code, where their ego led them to attempt to create advanced projects like a Facebook or Reddit clone instead of starting with simpler tasks. The video suggests that overcoming ego and starting with basic projects can lead to faster skill development.

💡Uncomfortable

The term 'uncomfortable' is used to describe the feeling of not knowing everything in software engineering and having to learn and adapt on the job. The speaker advises getting comfortable with this feeling, as it is an inherent part of the profession. The script suggests that embracing the discomfort of learning and problem-solving is essential for growth in the field.

💡Mastery

Mastery, in the video, is the idea of becoming an expert in a particular area, such as programming. The speaker challenges the notion of quickly mastering a programming language, stating that beginners should focus on building things and iterating on their work rather than trying to master concepts. Mastery is portrayed as a continuous pursuit rather than a static achievement.

💡Tutorial Hell

Tutorial Hell is a term used by the speaker to describe the trap of relying too heavily on tutorials, which can hinder the development of independent problem-solving skills. The script mentions a mindset change that helps avoid this situation, and the speaker offers to create a guide on escaping it if the video receives enough engagement.

💡Iterate

To iterate, in the context of programming, means to repeat a process with the goal of improving upon it each time. The speaker uses the term to emphasize the importance of building projects, learning from them, and then making improvements in subsequent iterations, which is a key part of the learning process in programming.

💡Craft

The term 'craft' is used to describe programming as an art or skill that is developed through practice and experience rather than solely through theoretical knowledge. The speaker compares programming to activities like woodworking or playing an instrument, where improvement comes from doing rather than just observing.

💡Grit

Grit, in the script, refers to the perseverance and determination required to keep learning and improving in programming. The speaker mentions that being hired as a junior developer is not about being a master but having the grit to learn and adapt to new challenges.

💡Patience

Patience is the ability to tolerate waiting or delay without becoming frustrated or upset. In the video, it is mentioned as a necessary trait for programmers who must be willing to invest time in learning and not expect immediate mastery.

💡Continuous Pursuit

Continuous Pursuit refers to the ongoing effort to improve and learn more in the field of programming. The speaker uses this term to describe the mindset of good programmers who are always eager to learn and improve, which is a key to their success.

Highlights

Focus on practice, not theory, to become a better programmer.

The '10,000 hour rule' was misunderstood as reading and watching tutorials instead of practicing.

Embrace the '10,000 lines of code' approach, improving with each line.

Coding is a craft; improve by doing, not just by consuming information.

Avoid tutorial help and focus on creating to enhance programming skills.

Ego can hinder learning; start with basic projects to build a strong foundation.

It's okay not to know everything; focus on solving problems within your domain.

Get comfortable with being uncomfortable; it's part of the learning process.

Enjoy the discomfort of learning as it leads to growth and new knowledge.

You won't master programming; instead, focus on building and iterating.

Understanding programming concepts comes from application, not just learning.

When learning, don't stop to master every concept; keep building and apply as you go.

As a junior developer, you're not expected to be a master, but to learn and adapt.

Good programmers have a strong grasp of the basics and a willingness to learn.

Swallow your pride, be comfortable with discomfort, and pursue continuous learning.

Mastery in programming is a continuous pursuit, not a destination.

Transcripts

play00:00

if I could change just one thing about

play00:02

the time I spent learning to code it

play00:05

wouldn't be the tutorial I chose or the

play00:07

language I started off with it would a

play00:09

hundred and ten percent be these mindset

play00:11

changes so I'm just going to get

play00:13

straight into them okay so the first one

play00:15

is focus on practice not Theory when I

play00:17

was first getting started I stumbled

play00:18

across a blog post on the internet where

play00:20

I read something like the 10 000 hour

play00:23

rule to Mastery it said that if you

play00:25

spend 10 000 hours doing something

play00:27

you'll eventually become a master at it

play00:28

in my head I understood that as let me

play00:31

go read a bunch of books and watch a

play00:34

bunch of tutorials on programming for

play00:36

ten thousand hours and the quicker I can

play00:38

do that the better programmer I'll

play00:39

become My Philosophy now is a lot more

play00:42

different and it's more the ten thousand

play00:44

lines of code approach so how quickly

play00:47

can I get to 10 000 lines of code where

play00:49

every thousandth line is better than the

play00:51

last one coding or programming is a

play00:54

craft and you get better at it by being

play00:57

inefficient slow and bad it's a lot more

play01:00

like woodworking playing an instrument

play01:02

drawing than it is like law or history

play01:05

or Finance or anything that's very

play01:08

information dense finally this point or

play01:11

this mindset is really helpful in making

play01:13

you avoid tutorial help and if this

play01:16

video reaches say 10 likes

play01:19

I'll make a step-by-step guide on how to

play01:22

get out of tutorial hell alright Point

play01:24

number two is ego is the enemy so when I

play01:27

was just getting started I didn't want

play01:29

to do the plain HTML CSS recipe websites

play01:34

that tutorials get you to make I want to

play01:36

do the cool stuff I wanted to make my

play01:38

Facebook clone a Reddit clone I want it

play01:41

to be Nitty Gritty in algorithms and

play01:43

rest apis this was my ego speaking had I

play01:47

swallowed my pride and not thought that

play01:49

doing these basic things were beneath me

play01:52

I would have become a much better

play01:54

engineer in a lot less the time

play01:57

all right so Point number three get

play01:59

comfortable with being uncomfortable in

play02:02

software engineering you're an

play02:04

information manager so it isn't your job

play02:07

to know everything and as a professional

play02:09

developer you'll never know everything

play02:11

however given that the problem is within

play02:15

your domain so say you're a back-end

play02:17

engineer and it's a back-end problem

play02:18

you're expected to be able to go and

play02:21

solve it and that's a really

play02:22

uncomfortable feeling and it's never

play02:25

really gonna go away I mean tools will

play02:27

be there you can read up as much as you

play02:28

want outside of work but there's so much

play02:31

in this field that you just have to be

play02:32

okay with feeling uncomfortable and you

play02:36

have to sort of learn to enjoy it you

play02:38

have to see it as a part of the job that

play02:40

you actually enjoyed like okay cool I'm

play02:42

not uncomfortable I'm actually going to

play02:44

learn something now I'm gonna go beyond

play02:46

what I knew before I picked up this

play02:48

piece of work and that's the beauty of

play02:51

this field so the final point is you

play02:53

will never Master programming I see

play02:56

these kind of posts on Reddit all the

play02:58

time how quickly can I master X language

play03:00

or is it better if I master HTML before

play03:03

CSS and this misses the point of

play03:05

programming for beginners you aren't

play03:08

meant to master languages in the

play03:10

beginning you're meant to go and build

play03:12

things with them and iterate on it you

play03:15

don't Master programming Concepts you

play03:18

understand them vaguely when you watch

play03:19

tutorial or read something off a book

play03:22

you go and apply them numerous times in

play03:25

a project and then you continuously

play03:27

improve on that

play03:29

this really goes back to what I said

play03:30

about coding being a craft

play03:33

so for example this is a situation that

play03:35

I've been in and you're starting to

play03:37

learn to code and you stumble across

play03:39

some Concepts you don't understand say

play03:41

CSS flexbox what I used to do was I

play03:44

would sit down and I would non-stop read

play03:47

about the concept watch different videos

play03:49

and I will try to master that concept

play03:52

before I went on to the next and that is

play03:54

completely wrong what I would do now is

play03:56

I would okay I don't understand this let

play03:59

me finish off this section of the

play04:00

tutorial or whatever section I set out

play04:02

to do and then I would go build things

play04:04

with it alright so your immediate

play04:06

rebuttal would be something like okay

play04:07

but if I'm not a master how am I meant

play04:09

to get a job in this industry well

play04:12

you're missing the point again when

play04:13

you're getting hired as a junior

play04:15

developer you're not expected to be a

play04:17

master you're expected to know a certain

play04:19

part of the domain that the company is

play04:20

looking for say front-end development

play04:23

and you're expected to have the grit

play04:25

patience and persistence to constantly

play04:28

learn and absorb new things

play04:31

and this is how really good programmers

play04:33

are made they know the basics really

play04:35

well not by reading books or doing video

play04:38

tutorials by building a bunch of

play04:40

projects and they're always eager to

play04:42

learn more so they do a bunch of

play04:45

practice they swallow their pride

play04:47

they're very comfortable with being

play04:49

uncomfortable because they're learning

play04:51

and they're on this continuous pursuit

play04:54

of mastery

Rate This

5.0 / 5 (0 votes)

Étiquettes Connexes
Coding MindsetPractice Over TheoryAvoid Tutorial HellEgo in LearningUncomfortable LearningContinuous ImprovementJunior DeveloperSoftware EngineeringLearning StrategiesCoding Mastery
Besoin d'un résumé en anglais ?