I love computer programming so much that I consider it a life skill such as swimming or riding a bicycle. The main reason why I wanted to get into programming when I was a kid was because it was the first step to becoming a game developer. I did not turn out to be a game developer (yet?), but I don’t regret at all the many hours I’ve spent in front of the computer screen hacking away at my pet projects. Now that I’ve spent some years at this hobby, I now realize how lucky I am to have the amount of knowledge about computers and programming languages.
If you are able to read this post, you are very lucky, because it means that you are able to read English. English is the primary script used to write most programming languages today. And many quality books on programming and computer science are written natively in English.1
Programming is the art of telling computers exactly what to do. But the complexity of the code you write is, by definition, only as complex as you can comprehend it enough to write it in the first place. That is, programming is akin to laying down a sequence of thoughts in your head, and then translating it to a language that the machine can understand. In other words, programming is the art of creating copies of yourself to perform some arbitrary mental task. Isn’t that cool?
Reasons Why You Should Learn to Program
- It is entirely a mental effort. All you have to do is think.
- Because it only involves thinking (and some typing), you can do it well into your later years past retirement age. Few hobbies can be actively practiced like this.
- You only need a computer and an internet connection to learn programming, or to find resources later on to help you write the code you need.
- Programming is good for your brain because you have to brainstorm and concentrate to get anything done.
Things to Help Your Journey
- UNIX environment. E.g., any modern, popular Linux distribution. Why? Because you get a truckload of state-of-the-art programming tools for free with zero-effort installs. Some keywords for you here are: ruby, python, perl, gcc, gdb, clang, valgrind, ghci, vim, and emacs.
- Text editor. Vim and Emacs are both good choices; I suggest learning both. I have my configuration set up so that Emacs behaves almost exactly like Vim, because Vim was my first foray into serious text editing.
Donald Knuth’s The Art of Computer Programming is the standard reference for computer scientists/programmers.↩︎