How People Learn Software Languages 28 March, 2014


The idea of a polyglot developer is quickly moving from a state of imagination to a state of reality. I 'm realizing that although there is immense job security for those who know what they are doing in a single language, there are several real benefits to being competent in several languages. 

Some benefits include cross pollinating patterns and faster tool creation. However, I believe the biggest benefit is removing the thought constraints a person can have when they limit themselves to only using one language most of the time.

For many languages, it's not the syntax-sugar a language can have, but their ability to answer questions like "What if I didn't have to...?" or "If I wasn't focused on this area of the problem, would I see a different solution?" 

So, how do you go about being competent in several languages? I recently surveyed a number of software developers, asking them what they prefer to do when learning a new language. This is what I heard.
  1. Always start by coding
  2. When you get stuck, follow an online tutorial
  3. For all the details, read a spec or the official book
  4. To keep it fresh in your memory, submit/merge pull requests in that language

Here are some techniques that were listed by survey responders.
  • Only use what you’re learning (immersion)
  • Start a new project
  • Understand the wrong way to use it
  • Learn it at your own pace
  • Be able to apply each thing you learn
  • Like it
  • Practice it
I wish you the best of luck on your road to polyglot serenity.