Here’s the thing: You don’t really have a choice.
The likelihood that you’ll be developing software in a single language these days is slim. Isomorphic web applications – where the same code that runs on the server runs on the client – now exist. But that’s not the norm.
In the majority of cases, your backend language will be different from your frontend. If you’ve written an Android App in Java, for example, it’s likely you’ll be asked to create the iPhone version in Swift.
The question, then becomes, “When are you going to learn another programming language?”
You’ll know when you’ve gotten a handle on your first programming language. You’ll knock a method out and it will, much to your surprise, work on the first try. You’ll be able to read blog posts and not get hung up on the terminology. You’ll attend meetups and will be able to understand more than half of what the speakers are talking about. You’re ready for version 2.0.
Scared? Don’t be. It’s a lot easier the second time.
Most importantly, you’ll have the ability to mentally map the lessons from your first language directly onto your new language.
Know this: You’ll stumble very hard at first over the new syntax of the language and get some well-earned bruises. But if you hold tight, you’ll end up learning things about your original language that you missed the first time through. When you then go back to documentation – which usually isn’t very beginner friendly – you’ll now find that everything will make more sense because you’re growing as a software developer.
This is going to make you feel real good. Hold onto to that feeling. Use it to keep exploring.
The Choice is Yours
After you accepted the fact that you’ll be adding another language, the next question naturally is, “Which language should I choose?”
First allow me to back it up for a bit: You might be wondering why so many languages exist if they’re doing the same thing.
Chances are, they didn’t start out looking the same. While they’re usually based on another language – similar to how our spoken languages fall into broader categories like Germanic or Romance – most programming languages are created for a specific reason.
So, how to choose?
It helps if you have a target in mind. Learn the must-have requirements of your employer, for example. Job listings are usually pretty clear about what you need and what’s nice to have. Focus on the needs first; don’t be distracted by the shiny objects.
Look also at the different language options at the high level, and try and figure out their origin story. It will help you understand how and why features are implemented. Similarly, pay close attention to the marketing surrounding the language. Do you like their community? What features are they proud of? Do you want to branch out into Web apps or Mobile apps?
Try to approach syntactical differences with an open mind. Most of the time the decisions were deliberate and by understanding why the language behaves as it does, you’ll understand better how to use it to its intended purpose.
Lastly, I highly recommend browsing popular Open Source projects and blog posts to see the code in action.
Once you gain the ability to quickly learn programming languages, more opportunities will open up for you. Your job search just went from “<INSERT YOUR LANGUAGE HERE> developer” to simply “developer.” And once you pick up your second language, you’ll be rapidly onto your tenth before you know it. It’s addicting like that.