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:
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.
If you can become a backend Node.js expert you’ll make yourself invaluable to today’s most exciting startups.
Wait…a spell checker which turbo-powers your code editor.
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
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?!
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.
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.