Learning a New Language?

Posted by Kristian Joos on November 29, 2021

What’s something that every software engineer will inevitably come across in their career? Learning a new programming language. Maybe it will be because you want to increase the number of jobs you’re eligible for. Or maybe it will be because you’ve been transferred to a new team, or your current team is introducing something new to your tech stack. Perhaps you just want to learn another language for yourself, or you saw an interesting framework you want to try out but it’s in a language you’re not familiar with. Whatever the reason is, when the time comes, it will be easier if you have a directed approach to learning the language.

There are certainly many ways to go about learning a new programming language, and I will make no claims that my way is the best, however, I will share my approach for those that aren’t even sure where to begin:

Personally, I usually use leetcode and solve a problem in multiple languages, with the one I’m learning coming second so I’m just focused on syntax since I logically solved the problem in a known language. I find it easier to work out the new syntax if I already know what I want to do, just not how to do it. For example, knowing that I need to add an element to the beginning of an array, but having to reference documentation for the best approach to do that in the language I am currently learning. Once I have gotten a handle of basic syntax and can code relatively easily in the given language, the next steps are then to build entire projects and familiarize with popular frameworks. Over time I have found this method to be effective at increasing programming polyglotism.

Also having experience learning new languages will hopefully make it easier to get up to speed with any necessary ones once it is necessary to do so for an employment scenario. I figure also knowing the base Java/C(or ++, or #) will make picking a syntactically similar one like Go, Kotlin, Rust, etc. all the easier.