views:

50

answers:

3

This is a poll.

How did you decide to learn a new language? I have always been in a situation which required me to use a particular language and that's how I got introduced to the language I now code in.

Secondly, whenever I start with a new language I get stuck with a slow introduction to if, while, for et al. in the beginning. It is stuff which seems to be designed keeping in mind people who are not familiar with programming at all. I'm sure there must be an alternative way for people with whom that is not the case. I just don't what that is. Hence, how do you begin learning a new language?

A: 

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.

meder
IRC sounds a good idea to discover new languages. And using the language best suited for a project might cause me to invest more time initially but will pay-off in the long run.
Ashish
+1  A: 

Pick an example program and code it. It could be a simple address book, perhaps a database access program or even a file searcher - whatever takes your fancy - even better if you have written something like that before as you have a set of requirements already. Then make it better until you feel you've learned enough.

Preet Sangha
A: 

Learning new language is not a big deal, but to implement or think about the logic is more important. I agree with @PreetSangha, you know, you should assign a small project for yourself and keep implementing it in the language you want, and try to implement all the new features,technology like database connectivity,LINQ,Webservices etc..and last but not the least is to read question & answer in Stackoverflow..

FosterZ
Going through StackOverflow question seems a good idea. Along with direct coding and syntax lookup, of course.
Ashish