Ten years ago, Shutterstock was loyal to one programming language and one programming language only: Perl. But times have changed. Its tech team of “die-hard” Perl developers has expanded into a multilingual team that now programs in Node.js, Ruby, Java, Python, PHP, and Objective-C.
“These days, it’s almost impossible to function well in the software world with just one language,” says Harry E. Keller, president and founder of Smart Science Education.
“It surprises me to no end how few programmers have detailed knowledge in multiple languages, and how much garbage code is out there,” adds Crystal Stranger, president of 1st Tax.
Tech.Co has been compensated by University of Phoenix for this article. All thoughts and opinions come from Tech.Co. If you’ve already got one programming language under your belt – or you’re deciding where to start – here are a few reasons to learn multiple languages:
1. Different tools for different jobs
Although (theoretically) any programming language can do any job, they all have their strengths and weaknesses. The language’s creator and community shape its evolution, so the available support and libraries (snippets of freely usable code) will be geared toward certain problems. Choosing the right language means you’ll be able to solve problems faster and more efficiently.
“If you know that you want to do a corporate job, you should probably try Java or .NET. If you are kinda hacker and pay attention to security issues, you may want to learn C/C++ or Bash. If you dream of becoming a web developer, you should check PHP, JavaScript, or Ruby. Maybe you want to program some machines, robots, cars, or other electronic stuff – you should play with C++ or Python. Do you like mobile devices? If so, you should probably go with Java, Swift, or C#. Are you a science guy who loves math and algorithms? Take a look at Lua, Erlang, or R,” advises Kamil Lelonek on Medium.
2. Get hired
As the Shutterstock example illustrates, companies today don’t use just one programming language. The job you want may entail working in multiple languages, or at least communicating with developers who work in other languages. Being a “polyglot programmer” gives you an edge.
Plus, even when companies focus on a single language, you’ll have more choice of where to work. What if your absolute favorite startup doesn’t use the programming language you know? I’d say it’s time to learn something new.
3. Don’t get left behind
Like hemlines and the ideal portion of carbs in our diet, trends in programming languages change over time.
“Ten years ago, nobody used Ruby, and everybody tried to avoid JavaScript,” says Michael Kaiser-Nyman, founder and president of Epicodus – and now those languages are extremely popular. That’s why Epicodus students are taught at least two languages. Many other coding schools use a similar approach.
In an age when programming languages rise and fall out of favor, it’s adapt or die. Checking out job postings should give you a good idea of what languages are in demand, but beware of fads.
How to choose a programming language?
As mentioned above, programming languages differ in the jobs they do best and the community support they offer. If you’re picking a new language, look for one with new and different strengths than the one you’re currently using. Better yet, figure out which language is best suited to your upcoming project by researching which languages developers use on similar projects – a tactic that Allen & Gerritsen Associate Developer of Innovation Je Seok Koo uses himself. In terms of community, look for languages with lots of GitHub repositories and libraries, Reddit communities, meetups, and online tutorials.
Another factor to consider is personality, writes Lelonek. “You need to clarify what type of person you are. Do you want to know how everything works under the hood, do you like to dive into a native implementation, and are you willing to understand how a language is structurized? Or are you a person who really cares about fast results, don’t want to pay attention to how virtual machines or interpreters work, and language internals don’t matter to you at all?” In other words, are you going for deep and long-term understanding, or do you just need to get something done ASAP?
In the end, many developers recommend trying something completely new and different – to test your limits and get a fresh perspective. “Choose something that seems completely foreign,” says James Smith, a developer at Gaslight. “Then strive to understand it. Why is it different? What advantages does it have over the way you normally do things?”
If you’re already employed and learn something new, the next step is to incorporate it into your job. Seek out the department who uses that programming language and volunteer to help out with small projects. If no one on your team is using it, put together a quick prototype and make your case for the new language.
According to Joe Conway, founder of stable/kernel, learning your second programming language is the hardest – and then it’s smooth sailing from then on: “With your second programming language, you will rewire the way your brain thinks. Once you’ve seen two programming languages in depth, you realize they’re all just doing the same thing. Learning your third and fourth programming languages is easy.” If anyone needs to embrace lifelong learning, it’s programmers.