The programming languages you should learn now
if you’re in the market for a new lingua franca, what you choose next might be influenced by your current language of choice
Learning a programming language is not hard. In fact, if you’re experienced, you can learn the basics in under 24 hours. So if you’re in the market for a new lingua franca, such as to bolster your hirability, what you choose next might be influenced by your current language of choice.
Here are the languages I suggest you consider learning if you don’t already know them, based on the languages you already know.
If you know Java, choose from these languages
If you know Java, you’re not one of the cool kids any more. Although it is fair to say that most business software is written in Java, the days of paying a premium for a Java developer are long over. So, if you’re a Java developer what’s your next step? One or more of the following languages.
Scala is like functional Java—if functional Java’s syntax wasn’t kinda cracked. Functional purists aren’t big fans of Scala, but the trek from Java to Scala is short. Moreover, with AI and machine learning becoming the hot topics of the day and Apache Spark being written in Scala, this is kind of an obvious choice.
If you never learned C, this classic language is back on the rise. Moreover, even if you don’t use it (to, say, program Arduino devices), it will help you understand how Java works and how to debug the big issues when they go wrong, like concurrency issues and race conditions.
If you know C#, choose from these languages
If you know C# then you’re a ’Softie. But while you were worshiping at the Microsoft house that was built by Gates, the world changed. So you should make yourself more marketable both outside of the Microsoft world and within it by learning one or more of these languages.
It is also still a good time to try using Node.js or a similar runtime or try to make a pure web app if you’ve been making client apps in C#.
While F# didn’t set the world on fire as predicted, it is still a great way to get totally dirty with functional programming and expose yourself to the data science mindset. If you’re working your way toward AI or machine learning, or if you just want a cleaner way to do complex calculations, then F# is your daddy.
You thought Java was going to make this list, didn’t you? No, just like Java developers, C# programmers need to go deeper and understand how the runtime actually works. And that means understanding C. Learn C because it is good for you.
PowerShell or Bash
Clicking around to make things happen is for users. You need to be able to automate all of your mundane tasks. Microsoft’s PowerShell and the Bashterminal available in multiple operating systems are the most widely used tools for such automation.
You put “full-stack developer” on your résumé, didn’t you? But you haven’t really been fooling anyone because you’re a much better front-end developer than back-end. Frankly, it is time to make good on that “full stack” promise.
What, you say? Isn’t R for data scientists and statisticians? Yes, but it is also a relatively simple language that can easily generate visualizations with data. Grab that R Studio and take an online class from Harvard or Microsoft if you’re so inclined. (Hint: the Harvard course is more affordable than Microsoft—go figure!)
You’re a NoSQL guy or gal, so why SQL? Because it is a fair bet that more people know SQL than any other language. It also isn’t going anywhere, and it is a good way to help you think about data in the right way.
Python isn’t simple to learn, but it is easier to learn enough to do something meaningful than, say, Java or Scala. Moreover, the more obvious choice of Ruby is declining in popularity, so I can’t really recommend it because I’m not sure it will be useful in a few years outside of a cult following.
If you know Ruby, choose from these languages
You went to a code bootcamp. You learned Ruby. You probably now realize that you might have wasted your money. Where do you go from here?
Python is a popular language with the data crowd but you can still do web apps with it. If you want to make yourself more versatile and marketable (read: make more money), learning Python might just be your jumping-off point.
If you know C or C++, choose from these languages
If you’re programming in C or C++, you’re doing embedded stuff, drivers, or low-level stuff—or you’re just old. The bottom line is you should learn at least one language with managed memory.
Learning D will not help you get a job anywhere, and it may be of little practical use. But it is a convenient way to taste managed memory and all of the “new” concepts without leaving familiar tool chains and losing the C library.
Again, this simple language changes how you think about data. R is also almost immediately useful because you can make visualizations. Surely you have some log data to debug somewhere; this will help.
If you know Perl, choose from these languages
So, your neckbeard is long and you’re still convinced the camel was right and right was wrong or some kinda twisted logic. Text processing isn’t the thing it once was and “look, ma, regex is embedded” isn’t impressing anyone the way it once did. So learn one or more of the following languages.
I know I’ve said it before, but R is an immediately useful, simple language, and a good step that should be easy for most Perl programmers.
You’ve used C for decades under the covers in CPAN modules. So, go write your own
CPAN module in native C. And watch how its build crashes when trying to install on most platforms unless they are just so. By learning C, you’ll understand those just-sos. C will be a bit of a trek, but you’ve probably debugged the hardest part about it already: the builds.
Languages you should not learn today
If you weren’t there for these revolutions, don’t bother showing up now. Look instead at a language that is not oversaturated with talented developers or that is on the wane.
The Ruby language is declining in popularity, with no bulwark to hold it in place, Ruby will soon go the way of Groovy, a weird cult language (I’ll get the most hate mail for denigrating Groovy, I promise) that isn’t even in the top 50 in terms of popularity.
Perl too is a weird cult in its own right. It’s been declining in popularity for years, but it remains useful for things that are mainly somewhat-solved problems (I mean: I can just grab code to deal with that mangled CSV file, so why am I writing Perl again?).
Languages newbies should start with
If you know no programming languages, start here with the following languages.
Because it is a relatively simple language that can immediately help you with charts and visualizations, R is a good thing to know.
Everyone should have a basic understanding of how a computer works. For that purpose, C gets you closer to the metal. It is also one of the most popular languages and will help you in the era of the internet of things.
Bash or PowerShell
Understanding shell scripting is understanding life. It will automate so many mundane tasks for you. Bash is widely useful, while PowerShell is core to the Microsoft ecosystem.