Learning new programming language
This was my reply to a question posted on StackOverflow about learning new languages. You can find the question and more discussion at
http://stackoverflow.com/questions/1041687/learning-a-language-while-on-a-project
I would like to mention ALT.NET here
Self-organizing, ad-hoc community of developers bound by a desire to improve ourselves, challenge assumptions, and help each other pursue excellence in the practice of software development.
So in the spirit of ALT.NET, it is challenging but useful to reach out of your comfort zone to learn new languages. Some things that really helped me are as follows:
- Understand the history behind a language or script. Knowing evolution helps a lot.
- Pick the right book. Research StackOverflow and Amazon.com to find the right book to help you ease the growing pains.
- OOP is fairly common in most of the mature languages, so you can skip many of the chapters related to OOP in many books. Syntax learning will be a gradual process. I commonly bookmark some quick handy guides for that.
- Read as many community forums as possible to understand the common pitfalls of the new language.
- Attend some local meetups to interact with the community and share your pains.
- Take one pitch at a time by building small not so complicated applications and thereby gaining momentum.
- Make sure you create a reference frame for what you need to learn. Things like how security, logging, multithreading are handled.
- Be Open minded, you can be critical, but if you hate something then do not learn that language.
Finally, I think it is worthwhile to learn one strong languages like C# or Java, one functional language and one scripting language like ruby or python.
These things helped me tremendously and I think it will help all software engineers and architects to really gear for any development environment.
