07/08/2023

QM: Why don't I have the patience to learn programming?

Why don't I have the patience to learn programming?

This question is part of the reason.

I’m not suggesting it is your fault. I’m saying that prospective programmers are taught to sabotage themselves, and many quite reasonably decide to give up.

The darker path

No, it's the question itself that's at fault. “Why don't I have the patience [required] to learn programming?”

That question is a trap.

It assumes impatience is the reason we fail. It blames an intrinsic, undefined trait. It comes with its own conclusion (“I don’t have [the innate ability x], therefore I can’t ever learn [the skill y]”). It suggests the issue stems from an intellectual or moral failing.

In short, it’s just not a helpful approach to learning something new. Every time you ask yourself that question, you reinforce the same ideas:

  1. “I should learn ‘programming’.”
  2. “I don’t have what it takes.”
  3. “Learning to program is hard and demanding.”

None of them help. All they do is hold you back.

I know it doesn’t feel that way. Trust me, I know. I’m a C++ programmer with ADHD and apathetic tendencies. I can’t say for sure how you work, I can only infer it from the question itself, but I think I can help.

And I think the best way to help you is by shifting the way you look at programming and learning.

Reframing

Yes, patience helps when you code, coding can be hard, and not everyone is equally gifted at it. None of that stopped me. In the end, none of it will stop you.

“Learning programming,” too, is a passive, empty concept. Make it active and meaningful. You want to read cool books about exciting stuff — you do not want to “learn reading.”

One more thing (and this is important): I’m not saying your attitude is what makes a coder. “Positive thinking,” the idea that imagining it hard enough will make it happen, is harmful bullshit peddled by charlatans. The idea that “if you struggle at it, you’re a failure” is toxic nonsense. Saying you just need the “passion” to “realize your dreams” is crap, too.

The right question

So don’t bother with the question: it has no useful answer. You already have the question you need, which is far simpler: “do I want to make something fun on my computer?”

If the answer is “yes,” then do it.

Have someone install Python on your machine, and teach you how to print something to the screen. Now have the program ask for a name, and print it to the screen. Your name. Run it. See it. You built this.

That’s fun, right? Make the text repeat itself. See if you can get a graphical figure (maybe made from letters) on the screen. Make it move. Play with it.

Build a maze. See what happens. Save all the time. If the program crashes, that’s alright. If something doesn’t work, great! We’re playing. We’re experimenting. We’re discovering new things and making pleasing shapes on the machine.

We hit walls. We trip over details we never noticed. As we do, we learn new patterns and nuances, and deepen our understanding. We’re stretching our ability, getting frustrated, then beating the obstacle, and that feels good.

And then we do it again.

The end note

What you just read is programming. Can you learn that? I think you can. As long as you’re playing around, relaxed, without judgment, programming doesn’t have to be harder than that.

Play. Laugh. Learn. Share it with friends.

Above all, fail and fail often: that’s how you improve.

You’ll get there, and if you don’t, or if it doesn’t happen quickly, or if you feel embarrassed, then remember: it’s not a big deal. It says nothing about your value as a person.

It’s just coding. That’s all it needs to be.