In the third grade, a friend showed me a book he found in the school library on making small games in the BASIC programming language. I was obsessed with Nintendo and got hooked on the idea of creating my own video games. I began programming and stuck with it, majored in computer science, and afterward became a software developer and tech book author.

My story reinforces a common and misleading notion about what it takes to become a programmer. You've heard it before: the smart kid who learned to program before they could walk and goes to write an app that makes them a dotcom millionaire. Or the prodigy with mediocre grades because they spent their hours on a Nostalgia-Whatever-64 PC and skipped university to go directly into industry. These geeks-who-inherit-the-earth stories of tech millionaires and billionaires can be found all over pop culture.

On the surface, my story sounds a lot like that. These accounts make it seem like if you didn't start early, didn't complete your 10,000 hours of practice by the start of adulthood, and didn't major in computer science (or drop out to found a startup), you will always be at most a mediocre software developer. I see this in the perennial "am I too old to learn to program?" posts on coding forums I browse. The answer is of course "No," especially when it comes from the anxious posters who admit they are already (gasp!) 24 years old. The folly of this worry was perfectly captured by one satirical post: "I am already a zygote. Is it too late to start a career in programming?"

I can say with authority that this worry—and the pedestal we place young programming prodigies on—is nonsense, because I know the truth of my own programming journey. I may have started in elementary school, but the fact is my programs hardly developed in sophistication over the next nine years until I graduated high school. Mostly this was due to Web 1.0 times: There was no Wikipedia, StackOverflow, or Creative Commons-licensed books available. I had a nice head start, but it doesn't count for much compared with today's resources.

Weekend learning

Everything I learned about programming in the nine years after the third grade can be learned by anyone with a dozen or so free weekends. When I hear someone casually brag that they have been coding since grade school, my eyebrows give a skeptical furrow instead of an impressed raise.

That a third grader can program is impressive, but the programs I wrote certainly weren't. They were mostly variations of the guess-the-number type of games that I copied from that first school library book. When I come across "12 Whiz Kid App Developers" or "8 Teen Techies to Watch" listicles, I've learned to take a closer look. The software produced by these young people rarely lives up to the hype. Luck plays a huge factor in their stories: They had the right idea for a simple app at the right time that captured the spotlight before fading, like the Flappy Bird fad.

Which isn’t to disparage their abilities: they still had to program the software. But I want to deflate the idea that young prodigies commonly produce software at the same level of experienced engineering teams. Not all kids will publish apps, but that doesn't mean that not all kids are capable of it. The most valuable thing I learned as a kid was that programming wasn't an impossible, cryptic skill to acquire. The reason I could learn programming as a child was because I didn't know it was supposed to be too difficult for children. Unfortunately, many adults have managed to convince themselves that programming is too difficult for adults who didn't start learning as toddlers.

Unlocking potential

This is a misconception I want to eliminate, because computers have great potential unlocked with coding ability. I wrote Automate the Boring Stuff with Python not only for complete beginners, but also for those who don't necessarily want to become software engineers. There are plenty of ways programming ability can boost productivity in other professions and for home hobbyists. The book is released under an open Creative Commons license: Anyone can read the full text online. Rather than learning to code for the sake of learning, the book focuses on automating practical tasks that computer users previously had to complete with a lot of tiring typing and clicking—the sorts of tedious tasks that programming can complete for you if you don't have an intern to do them (or if you are the intern tasked with them).

Computers have become central to daily life. If you spent every day in chat rooms with your friends 20 years ago, you were a nerd. Today if you do the same thing, you're just the average Facebook user. Not everyone has to become a software engineer, but coding ability is becoming more relevant. And with that, a lot of people are anxious that it's too late for them to climb on board.

One unintuitive and underappreciated fact is that even though computers have become more powerful, sophisticated, and complex, learning to program has become easier. Vastly easier. Modern programming languages manage away a lot of the tedious technical details. A computer science degree helps, but is by no means a necessity for writing simple apps or small time-saving scripts. The Internet has a wealth of tutorials, all of which are easier to find now than in pre-Google days.

So if you've been interested in learning to code, but intimidated by the brain-science, rocket-surgery reputation of programming, worry not. You are not too old to learn to program.

Topics

About the author

Al Sweigart - Al Sweigart is a software developer and tech book author in San Francisco. He has written several Python books, which are available under a Creative Commons license at https://inventwithpython.com

6 Comments

Very interesting story. It is never too late to learn to code - or anything else.

Although I started programming in my 20's - about 45 years ago - most of it has been for my own use such as task automation. And just because. I have done everything from assembler to BASIC, C, BASH, and more. I still code for fun.

I have a true story about a guy named Charley that you might find interesting.

Back in the late '60s I had started working for a chemical company in Toledo, Ohio, to earn money to go back to university. Most of the folks were fun and interesting, but this one guy, Charley, was always very negative. He would always complain about how horrible the work was, about how he hated the company, the type of work we did, and about management.

One day I became rather annoyed at the constant barrage of negativity, so I suggested to him that he might try to find another job. His response was that this was all he knew. So I said to him he might go back to school to learn something else. He responded with, "I'm too old to learn anything new." So I asked him how old he was. He said he was 36.

I decided right then and there that I would never stop learning new things. And I have not. Had I taken his attitude I would never have learned about Linux and Open Source Software.

I'm not sure exactly when I learned to program. I always have said it was when I picked up QBasic on my 486 when I was about 13, but that's really not true because 1) I had messed around with making minor changes to programs on Applesoft BASIC on my Apple IIc many years before that, but probably had no idea that that was "programming" and 2) I'm now 31 and I'm still "learning to program" -- because it's a journey that never really ends.

I took BASIC in high school, and then again in college, but I didn't major in CS. When the web "hit" in 96 I taught myself HTML and later CSS and got decent enough to pick up the odd freelance website design gig. However, I was (and am) a biz dev guy by trade,and what I figured out was that being the biz dev guy that understood the web, and programming, and eventually open source was a great career path. It kept me hands on in technology, even though I never made the leap to full time programmer.

Although I agree you can learn at any age, it does get harder as you get older. After a day at the office, some family time and getting the kids to bed the average 40 something just doesn't have the mental horsepower left to sit down and spend a couple hours learning Python or PHP. Quite frankly, you are tied at that point of the day. All nighters are a young persons game :)

My issue with programming languages is that there are so many to choose from, and when you take a clear glance at the IT industry it's Java or C# (C++ Microsoft languages) that's predominately in use. If your budget is limited, what language do you learn (focus on) in order too even get considered for a job, much less get through the front door of an employer. The typical job postings out there lists every programming/ scripting language, platform, automation, test environment, build, front/backend app, arch.../design specs, m-tier, m1.2 - m1.6, m2 - m5, etc... SERIOUSLY if I had all this experience and knowledge, there's no way I would be sitting at home unemployed. My final gesture; Can a individual actual become a programmer, that could one day be gainfully employed without learning everything there is to learn about programming on the planet first..?

I've been tinkering with programming since junior high. At 47, I agree with the comment about being tired at the end of the day; it's difficult to find the free weekends to binge-learn. However, as an observer I've seen that programming goes in trends. I don't believe the up-and-coming or the perpetually-returning novice programmer has to learn everything there is to learn. You only need to learn about that new tech to find a niche and move toward professional. Once there, it's easier to pick up a little here and there from those other areas. There are lots of people out there that already know more about everything else; can I become one of those few who pick up that new thing and take it places? I hope so – that's my goal.

Footer

The opinions expressed on this website are those of each author, not of the author's employer or of Red Hat.

Opensource.com aspires to publish all content under a Creative Commons license but may not be able to do so in all cases. You are responsible for ensuring that you have the necessary permission to reuse any work on this site. Red Hat and the Red Hat logo are trademarks of Red Hat, Inc., registered in the United States and other countries.