If you’re already familiar with one programming language, learning a new language is (at least in some ways) easier. You’ve had the experience of learning a language from the ground up, so you know what to expect, you’re familiar with the basics of how programs function, and you’ve had some experience finding creative solutions to logical problems.
However, programming languages differ from each other — sometimes drastically — and the approaches you used for your “home” language may be completely irrelevant for your new target. In fact, you may have an even harder time learning a second language than you did your first one.
Major Challenges to Overcome
It helps to know what challenges to watch for when you start learning a second (or subsequent programming language).
1. Choosing a New Language
As Siftery wrote in a recent blog post, the paradox of choice is making it “increasingly hard to figure out what are the best tools to use for your company. As it is getting harder to choose […], it is getting even more important to make the right choice.” There are hundreds of programming languages out there, and all of them come with advantages and disadvantages. Choosing the right language to complement what you already know and still give you an increased range of responsibilities can be an agonizingly hard decision.
2. Finding Time to Practice
As Rob Conery notes, you can’t learn a new programming language without dedicating a significant amount of time to it, but if you already know one language, you’re likely busy with full-time or nearly full-time work (not to mention personal responsibilities and free time). Finding the time to practice can be one of the hardest obstacles to overcome.
3. Engaging in a New Community
If you want to get the most out of your new language, you’ll also need to immerse yourself in the new community. You need to live and breathe your new programming language, participate in its forums, and get to know some new users in that field. This can be hard to do if you’re already ingrained in other communities or if you aren’t sure where to get started.
4. Keeping Your Language Rules Straight
In the words of Danny Kalev, “It’s tempting to assume that a feature with a similar name works exactly in the same manner in the target language. This is rarely the case, though.” Different languages demand different technical approaches, and that means you’ll need to toggle between two very different sets of skills. It’s an intellectual juggling act — until you’re used to it, it can be very overwhelming.
5. Relating Old Concepts to New Ones
Your new programming language is going to have new syntax, new tools, and new libraries to work with. Your new language will be able to solve problems that your old one can’t (or can’t efficiently), and vice versa. It’s hard to map the old methods you had for solving problems to new ones, which means your traditional approaches to thinking and execution are going to become temporarily irrelevant. You’ll have to adopt a new style of thinking, much like you would with a spoken language; rather than thinking through things in one language and translating to another, you’ll need to think in a new language altogether.
Is It Worth It?
Looking at these challenges may make you wary of learning a new language, but there are some amazing benefits to being a multilingual programmer.
Don’t forget that knowing multiple languages instantly makes you a more valuable and more viable job candidate. If one of your biggest goals is making more money, this is one of the best investments you can make for your career.
Doubling your language knowledge instantly doubles the number of side gigs you could potentially pick up. If you’re an independent contractor, this is even more valuable and allows you to be choosier with the projects on your plate.
The process of learning a new language and then using it in a practical environment forces you to think in different ways, which will make you an all-around better creative problem solver. Creative problem solving is an essential skill for any programmer to have, which means becoming multilingual could make you a better developer in multiple areas at once.
If you’re already skilled in one programming language, there’s no single answer to whether it’s worth your time to pick up a new one. It depends on your goals, your interest, and your overall level of dedication. If you’re interested in the benefits and you’re aware of the risks, ultimately, it’s worth the endeavor — but only if you’re willing to commit.