How many programming languages should the average developer learn? While most programmers are expert in one or two languages, how many should they be familiar with?
There isn’t a limit to the number of programming languages that any one person can learn. Your memory can expand infinitely inward, but that doesn’t make it easy. Just like with natural languages, different people have different natural capacities for learning. Some folks will quickly and easily gain fluency in any language, while others will struggle with the fundamentals of a second language.
As a working programmer, you’ll be “proficient” in one to two languages, with basic familiarity in many other languages. A basic familiarity means that, given some time to refresh your knowledge, you could begin working in that language at a basic level.
There is a natural benefit to knowing a greater number of programming languages.As Mr. Tom Whale, the marketing manager for the prestigious Oxford Summer School points out, “Having a selection of coding languages to draw on can be useful when learning a new one. Similarities and terms that share meanings across the languages will ensure that your education accelerates.” It improves your flexibility as a programmer, providing a diversity of methods for accomplishing a particular goal. The greater your experience, the more flexible you can be.
Don’t try to learn “all” of a language. It’s possible to go your entire career without knowing “all” of an expansive language like C or Java. Once you know the basics of a language, focus on building a particular project.
The quickest way to discover gaps in your knowledge is to attempt to build a real project in a new language.
What Language Should I Learn Next?
Looking for a job?
In theory, the more languages you know, the more impressive your resume. But you don’t want to give the impression of a dilettante with only surface-level familiarity with each language. You can indicate your proficiency with each language on your resume, and focus on those that are most important to your experience and your potential employer’s needs.
The Importance of Life-Long Learning
Anyone who seeks to be successful in their field knows they need to keep learning. If you stop learning, you’ll be quickly outpaced by your colleagues and even your reports. This kind of mental expansion typically means you’ll want to stay on top of industry news.
In programming, it means staying up to date with newer languages, like Rust and Swift. It pays to code a practice project to discover the pluses and minuses of new languages, and that can often be enough to discover if the language is better for your problem domain than your current favorite.
To keep learning, professional educational resources are the best bet. Computer science, in particular, is an easily-accessible field with a structural belief in openness. There are more freely-available college classes in computer science than there are for any other subject. Some folks have even created a four-year Bachelor of Computer Science curriculum to help guide your instruction for self-motivated learners.
These classes represent the best resources for learning, but they can be excessive for those that are already experienced. Educational resources like Codecademy, Lynda, Treehouse and Coding Dojo can all be useful overviews. In general, paid resources provide better instruction than free resources, especially when it comes to depth and breadth.
Most importantly, you need to create habits that support education. With a disciplined approach, you can move from “novice” to “proficient” in a language in six months.