7 Languages to learn in 2020 with free resources to get started
This is part of my "Languages" series
- My reflections on Golang
- My first impressions of Rust
- My love-hate relationship with JavaScript
- 7 Languages to learn in 2020 with free resources to get started
- How to become an effective Polyglot Developer
- My second impression of Rust and why I think it's a great general-purpose language!
- The programming languages I like and why I like them
- Golang Finally Gets Generics! Does It Make Go a Better Language?
We are at the dawn of another decade and the software industry is becoming bigger than ever. If you have to bet on a career than it would be software development. If you are already a software developer then there is so much to learn out there in the next decade.
Let us start with programming Languages that you absolutely must learn if you haven’t already. These are the Languages that are on the rise and the ones that are not going away any time soon. My recommendations are also based on practicality and the advantage the language would you give you on the software development marketplace.
So let’s start in no particular order.
Kotlin
Kotlin is one of the fastest-growing languages in the last few years and is an excellent choice for a JVM language. It has great interoperability with Java, has great features and is not very complex to learn.
Why
- JVM is still one of the biggest and most used platforms, especially trusted and used in enterprises world over.
- JVM has a pretty great Job market and there is always a demand for JVM developers in the foreseeable future.
- Kotlin’s interoperability with Java helps with adopting it incrementally.
- Has simple and intuitive syntax, a great feature set and great concurrency and asynchronous programming support with Coroutines.
- It is the language of choice these days for Android programming and hence gives you a wider scope if you wish to dive into mobile application development.
Who should learn it
- If you are a Java programmer and you are looking to learn a language that you can use without having to switch completely to a new stack.
- If you are interested in the JVM but you think Java is not cool anymore.
- Web application developers or full-stack developers who want to learn a new language.
- If you are interested in Android application development then Kotlin is the place to start.
Where to start
- The official tutorial is a great place to start and its free with an interactive playground. The official getting started guides can be found here.
- This is a nice and free tutorial on medium for Android development with Kotlin.
- This Udemy course is great if you want to focus on Android development with Kotlin. It’s not a free course though.
Golang
Golang is a simple language by design and has become hugely popular thanks to the marketing from google and early adoption by popular tools like Docker and Kubernetes. Here is my detailed review of the language.
Why
- One of the simplest language to learn and a great community.
- It has pretty good performance and can be used as a general-purpose language if you are not bothered by the boilerplate.
- A great choice for use cases with heavy concurrency or parallelism requirements.
- It has a good demand in the job market and its adoption is only increasing with many big names using Golang for their main platforms.
Who should learn it
- Developers working with languages like C, C++ would be at home with Go, while you might find the features limited, once you get used to it its a great language to have in your arsenal.
- System programmers looking to learn a new language will find Go pretty descent.
- DevOps engineers who are more on the Ops side looking to learn a language would find Go quite handy.
- If you are writing microservices than Golang is a good choice for that and you should learn it.
- If you are a front-end developer wishing to venture into web assembly, then Go is one of the easiest languages to start with as it supports web assembly.
Where to start
- The official tour of Go is a great place to start and its free with an interactive playground.
- This freeCodeCamp video tutorial if you prefer videos.
TypeScript
You like it or not JavaScript is here to stay as long as the internet is around. So if you are not already a fan why not embrace it in the form of TypeScript instead of hating it.
Why
- JavaScript is the most used language and has the biggest ecosystem and TypeScript being a strict superset of JavaScript means you can make use of it any use case that JavaScript can handle.
- TypeScript is one of the rapidly growing languages and will help with some of the shortcomings in JavaScript.
- Demand for front-end engineers is never going away and with MVVM frameworks like Angular, React and Vue it’s only rising.
- The extent of the JavaScript/TypeScript ecosystem spreads from front-end to desktop to serverside to robotics. So you can say JavaScript is everywhere.
Who should learn it
- JavaScript developers should learn TypeScript, it will make maintaining big JavaScript projects easier and will help you write better code.
- If you are coming from a strictly typed language background and you are thinking of exploring the world of frontend engineering then TypeScript is a great place to start.
- If you are Java developer and want to do front-end, then TypeScript is easier to start with due to its similarity to Java.
- You want to get your hands dirty with Angular, React or Vue but you hate JavaScript then TypeScript should be your logical choice.
- If you are planning to learn Angular framework then knowing TypeScript is a must.
- If you are considering a career in IT as a front-end developer, then JavaScript is the ultimate choice and once you learned JavaScript then TypeScript is a logical next step.
Where to start
- This is a detailed tutorial on TypeScript and is free.
- This is a free quickstart guide if you don’t want to spend too much time.
- This video tutorial from one of my conference deep dive session if you want to see advanced TypeScript features in action.
Python
Python has been around for a while and in recent times it has seen a sudden increase in popularity. The popularity of data science and machine learning should be attributed to that as Python has become the go-to Language in those fields.
Why
- Python is a general-purpose language and like JavaScript, it has a wide scope of application.
- It’s a dynamic language like JavaScript and hence great for scripting.
- It’s becoming the go-to language for machine learning and data science.
- It has a great job market and a huge community.
Who should learn it
- If you are looking to get into data science or machine learning, then Python is your language.
- DevOps engineers will find Python easy to start with and great for general-purpose scripting.
- If you are looking to learn a general-purpose language then Python is a great choice.
Where to start
- The official Python tutorial here.
- This free and interactive tutorial.
- This w3school tutorial with interactive playground.
Rust
Rust is the most loved language according to the Stack Overflow developer survey last few years, not only this, the language is gaining momentum and is one of the fastest-growing languages. Here is my detailed review of Rust.
Why
- A great alternative to C/C++ with similar performance and better memory safety.
- Extremely memory safe, highly performant and flexible language.
- Suitable for low-level programming and hence a great choice for systems programming, concurrency and so on.
- It has web assembly support.
Who should learn it
- C/C++ programmers should consider learning Rust. Its a better alternative to C/C++ IMO and is more future proof.
- If you are a systems programmer, then you should learn Rust as it’s becoming a fast-growing choice in that space.
- If you are a front-end developer wishing to venture into web assembly, then Rust is a great choice as it supports web assembly. It might not be as easy as Golang to start with but definitely a great choice.
- If you are a developer writing low-level programs that requires extreme memory safety, performance and memory efficiency then Rust is a great choice with its memory safety guarantee, Ownership model and pointer support. You can tune your programs to be very memory efficient.
- If you are into concurrency and parallelism then Rust has great support for that with a pluggable multi-threading model which you can tune to your likeness. With libraries like Tokio, you can achieve great concurrency performance while maintaining memory safety.
Where to start
- The official Rust book is the best place to get started. It’s free and interactive.
- The official Rust by examples if you want to learn hands-on.
Java
If you are a millennial you might think that Java is too old school and not cool anymore, but I assure you that Java will outlive a lot of languages that are considered new and cool. Java is one of the most mature languages out there and the with current release model of Java new features are being added twice a year closing the gap with other modern languages.
Why
- JVM is still one of the biggest and most used platforms, especially trusted and used in enterprises world over.
- JVM has a pretty great Job market and there is always a demand for JVM developers in the foreseeable future.
- It has simple syntax, a great feature set, and a huge ecosystem and community.
- It is the language of choice for enterprises and has some of the most stable and trusted web application frameworks and libraries in the ecosystem.
- It has one of the best ecosystems around it for building web applications and especially enterprise web applications.
Who should learn it
- If you are a front end engineer and you want to become a full-stack engineer then JVM is a great choice as it has the best Job market for full-stack engineers.
- Web application developers or full-stack developers who want to learn a JVM language.
- If you are considering a career in IT as a backend developer, but you are unsure then JVM and Java is a safe bet and it has a great community and ecosystem to help you.
Where to start
- This w3school interactive tutorial to get a nice introduction.
- This interactive tutorial on JavaTpoint.
- This video tutorial.
C#
C# is one of the popular languages in the programming world and is the go-to choice in the .NET world. It is a multiparadigm language suitable for different styles of programming. Like Java, JavaScript and Python it has retained its position in the top 10 languages in most of the language surveys.
Why
- It’s kind of a defacto choice for Windows programming and Windows is still the most used OS in the world.
- Well integrated with Windows and .NET platform with great support for enterprise applications.
- general-purpose language can be used for web applications, desktop applications, CLI tools and so on.
- It has a great Job market because Windows has a major market share in terms of OS usage and enterprise usage.
Who should learn it
- If you are thinking of programming applications for Windows or .NET then this should be your language of choice.
- If you are a Java developer and want to learn .NET then C# is the logical choice as it has a great syntax and concept resemblance to Java.
Where to start
- This w3school interactive tutorial to get a nice introduction.
- This exhaustive tutorial on JavaTpoint.
If you like this article, please leave a like or a comment.
You can follow me on Twitter and LinkedIn.
Cover image credit: Based on official logos.
Post 4 of 8 in series "Languages".