In a 1995 interview Steve Jobs said he thought that computer programming should be a liberal art. In other words, he thought everyone’s education should include a year of learning a computer language, because it teaches you how to think in a certain way. If that was true in 1995, just think how much more crucial knowing how to code in some language is today. Perhaps learning a computer language should be on your to-do list; maybe a new year’s resolution?
If you want to learn a computer language a logical question would be which one to learn?
Right now there are 3 languages I’m interested in. These are R, Python, and Javascript. All of these are useful in scientific and data analysis. I’ve written about R a couple of times and we’ve had guests on the show that are serious Python programmers. Javascript really is one of the main languages of the internet and if you are interested in communicating your projects and results via the web (and who isn’t) javascript (especially the new-ish D3 library) should be on you list of languages to consider. But really, it isn’t all that important which language you learn as long as you learn a language. I’m an advocate for open source languages, but really you should pick something that you’re likely to use. If you’ve got friends or colleagues that use a certain language, pick that one up.
There are a multitude of ways to learn languages, but interaction is required. So if you start with a book or an online course (like coursera) you have to work the exercises (problem sets, whatever). Coding is hard, you have to beat your head against a problem for a long time to get a eureka moment that will let you move on. You have to do this again and again.
One good way to get started is Code Academy. They have courses in Javascript and a relatively new course in Python. If R is the language you’re interested in there is a similar style course at Code School (Try R). Or I’ve had lots of good success with this book, A First Course in Statistical Programming with R, so I’ll plug it again here.
These courses/books will get you started but really to learn a language, you have to solve your own problems with it. This requires a lot of staring at your screen, googling, and time on stackoverflow. But in the end you gain a powerful tool and a marketable skill, and — if Steve Jobs is right — a new way of thinking, solving problems, and seeing the world. Definitely a new year’s resolution worth pursuing.