Am I Too Old to Learn Programming?

I have no idea how old you, the reader, are but that's irrelevant. No, you are not too old to learn programming. If you wonder if you are too old to become a professional software developer and are under the age of 50, the answer is still no. (And even above that age, the answer is merely "probably".)

But you might feel too old, or at least feel forever crippled because you didn't start coding the instant you developed fine motor skills. But I still assure you: You are not too old to learn programming.

"Software development, like professional sports, has a way of making thirty-year old men feel decrepit.

-Neal Stephenson, "Snow Crash"

I have a two stories to tell. The first involves me in high school. I was a nerdy teenager who wanted to become a "leet" computer hacker. I had rudimentary knowledge of Qbasic. I had started to make some GUI programs with my pirated copy of Visual Basic 4. I heard of 2600 magazine ("The Hacker Quarterly") and started going to the meetings on the first Friday of the month at the mall.

The first time I went, I felt like everyone was smarter and more knowledgeable than I was (and they were). I resolved to hit the books and study continuously so that for the next month's meeting, I wouldn't feel like such a noob.

This feeling did not go away by the next month's 2600 meeting.

This feeling did not go away for the next several dozen 2600 meetings.

Half the days I wake up, I still feel shockingly unprepared and ignorant about the skills that I am paid a salary for. That feeling is perfectly normal. Everyone in the universe has that.

Computing is a field that is effectively infinite. It is easy to despair that you will never reach the horizon no matter how long you travel but realize that this feeling like you're a clueless idiot, to a certain extent, is O-K. And don't forget about the many miles you can accomplish.

The second story is about how I first learned programming. I was one of those people who started learning programming in the third grade. My friend had found Fred D'Ignazio's book, "Invent Your Own Computer Games" at the school library, and this was the book that taught me programming in BASIC by making small games. I was already addicted to Nintendo, and immediately took a liking to programming and began to make a few of my own games.

Here's the thing though. Most of the games I made were just slight variations of games that I had already seen in D'Ignazio's book. And I never was able to wrap my head around the Tic Tac Toe AI he presented in that book. My programming aptitude for the next several years didn't really improve all that much. It was a fun hobby and maybe it did give me a slight edge, but looking back on it now I can't help but think, "You've been programming since you were 9? So what? All your programs back then probably sucked."

Mine sure did. The reason I wrote "Invent Your Own Computer Games with Python" was because there were so many different advanced concepts I would have been fully capable of learning, but I just didn't have access to approachable resources. I didn't even know what to look for. At this point though, the amount of programming knowledge I gained between the ages of 9 and 18 could be obtained by anyone with an internet connection who committed to study a couple hours a day for three or four months. Or even shorter if you find programming to be fun, because it's easy to kill a dozen hours coding on a weekend.

Those years of "programming since I was 9" didn't really matter that much in the long run. What difference it did have was it showed me that programming wasn't an impossible skill to acquire.

The reasons I market "Invent with Python" as a book for kids is because 1) kids, in fact, can learn programming and 2) so adults will think its possible for them to learn. There's a large mystique around software development that repels a lot of people who don't think they're qualified since they aren't silicon valley geniuses or because they say "oh, I'm not really good at math". The largest hurdle to programming that I've encountered in people isn't intellectual so much as psychological.

Learning to code is much like learning to play a musical instrument. Yes, it does take hours and hours of concerted practice. But even if you don't do it professionally, it's still fun and enriching. It helps to be Mozart and start at the age of five with a pushy composer father, but it is far from necessary. By the time you reach my level of experience and knowledge, you will realize how silly the "am I too old?" question is.

17 thoughts on “Am I Too Old to Learn Programming?”

I actually just found this website after doing a search for 'recursive fill' in Python and finding your article on the subject, which was outstanding by the way. I wanted to thank you for this post though. I'm 33yo and back in school for the second time. I decided that I wanted a new challenge and career, and since I have a decent aptitude for technical subjects and an obsession for all things computerized, I figured what better than a degree in computer science. Unfortunately though, I've been feeling especially discouraged lately as it's been a real struggle for me to keep up in class and with these 18yo kids who probably already have a decade of experience under their belts. It's certainly not easy, and overwhelming would be an understatement at times, but I really do enjoy muddling my way through these trivial little programs that we code for class. Anyways, I just wanted to say that I appreciate your encouragement as it's very easy to get down on myself when I'm struggling.

Hello!
I'm learning python at Coursera's "An Introduction to Interactive Programming in Python", and while searching for python and game development I came across your books. Anyway..
I just want to ask if you are planing to make a third book about 3D games in the future. Are you?

Reply from Al: Hey Tessiof, after the cryptography book I'm currently working on, I plan on doing a book for Java or Scratch, and perhaps making a MMO 2D Zelda-clone. I don't have any plans to do 3D. I have played around with Ogre, which seems to be pretty good for doing 3D with Python. http://www.ogre3d.org/tikiwiki/PyOgre

Al,
This is Rian. I am really glad to hear that you will be writing a book on Java. It is taught in our University-BRACU in Dhaka. But Java is quite a pain for me honestly speaking. I tried the book you recommended in this case but it was not quite fruitful. I would be really glad if you write a book on programming in Java as you did in python. Thanks for writing those awesome books . Please leave a reply and by the way,

I am 57 years old and learning Python to finally implement some programming ideas that have been hanging in my head for years. I was curious if you might try writing a book on Python and the 3d graphics program Blender (which I am learning, as well).

Nice article. I took up Programming at the age of 41 (last year) just because I wanted to learn. I've learned several languages, although I'm not an expert in any of them. I consider Python my favorite, and also the one I'm the best at. Your book helped me tremendously learning Python, so I thank you!

I'd love to see you do a book (Python) that focuses on small programs/projects that do a little something useful. I can't think of any examples, and that's exactly why I want you to write it, lol! Say a little program that writes data to files, for instance. Just something simple and slightly useful, written in Python. Games are great, I love 'em, but I'm not interested in making them. . .Thanks again for the help and the book!

Nice. I fully support anything that can be done to crush the notion that learning requires anything other than effort. Love your blog. Such a great matter of fact, supportive site. I keep finding links to it all over the place so that has to be good.

40 years old here. I originally began looking into Python to build tools to help me with my work. I found the traditional learning path/process VERY dry and had a difficult time absorbing the material. Your books, tutorials, code examples and blog have been an inspiration. I've moved beyond string manipulation and utilities for work and into more enjoyable subjects. In addition, my son is a CS student in college and we've found another topic to bond over. I can't thank you enough, your efforts have helped me professionally and personally.

I'm 48, and took a Pascal classes ages ago as a (liberal arts) undergraduate. I've been thinking about making some games with Python, but was worried that I was just too old... So, Thank You! for your blog :-))

I'm too old to get a job as a programmer, so I thought there was no point in learning programming. I'm 56, female, and a bit math phobic. I've been interested in programming since before I knew what it actually was. I've never gotten past anything but the most rudimentary equations in beginning algebra despite remedial college courses, but when I learned that I could still learn to write code despite my limited algebra, I decided to try Python. I'm fully aware that a 56 year old woman cannot break into a young, male-dominated field. There may be one or two very talented exceptions to this rule, but this would be rare. I've decided to learn Python for my own benefit. I've been taking a free Udacity course online for programming and so far, I haven't reached any math stumbling blocks.

You're never too old to learn anything. But too old to become good at something is another question that most people don't want to hear the harsh truth. The older you are the harder it is to pick up new skills and materials. So the best method is probably to do it for your own enjoyment, rather than comparing your progress with the 18 20 something who's been playing around with programming since they were 10, because, quite frankly, you'll most likely lose that battle.