github twitter linkedin email
How Do Experienced Developers Learn New Programming Languages
Feb 4, 2023
3 minutes read

How do experienced programmers learn a new programming language?

I recently read through [1] - Here we go again: why is it difficult for developers to learn another programming language?. In this paper, they interviewed a large sample size of experienced developers and asked them various questions about how they learn a new programming language. Some of the takeaways and trends were pretty interesting (in bold below).

  1. Programmers learned languages on their own
  • Yeah, once you graduate university, chances are you won’t ever take a class to learn a new programming language again. Any time I want to learn a new language, I try to go through the basic playgrounds and use it. I try to identify concepts that are fundamentally different in this language compared to other languages I’ve used in the past, so I can restructure my thought process when using the language. Books and documentation can help you prioritize education for certain aspects of a programming language.
  1. Just-in-time learning is a dominant strategy
  • Experienced developers tend to be naturally older and I think this boils down to prioritization. Once you’ve experienced 10 languages, it doesn’t feel like investing a ton of energy into a new shiny thing will be as worthwhile when you’re far along in your career. Over time, shiny things lose their glamor. These folks will tend to be technical leaders and have many other responsibilities beyond learning a new language and writing code in it, meaning they usually get even less time to play and experiment in their day-to-day jobs.
  1. Learning a language is difficult when there is little to no mapping with previous languages
  • Absolutely. Jumping from a language like Java or C# to Haskell is extremely difficult. You have to be careful to not fall into traps using your past knowledge. Learning to unlearn is a skill.
  1. Mindshifts are required when switching paradigms
  • Same as the above point really.
  1. Searching for the right terminology and code examples is difficult
  • For new or esoteric languages that’s generally true, but I’m a bit surprised by this one. If you’re learning a new language at a job, chances are the language is well-known, well-document, and well-supported. Are you experimenting in production and likely making the technology less maintainable for the business long-term? :)
  1. Retooling is a necessary and challenging first step
  • Yeah, being efficient in a particular IDE is one of the things that make a standout developer in terms of throughput. It takes a lot of time to relearn all the keybinds across different IDEs, and that’s why a lot of folks stick with vim or emacs for a lot of their code development through the years.

Citations





Back to posts