It’s almost 2020, which means it’s time to evaluate the skills and programming languages you’ll need to keep your career moving forward in the New Year.
While we’ve sparked some good discussion with our previous lists—from the top languages desired by employers to the languages that refuse to die—we decided to try something a little different this time around: We wanted to break things out into subcategories. The languages you’ll need to know to carve out a career in mobile app development, for example, differ from what you’ll absolutely need for data-science work.
Ready? Let’s kick it off.
Mobile
If you’re new to the exciting (and occasionally frustrating) world of mobile app development, there are two languages you need to learn ASAP: Kotlin and Swift. (If you’re already involved in mobile development, you’re not shocked at all by that statement.)
Swift
Swift is Apple’s new(ish) language for iOS and macOS development, designed to replace decades-old Objective-C. The language has become quite robust over its past few release cycles; for example, Swift 5 brought ABI stability, while version 5.1 gifted the community with module stability.
Good news for Swift newbies: the language has now reached a plateau of sorts with regard to its evolution. “Now that we have Module Stability and ABI Stability in Swift, the language is likely to change at a slower rate than we’re used to,” developer Donny Wals wrote in a recent blog posting. “We should see less radical, source breaking changes and the language should slowly mature into a beautiful, fast and stable language that will be a great basis for your applications for years to come.”
If you’re just getting started, check out Swift’s introductory tutorial. Apple also offers Swift Playgrounds, an instructional app that’s meant for kids (it features little cartoon characters, etc.) but potentially useful to coders of all ages.
Kotlin
Although Java remains the preferred programming language for many Android developers (at least according to Dice survey data), Kotlin has been on everyone’s proverbial radar screen ever since Google officially named it a “first class” language for Android development. Indeed, the number of Dice job postings featuring “Kotlin” has rocketed up since mid-2017, meaning that anyone who wants to land an Android-related position better learn it.
What’s the best way for you to educate yourself in everything Kotlin? Fortunately, Google offers two tutorial-based courses via codelabs: Kotlin Bootcamp for Programmers and Developing Android Apps in Kotlin. “In each lesson, you will work with a realistically architected app and implement key features,” Google stated in a blog posting when the lessons rolled out. “For example, you start out learning how to deploy a dice roller app. You learn how to implement navigation by building the ‘Android Trivia’ game. You learn how to create a Room database by building a sleep tracker app.”
Data Science
Data science is a burgeoning field. From small startups to major corporations, there’s the growing realization that mining datasets for actionable insight is the best route to growth. Becoming a data scientist is the “sexiest job of the 21st century,” according to the Harvard Business Review, and it’s also a well-compensated one. Check out these salary breakdowns, based on role and years of experience:
But which programming languages are key to data science? That’s where things get interesting.
Python
R is a relatively niche language, and a favorite among data scientists and analysts at academic institutions. But while the rise of data science has translated into greater adoption of R, Python has quickly accelerated to become a go-to language for everything data-related. That’s due in large part to Python’s existing popularity as a “general” programming language, as well as its ubiquity in schools’ computer-science programs—assuring a constant pipeline of Python talent to the nation’s data teams.
“Combining R and Python is both reasonable and feasible,” Enriko Aryanto, the CTO and a co-founder of the Redwood City, Calif.-based QuanticMind, a data platform for intelligent marketing, once explained to Dice. “We run them both in our data science platform internally. But if I were starting my career all over again today, I might consider focusing on Python rather than R. It’s a more-general language with broader applications.”
If you’re interested in data science, familiarity with Python and R is key. Plus, Python has slithered its way into other specialized areas, including artificial intelligence and finance IT; it’s an important language to keep an eye on.
Cross-Platform
For many developers who face a time and resource crunch, cross-platform frameworks and tools are key. If you need to deliver the PC and iOS versions of an app on a short timeline, for example, you want to streamline the build process as much as possible. But which programming languages are key to cross-platform work?
Dart
One of GitHub’s most popular open-source projects (by contributor count) is Flutter, a cross-platform framework for building apps, originally built by Google. In the two years since its debut, Flutter has expanded its support to a number of platforms, including iOS, Android, Windows, Mac, and Linux.
Dart, the language used to write Flutter apps, has enjoyed an accompanying spike in usage on GitHub. If you’re doing anything cross-platform in 2020, Dart is worth your time to examine thoroughly.
Other Programming Languages
Meanwhile, here are some other programming languages that are making their presence known in the New Year:
TypeScript
Yes, TypeScript is a superset of JavaScript, which means that some developers don’t think it’s a “full” programming language (it transpiles to JavaScript—there’s a neat Quora thread that breaks down the nuances here).
But however you define it, both RedMonk and this year’s Octoverse report suggest that TypeScript is rapidly gaining adoption among developers. TIOBE, which attempts to rank languages by popularity (however controversially), has also suggested that TypeScript is beginning to cannibalize JavaScript’s market-share.
In other words, TypeScript is well worth paying attention to in 2020—even if you don’t buy the argument that it’s “new and improved” JavaScript.
Rust
Rust is one of the fastest-growing languages on GitHub, according to this year’s Octoverse report, and it regularly tops the annual Stack Overflow Developer Survey of “most loved” programming languages.
What’s behind that popularity? Rust is open-source, memory safe (not permitting null pointers, dangling pointers, or data races), and has a concrete syntax similar to C and C++. It’s elegant, friendly to those with less experience, and useful in Web and operating system contexts. No wonder it remains consistently popular.
Java
Still dominates the TIOBE and Octoverse lists, and still taught heavily in schools—Java isn’t going anywhere. Given its wide range of applications, it’s well worth learning (if you don’t know it already).
C# rules them all!!!
Exactly. Been a C# coder since it came out, and I have no lack of work. Don’t know what folx see in Java. Always felt like a toy language to me.
@joe buddha – i wouldn’t hire you as my developer. great developers are polyglot, never says anything bad about other languages. they learn them and take the best out of them and understand why one language does it this way and others do it that way.
I’ve programmed in 30 or so languages at one time or another. Everything from Fortran to Forth to C++ to C to Java to C#. And then some. I wrote my first line of code in 1973. I believe I’m entitled to my opinions on languages, even if I have to use one I don’t care for. Good thing I’m not looking to you for employment, by the way. Up here in the PNW, there’s no shortage of work for a decent C# programmer. Especially an SDET.
So what is C# left to now, is it mostly the Web and dot net core, or you still see some desktop or engineering level tasks?
I’ve written in 30 or so languages at one point or another. Including several assemblers. After some 45 years of coding, I think I deserve my opinions, and I’m glad I don’t need to convince you to hire me. Plus, there’s a large market for SDETs here in the PNW who code in C#, fortunately. I’m doing fine.
(Sorry: Browser said post failed…)
@joe buddha – i wouldn’t hire you as my developer. great developers are polyglot, never says anything bad about other languages. they learn them and take the best out of them.
Actually, real men code in C, not C#. If you can handle C++ that is even better. Wasn’t C# a copy of Java? Yep. Microsoft never had any innovative spirit initially and was always copying someone or buying a company when they really couldn’t compete. Even the tcp/ip stack in Windows was a failure and they had to license the BSD version to get with the new Internet scene. Know your facts.
Actually, REAL coders code in Assembler… 😉
And please, do NOT use these languages while sporting a man-bun.
you forgot about Javascript paired with React Native and Nodejs server side. Learn one language to rule the web and moble development and server api. Learn Javascript !!! 2020! And Yes javascript can do data modeling too with tensorflow.js
“while sporting a man-bun” …or while wearing denim from top to bottom, that’s for Johnny Cash or Roy Orbison only, and they’re dead.
.Net Core is far more relevant than Java. Java is for large codebases that rely on mediocre programmers that don’t know what run time type erasure is.
That man bun begs for apocalypse.
I am a scientist. I was using BASIC, Assembler, Pascal, C, C++, Matlab. They all work. I just installed Python and I am going to try it soon. The best one is that I have installed on my machine.
Where is the fucking SQL? PL-SQL or T-SQL?
Uh… that is a database query language, as indicated by the acronym. Not really a programming language, IMO.
If your job is to squeeze information out of databases, it may be all the tool you need.