How do you decide to learn a new
language?
I decide to use a new language if
- I have to for work
- If I have to for a personal project
- If I think it will benefit me, eg by learning its features and language concepts it'll sharpen my senses in other languages. Great example is learning Scheme/LISP, which will improve your programming in general.
How do you begin it?
After browsing Amazon and free programming book lists, I usually go for the highest rated books which are the most modern. Usually the highest rated books are ones written by very skilled programmers ( ex: John Resig ).
I can usually skim past the if
while
for
descriptions, but it's important to pay attention while you skim because there may be inconsistencies in the subtle behaviours of these common statements between languages.
Great example would be that a for
loop in ECMAScript/Javascript should be used for list traversing and not enumerating through an object, which for..in
is more proper for. There's also the Array.prototype.forEach
and for each
. This would be confusing if one is coming from say, PHP.
If you work with a lot of languages, an important thing to note is that what really matters is nailing the concepts and theories down, not so much memorizing intricate details because you can always look them up. "Never memorize something you can look up" - Einstein.
How do you find out about languages?
As for finding out about a language, I usually have a general idea of languages and their purposes by sticking around on Stackoverflow and seeing others questions and answers. The more time you spend in IT the more you'll know about the various languages there are.
Wiki is a great resource. I also usually communicate with other developers through irc, so I'll ask friends of mine who are more experienced programmers which would be a good language for whatever project I need to work on. One channel I stick around on is irc://irc.freenode.net/#inimino where a couple of programmers including myself hangout, discuss programming topics, etc.