avatarJesse J Rogers

Summary

The article discusses the challenges and strategies for success in self-taught programming, emphasizing the importance of hands-on practice, a growth mindset, and intrinsic motivation.

Abstract

The article "Learning To Code? Here’s Why Most Self-Taught Programmers Don’t Make It" by Jesse J Rogers delves into the common pitfalls faced by self-taught programmers, highlighting that passive learning through tutorials is insufficient for true proficiency. Rogers, an experienced tutor, stresses the necessity of active engagement with coding challenges and the inevitability of making mistakes as part of the learning process. He advocates for a growth mindset, suggesting that embracing mistakes as opportunities for improvement can make the learning journey enjoyable and rewarding. The article also touches on the importance of intrinsic motivation, arguing that a strong personal 'why' is crucial for overcoming the steep learning curve inherent in programming. Rogers recommends resources like Codingame and freeCodeCamp for hands-on learning and mentions the value of community support and mentorship in accelerating progress.

Opinions

  • Passive learning through tutorials and books alone is insufficient for becoming proficient in programming.
  • Struggle and discomfort are inevitable parts of the learning process, and one must push past their comfort zone to face increasingly difficult challenges.
  • A growth mindset, where mistakes are seen as part of the learning curve, is essential for long-term success in programming.
  • Intrinsic motivation, beyond just the prospect of high earnings, is a key driver for sustained effort and success in learning to code.
  • Engaging with interactive platforms like Codingame can make learning more enjoyable and effective by providing gamified challenges and opportunities for collaboration.
  • Mentorship and community support can significantly enhance the learning experience and increase the chances of success.

PROGRAMMING

Learning To Code? Here’s Why Most Self-Taught Programmers Don’t Make It

What you can do to ensure you’re one of the few who succeeds

Photo by Elisa Ventur on Unsplash

I’ve professionally tutored calculus, logic, statistics, accounting, and economics to tens of thousands of students over the last twenty years. I know what it takes for people to learn challenging content.

No matter what it is, you can’t get there without struggle.

It’s very tempting to watch tutorial after tutorial and read book after book. It lets you passively enjoy the hard-won expertise of others, vicariously basking in the fruits of their excellence.

And like a miracle, some of that genius does indeed transfer over to you through osmosis! So don’t get me wrong — it’s not bad to study. It’s incredibly important for learning. Most people need to do at least double or triple the studying they initially think they’ll need to. Lectures and books are vital to the learning process.

But these tools are incomplete on their own.

You’re never going to become proficient by only watching other people do stuff.

Top swimmers watch videos of themselves and their competitors, examining every movement with a fine-tooth comb. But you’re not going to become an Olympic swimmer just by watching videos. I mean, it’s obvious that you’re not, right? You can’t get there without ever jumping into a cold pool and directly putting your body through exhaustion.

You’ve got to go through the discomfort. There’s no way around it, other than getting the reps in.

In precisely the same way, you’ll never be a programmer until you make the leap and get those error messages for yourself. You’ve got to put your mind through the frustration and make those neurons reach for it.

To become an expert at anything, you must push past your comfort zone. You’ve got to make mistakes.

So that’s the big reason why most self-taught programmers don’t succeed. They don’t continually break out of their comfort zone to face progressively harder challenges.

Growth Mindset

For some people, making mistakes and getting things wrong is very painful.

But it doesn’t have to be like that.

“People are not disturbed by things, but by the view they take of them.” — Epictetus

If you find that you have a negative, critical voice in your head intruding with self-talk like “I’m no good at this, I’m not someone who will ever get this,” whenever you don’t understand something, then you’re certainly not alone. Almost every algebra student I meet thinks the same way.

You can’t snap your fingers and make that voice go away, but you can nudge yourself towards a subtle shift that has a big payoff. Instead of being harsh, say to yourself whenever you mess up: “right now this is the worst I’m ever going to be at this. As I keep practicing, I’m going to continually get better and better.”

This approach doesn’t just make mistakes bearable. It turns your whole life into an epic role-playing game where you’re constantly leveling up your skills and feeling the excitement of growth.

Motivation

A lot of people try to learn programming because they know it pays well, but money as a motivator tends to create a mirage that you never reach.

It can pique interest in the short term, but if money is your only motivation, then unfortunately you’ll probably never get to riches because you’ll give up too soon.

After all, there are always “easier” ways to make money. Without a solid “why”, you’ll switch to something “easier” without putting in enough time to get over the substantial learning curve and gain the deep skills that are highly valuable.

Instead of doing it for the money, I’d suggest figuring out what’s important to you and deciding if programming is really a useful skill for accomplishing it. Programming is such a versatile skill that maybe this isn’t a totally fair approach, but at any rate, decide on one problem that you really care about. Figure out what you’ll need to learn. Visualize who you’ll need to transform into in order to solve it. And then all you have to do is execute.

If that’s still tough, you need to know your “why”.

Your core purpose.

Whatever skill you plan to learn (not just programming) it should always be in alignment with your purpose. Otherwise, why are you using your scarce time to learn it?

Resources

I started learning Python by watching many hours of tutorials. But after that, I still struggled with even the most basic exercises.

That didn’t really surprise me, because as I said earlier, there’s just no substitute for rolling up your sleeves and doing the thing. When you do, expect it to be tough.

By far the most rapid and enjoyable progress I’ve made has been with a free platform called Codingame.

There’s so many things that make this site great, but here are a few.

  • Gamified structure turns frustrating problems into fun puzzles and exciting competitions
  • Every attempt can only help you to gain levels and advance in rank. There’s no penalties for trying new things
  • In Clash of Code mode, you’re able to see the code of the people who beat you (if they choose to share it, which they usually do). This probably helped me accelerate my learning more than anything else.
  • It’s funded by recruiters. Codingame trains you at whatever pace you want to go at, and then delivers a list of its best programmers to the recruiters at the very same tech firms that you’re trying to compete for a job at. The site gets paid not by ads (there are none) but by making it easier for employers to find good candidates who want to be found.
  • The games are all community generated and curated. There’s some incredibly good programmers on the site, and they generously create and moderate the content for everyone else.

“If you want to go fast, go alone. If you want to go far, go together. — African Proverb”

A few more great sites to check out:

freeCodeCamp.org

LeetCode

GitHub

Stack Overflow

While you can learn alone, great mentors put you on a much faster track and dramatically increase your odds of success.

Andy Sterkowitz, who went from working at Starbucks to becoming a successful software developer, is a great example of the kind of mentor I find helpful. His video below is what inspired me to write this article, so check it out!

Thank you for sharing this article with anyone you think might enjoy it! You can join my email list here and for the cost of a cup of coffee each month, you can get unlimited access to Medium by subscribing here.

Coding
Python
Growth Mindset
Learning To Code
Failure
Recommended from ReadMedium