grid showing multiple programming language logos

Five Programming Languages for 2020

I sometimes get the question from people just learning to code “what programming language should I learn”? I answer with:

  1. JavaScript
  2. TypeScript
  3. Python
  4. Android
  5. Rust

Android isn’t really a programming language, so sure the title is a little misleading. Read-on to understand why Android is important enough to make the list.


Most people think JavaScript is only useful when building user interfaces.

But wait…

Some people who built their UI in JavaScript have also leveraged that knowledge to build backend services in — guess what? Yep, JavaScript.

Google, Facebook, Microsoft, Netflix, Paypal, Groupon, Airbnb, Uber, the list of big names goes on. Because JavaScript runs everywhere. I mean everywhere. Web browser, drones, backend server, smart car dashboard, you name it.

There’s a definite need in the market for DevOps people who know JavaScript inside out. And of course, JavaScript can and does run literally anywhere, making people who know it highly in-demand.

Plus, for companies with limited engineering budgets, and existing websites written in JavaScript, it makes sense to also pick JavaScript as a mobile app building language.

Frontend-focussed folk

Is this you? Are you focussed on websites and mobile apps? You should 100% learn JavaScript. It’s the language for building websites and a major way people build mobile apps today.


But hey, is this you? Look at the countless tech companies which were started by frontend-focussed folks using JavaScript in the frontend and backend with Node.js. They’re in desperate need of systems experts who also happen to be JavaScript experts.

If you can become a backend Node.js expert you’ll make yourself invaluable to today’s most exciting startups.


TypeScript is almost the same language as JavaScript but with a static type system. Think of it like adding a spell checker to JavaScript.

Wait…a spell checker which turbo-powers your code editor.

Basically all the companies above that use JavaScript also use TypeScript. In addition to Slack, Asana, Intuit, N26 — to sum up, nowadays many startups start writing their code with TypeScript very early in their founding.

In addition to catching bugs in your code before users see them, functionalities like autocomplete, jump to definition and find references among other things means

most companies using JavaScript are almost certainly super-charging their code with TypeScript.

If you’re convinced that you need to learn JavaScript — learn TypeScript instead. At the end of the day, they are the same language except one gives you extra features. TypeScript is like paying for Spotify premium.

A lot of companies using TypeScript are in the middle of transitioning a large, legacy, JavaScript codebase to TypeScript. If you get really good at converting JavaScript files to TypeScript, you’ll be a hero at whatever company you join.


Full disclosure: when I say “learn Python,” what I mostly mean is “learn data science.”

Companies don’t usually use Python for frontend or backend builds. However, every data scientist uses Python — it has so many useful tools, from notebooks (eg a Jupyter notebook), to recurring big data workflows (like Airflow), to machine learning.

In addition to data science, Python is really popular among software engineers for one-off hacky scripts. Plus, knowing Python comes in useful when you work with large-scale cross-language build tools like Google’s Bazel or Facebook’s Buck. These kinds of tools, only in action at the biggest of big tech companies, use a Python-like language called Starlark.

Data science is one of the best paid roles in the tech industry today; you can earn more than a software engineer at the same level. Why? Simple: Data science is incredibly valuable to tech companies, and the supply of data scientists is outstripped by demand.

So, who wants to be a data scientist now?!

Data scientists.

People who want to become data scientists.

Also though, maybe you don’t want to be a data scientist, (cool, I don’t!) but even so, knowing Python is still super valuable. Yes, you likely won’t be writing apps in Python, but at large companies you will find a lot of mission-critical scripts written either in Python or a Python-like language. It’s a useful investment to make.

And in terms of companies? Netflix, Instagram, Spotify, Instacart all use Python.

It’s possible to use JavaScript for the one-off scripts too, but most computers come with a Python installation by default. So knowing Python will make your life that little bit easier, and maybe, possibly put you in line for a major pay increase.


OK, so Android isn’t actually a programming language, but I’m recommending the two languages that will enable you to fly within Android apps. These are Kotlin and Java. Either of those languages is going to serve you well. Kotlin is more modern but a lot of Android developers still use Java.

Here are some astonishing facts:

~80% of phones globally run Android but only ~50% of phones run Android in the US. This means Android is the largest mobile operating system in the world but the majority of software engineers (maybe 80%) are iOS developers instead of Android developers.

The distinct lack of Android developers obviously means the quality of Android apps is lower despite its position as the largest mobile operating system in the world.

Key takeaway? The industry desperately needs more Android developers.

When I was joining Facebook, they asked all new software engineers to consider learning Android instead of doing whatever they were hired to do. Seriously. Android is that important. Buy an Android phone and commit your career to the platform. If you are a good software engineering generalist and you’re an Android specialist you will be in demand.

Me personally? I’d learn Kotlin. It incorporates a lot of modern programming language patterns (personal favorite: methods are final by default). But, if you learn Java you can write Minecraft mods, though, lol. So there’s that.


Rust is for low-level, safe systems programming. Programs written in Rust execute in microseconds instead of milliseconds. It’s compiled with a type system which means it is extremely difficult to create security vulnerabilities in the process. Compare this to a language like C or C++ — they also execute in microseconds, but if you aren’t hyper vigilant, you’ll cause major memory safety security vulnerabilities.

As a newer language, Rust is used by relatively few companies (Mozilla, Braintree, Postmates, Dropbox, Yelp).

There are so many really cool academic programming language concepts which are practically applied in Rust. Rust allows theoretical concepts to come to life, and it’s incredibly exciting.

That being said, as a programming language enthusiast this has to be one of the most exciting languages to me. If you’re interested in expanding the breadth of your programming language knowledge, I’d highly recommend Rust.

I love Rust, I’ve written a lot of Rust code. And yes, I’ll be the first to say that Rust is pretty hard to learn, but the Rust community is one of the most inclusive I’ve ever seen.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Caleb Meredith

Product engineer at Airtable. Previously Facebook. @calebmer on Twitter