Can I learn programming if I’m stupid?

I thought this was a really powerful question that I found online. Maybe because I’m able to relate to it so much. I share with you a couple personal stories in this episode from a time when I was firmly in the “stupid” category myself. In many ways, I’m still there. We all are.

If there’s one thing you need to understand, it’s that there’ll always be somebody smarter or better than us. If you’re the type of person who takes everything to its logical final result, then you might ask, “Okay, but what about the last person who’s better than everybody else? Surely at least somebody is better, right?”

My answer is first to consider best at what? We’re all good at some things and not so good at others. And this changes over time. It’s very likely that one person might be better than you at one thing while you’re better than that person at something else. I’ve mentioned before about how engineering is about tradeoffs. Well, it applies here too.

Another thing to consider is history. Maybe you are the best in the world at some task. But that title is only good right now. Maybe there used to be somebody who already died that was better. And there will definitely be somebody yet to be born who will be better than you in the future. Don’t worry about it. The only reliable measure you can use to determine how good you are is if you’re better today than you were yesterday.

It’s all about making steady and consistent progress. If you enjoy programming and you’re getting better, then yes, you can learn programming. Listen to the full episode or you can also read the full transcript below.


Okay on to the question this week. I’ve been answering questions online recently and came across this question. I’m not trying to be mean to ask the question like this. This is how it was asked and I thought it was a very powerful question.

First let me say that there will always be somebody smarter or better than you or me. So don’t get trapped in a thought process that’s getting you down. The only thing we should compare ourselves with is how much we’ve grown since the day before.

Learning programming is fun for a lot of reasons and for a lot of people. It takes a lot of time too. So if you’re not having fun with it, then the first thing to consider is if you’re approaching the task in the right way. If you’ve tried everything and never want to look at another line of code again, that’s okay. Go do something that you do enjoy. Whatever you really enjoy, is what you’re going to want to spend time doing. And that’s what you’ll eventually get good at.

Before we get too far, let me ask you a question. What makes you think that you’re stupid? For many of us, this can come about through constant negative feedback when we were little. Comments like, “That’s dumb,” “What are you stupid, or something,” can really sting and scar any of us for a long time. You know what, I’ve done some really stupid things in my life too. Things that even a 2 year old probably would’ve done better. I don’t dwell on them though. Let me share a couple with you.

I remember 5th grade and our multiplication tests. We had, I don’t know, maybe a minute to answer a page full of simple multiplication facts. At the end of one test, my teacher asked me why I had skipped every single multiplication involving zero. I was embarrassed and told her it was because I was saving them for the end. When really, I had no idea what it meant to multiply by zero. It was like my mind refused to acknowledge those operations. And the really bizarre thing about all this was that I had just been moved into the gifted class. And do you know why I was moved to this new class and even this new school? Yes, they sent me for some tests one day and within a week pulled me from my old comfortable school and put me on several busses that I had to switch in order to go to a new school in a different town.

They did this because I was in the dummy math class at my old school and showed my teacher something she could not believe. Just a couple months prior to that in the summer, I found a slide rule in a drug store and asked my grandpa to buy it for me. Drug stores don’t sell slide rules anymore and if I’d been born a few years later, I’d probably have never left that dummy math class. You see, I played with that slide rule and figured things out on my own that for the first time, actually made sense to me.

Anyway, I started bringing the slide rule with me everywhere I went even to my old math class. One day my teacher noticed me using it and asked me what I was doing. I’ll tell you what. I started explaining math concepts to her that she had never heard of. My mind had woken up. That doesn’t mean there weren’t still a few cobwebs though. How could I understand concepts only taught in college yet still have no idea how to multiply five times zero?

I have another story to share with you right after this message from our sponsor.

( Message from Sponsor )

Fast forward a year later and I was in 6th grade when my parents decided to fix the lawn and plant new grass seed. We had a large yard of about an acre and it was all bare dirt full of grass seed. I used to arrive home before my parents and would let myself in, fix a snack, and usually watch some cartoons. I was a weird kid fascinated by the strangest of things. I remember one of my favorite things to do was sit in an old chair with varnished wooden chair arms and see how long it would take for my arms to stick to the varnish if I didn’t move. The imprint of my skin in the varnish was amazing to me. Well, one day, there was some birthday party I wanted to go to for one of my classmates but when I got home, there was a note that said I was supposed to water the grass before I would be allowed to go to the party.

So I went outside and looked at the huge yard. It was all dry. No wonder my parents wanted it watered. I hooked up the garden hose and dragged the hose all the way to one corner of the yard and proceeded to water the yard. I found that I couldn’t turn the water on all the way or it was too forceful coming out of the end of the hose and was blasting the seeds all over instead of watering them. We didn’t have one of those fancy nozzles to screw onto the end of the hose. I was working with just a hose with water pouring out the end.

I really wanted to go to the birthday party and worked hard to make sure I didn’t miss any spot. It was easy to tell because the dirt turned dark brown when it got wet. I probably worked at least two hours before one of my parents finally came home. I don’t even remember who it was anymore. All I remember was the anger and rage. I was called some very mean things that day and my intelligence was compared to all sorts of inanimate objects. You see, nobody showed me how to put my thumb over the end of the hose to cause the water to spray over more ground. I was letting the water pour out of the hose and trying my best to not disturb the seed. In the two hours I’d been watering the yard, I’d barely covered an area the size of my bedroom.

What my parents missed was my focus. They just saw the lack of progress and my method and called me stupid. Among other things. They didn’t know and probably wouldn’t have understood anyway if I had explained that I had been so caught up in the patterns that the water was making in the dirt, in wondering why the color would change because it was wet, and watching how the seeds reacted to the water to pay any attention to the lack of progress. To me, I was doing a boring task yet filling my mind with wonder at the same time.

Back to the question. Can I learn to program if I’m stupid? Yes, I can. And I did.