Originally published at deepu.tech.
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.
My reflections on Golang
Deepu K Sasidharan ・ Jul 10 '19
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.
My love-hate relationship with JavaScript
Deepu K Sasidharan ・ Nov 21 '19
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.
My first impressions of Rust
Deepu K Sasidharan ・ Nov 7 '19
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.
Top comments (16)
Good list, but no Dart? With flutter taking off? I agree with the others outside of maybe Rust. I think Rust is a great language, but I don't think it's a must learn language today. This industry is fast iterating and there's just simpler languages today that you've listed that would get the job done.
Yes, but for system programmers, Rust is great alternative compared to C/C++ as I mentioned in the who should learn section of it. Others in the list will not cut it in such demanding use cases where performance and memory safety is paramount.
Shameless plug: if after reading @deepu105 article you decide you want to learn Kotlin, have a look at this interview I did with Sebastian from JetBrains on the different options available to you
Best ways to learn Kotlin in 2020: browser vs IDE, books vs tutorials, for newbies and Java devs
Jean-Michel Fayard 🇫🇷🇩🇪🇬🇧🇪🇸🇨🇴 ・ Dec 15 '19 ・ 6 min read
Thanks, that's a great source of info
Good list of resources to learn programming. Even, the following c#, and python resources are very good to start programming.
tutlane.com/tutorial/csharp
tutlane.com/tutorial/python
I am really interested to learn Golang. One heck of a server-side language
Yes it is one of the good choice
Nim (nim-lang.org/) usually doesn't get shine , but it's currently at 1.0, some syntax inspired by Python (white space as delimiters) , optional garbage collector and compiles down to C.
It looks interesting, but I'm not sure if it's mature enough to be considered alongside these languages.
I will love to see some FP languages alongside the listed ones. In any case I agree with the list. I've been really interested in trying Kotlin and Rust.
You can do FP in most of these languages. Personally I prefer multi paradigm languages. Also these are more practical and has better job market than pure FB languages like Haskell
Agree with all the choices. I know most of the languages, but not all, and have played with Go but never dived deeper. Perhaps this is my chance... and get better with Kotlin while I'm at it.
Happy learning
Amazing post, I have a question though. Why python is not being used in large-scale software development?
Python was mostly being used for scripting due to its dynamic nature, of course there were large scale projects as well, but the recent popularity of Python due to the increased interest in data science and machine learning has made python one of the most sought after giving a boost to Python frameworks and adoption, so nowadays you can actually see large projects being done using python
Python is cooler than the way you mentioned it. :D