7 Programming Languages Vital to Learn in 2020

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).

10 Responses to “7 Programming Languages Vital to Learn in 2020”

      • chris hines

        @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.

  1. 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

  2. Mark McTernan

    “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.

  3. 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.