I wrote my first computer program sometime in the summer of 1983 after coming home from the movies with my cousins. The movie we saw that summer day was War Games starring Matthew Broderick and Ally Sheedy. When we arrived back at my cousin’s house, he introduced me to BASIC programming on his Timex Sinclair computer. I was hooked from the start. I had just turned 11 years old.
I have now been writing code professionally for twenty years, and as hobbiest for nearly thirty years. If there was one skill that I had to shine a spotlight on as far as having a truly significant impact on my life and career, it is being able to write computer programs, or, as we call it today, “coding.” Furthermore, if there is a skill you are looking to learn, regardless of age or experience, coding is probably one of the most useful and rewarding you can learn. This may seem like hyperbole, but I believe it, based on my own experience, for several reasons:
1. Writing code teaches a compactness of thought. It’s like putting together a puzzle that does more than just display a pretty picture at the end. Solving problems with code gets you thinking about those problems in new and different ways, and this oftens allows you to take complex issues and break them into their simplest component. I’ve taken many insights from these exercises that I probably would have never gotten had I not thought of them in this unique way.
2. Writing code gives you control over your data. Data ownership is a big issue these days, and we produce more and more data every day. It’s great to have the data, but it is even better to be able to do whatever you want with the data, without having to rely on the limits of commercial software. Without the ability to write code, for instance, I’d never have been able to gain the insights I’ve taken from the personal analytics data that I collect, be it data about my writing, physical activity, sleep, reading, or other parts of my life. The insights I’ve gained have been invaluable in helping me try to better myself. While some of this might have been possible without knowing how to write code, it would certainly have not been as easy to achieve.
3. Writing code frees you from the shackles or limits of commercial software. Don’t get me wrong, commercial software can be write and there is plenty of it that I use. But where commercial software has limits, the ability to write code allows you to extend beyond those limits. My Google Writer Tracker scripts are one example of this, but there are many others. This is important because we all work in our own unique way, and the ability to write code allows us to tweak the way we do things to fit our own needs, rather than the other way around.
4. Writing code allows you to automate processes that you’d otherwise do manually. One of the best things about computers is that they can do things faster than we can, and do them over and over again. I have probably saved hours in my day by delegating repetitive tasks that I used to do manually to automated programs. The result is that the tasks get done correctly every time (assuming the code is right), and I have extra time in my day to pursue other interests. This kind of automation is also useful in the job market.
As my kids grow up, we’ve introduced them to computers and technology devices for the usual things, like games and watching their favorite shows. But as they get older, you can be sure that in addition to teaching both of them things like how to change a tire, in addition to encouraging them to read and write for pleasure, I will also teach them how to code, why coding is so useful, and what benefits they can reap from learning to write code in a variety of programming languages.
Learning to write code is not hard, and you don’t have to be a kid to get started. If you’ve ever wanted to learn a new skill that will be fun and useful, consider learning to write code. There are plenty of places to get started beginning first and foremost with Code Academy.
The best tip I can give you to get started, is go in with a practical goal in mind. In the early part of my career, I learned one programming language by trying to automate a budgeting process. Not very exciting, but I did have a practical end in mind. When I wanted to learn the Mathematica language (now called the Wolfram Language), I did so by trying to write a baseball game simulator, which might not be as practical, but it was a lot of fun. Think of some problem you are trying to solve, or something you want to automate, and learn the parts of the language you need to do those things. You can explore beyond those horizons as needed.
I’m occasionally asked what programming language to start with. The answer really depends on what you are trying to do or what you are trying to learn. But I think, today, you can do worse than to start with a language like Python, a cross-platform procedural language that can be used for all kinds of things. The language has a simplicity to it that, when compared to other languages, is a breath of fresh air. If you are on a Mac or Linux machine, the language is already installed. If you are a Windows users, you’ll have to install Python, but it isn’t that hard to do.