A piece of advise that is often given to developers who want to keep improving, is to learn a new programming language every year. I mostly think it holds true if you try to learn a new paradigme – because just learning new syntax won’t really get you anywhere.
Koans
One way of learning a new language is of course to buy a book or two, and start reading and doing some samples and small applications. Another way of going about it is to try some of the koans, interactive interpreters and introductory guides that can be found online.
For those of you who dont know what a koan is, it comes from the lore of Zen Buddhism where a koan is a question that cannot be understood by rational thinking. This question is used during meditation to keep the focus of the mind. It is then the task of the student to get meaning from the koan. For instance a widely known koan is "Two hands clap and there is a sound; what is the sound of one hand?".
In software development, the term is used as a teaching tool made up of a bundle of failing unittests. It is then the task of the student to rewrite them so they make sense – which in turn teaches the student about the language.
One of the most popular is the Ruby Koans which provide a fun and effective way of learning Ruby. However there are also koans for JavaScript and for .NET. JavaScript tends to be a lauguage that a lot of developers have used, but they done really know it too well. So maybe there is something to learn even if you have done some basic validation and fiddled around with JQuery?
Try interactive interpreters
Another easy and free way to get to play with a language is to try out some of the interactive interpreters that are available. The first interpreter I tried myself was TryPython, which provides some samples that you can copy to the interpreter by pressing a button. Especially dynamic languages often have available interpreters, since interpreting the code dynamically is a natural part of the languages. TryRuby gives you a quick 15 minute introduction to Ruby – which is just enough to get a glimpse and possibly get you interested. Lastly Microsoft just released TryF# which is a fairly comprehensive tutorial that also allows you to copy and run code.
Even more advanced is Rails for Zombies, which is free and available through Code School – along with other courses that you have to pay for. Rails for Zombies consists of 5 videos that are each followed by some exercises in an interactive interpreter. I just did the Rails for Zombies tutorial myself, and I was really impressed with the material. The course is pretty easy, but it was a lot of fun, so I recommend it highly if you wish to learn some RoR basics.
Learning on the go
As the saying goes “Nothing is a waste of time if you use the experience wisely”. On that note most people spend quite a bit of their time travelling between work, friends, family and their home. One way of getting the most out of your time is to listen to podcasts while you are on the ferry, train, bus or just walking around. If you are using an IPod or have a smartphone, you are probably already listening to music on the go – so why not use some of that time on keeping up to date? *Cough cough* this is why I wrote Blue Orb Player for Windows Phone 7 – because I had the need myself. Selfpromotion aside, using any kind of player to listen to podcasts is a good way of learning, without having to dedicate extra time for it.