The most in-demand and important coding languages of 2019 that will help you grow your career and enable you to become a better developer and software engineer
Deciding which programming languages to learn is one of the most enjoyable things we get to do as software engineers, but it is also incredibly impactful on our career and the types of jobs we will be able to find. The opportunity cost of learning a programming language means it takes time away from learning something else, so we must be efficient where we focus our efforts to ensure we are set up for success now and in the future.
This list ranks languages both on their current growth rate as well as the impact on the industry as a whole. It will introduce languages from different areas of the stack — you will find useful material whether you want to be a frontend engineer, backend engineer, or mobile developer. Let’s take a look at the top programming languages of 2019.
TypeScript has become the defacto type system for JS, beating out other competitors such as Flow and has far more adoption than ReasonML. According to Stackoverflow, TypeScript is the #3 most loved programming with a score of 73.1%. This ranks only behind Rust and Python and one spot above Kotlin — all of which are on this list.
Developers love Python. Year after year, this fact holds true. Python has become the primary language for data scientists, with R as its only real competition. In addition, Python is used extensively for building web application APIs and general scripting.
Python has been around for over 30 years and has withstood the test of time. It ranks as the #2 most loved language and #1 as the most wanted language.
Python has proven that it will remain a force as a top language for software engineers. If you invest your time into learning it, there is no doubt that it will pay off.
When Kotlin was introduced, developers rapidly adopted it as a better alternative to writing Android applications compared to Java. Recently, Google has even named it as the preferred method for Android app development.
Kotlin is a cross-platform language that is meant to interoperate entirely with Java and run on the JVM. The language is statically typed but known to be much more concise than Java. In addition to providing better code readability and developer experience, other improvements of Kotlin are null-pointer safety, extension functions, and infix notation.
Kotlin ranks as the #4 most loved language according to StackOverflow and has solidified itself as the better alternative to Java. Whether you want to build apps for Android or just have a better language on the JVM, Kotlin is an excellent choice to ensure you are prepared for the future.
Swift was introduced by Apple as an alternative to Objective-C to write applications for iOS and Mac. Much like Kotlin has replaced Java for Android apps, Swift has rapidly become the preferred coding language for iPhone developers. Swift ranks as the #6 most loved programming language and has solidified itself as an essential tool for mobile developers.
Golang has rapidly taken the position as one of the top languages to build microservices. The language was created a decade ago by Google and offers many of the benefits of C/C++, but Go makes many changes to improve brevity, simplicity, and safety.
Simply stated, Go does practically everything well. The code is easy to understand but also incredibly efficient computationally. A new developer can pick it up rather quickly. It is a statically typed and compiled language that manages concurrency efficiently.
Go is mostly noted for its unique location on the continuum of developer experience while also being incredibly fast. The code writes almost like a scripting language, allowing developers to rapidly build services. However, its type inference also provides visibility into the code that we would expect from more verbose languages, as well as the same safety. Go has been optimized by Google to be incredibly efficient with memory and blazing fast.
Given the many benefits of Go, it is not surprising it has been rapidly adopted. Its speed makes it a great choice for web servers, and it is simple enough to quickly spin up micro-services. It handles networking very well, and Go also does a good job as a language for systems. Some practical implementations of Go are:
Go may be the perfect language to add to your developer toolbox. Its ability to do so many things well means that it will always be in the conversation as a tool to use for any job.
This list would not be complete without including Rust. For the fourth straight year, it was ranked as the #1 most loved programming language in 2019 according to StackOverflow.
Rust is primarily used as a systems programming language but has recognized growth beyond this area. There are more tutorials popping up to use Rust as a web server, and it is one of the languages that can compile into WebAssembly.
Share the love and check out why so many people are turning to Rust.
With the rise of popularity and adoption for functional programming, a list of the top languages would not be complete without including at least one. You would not go wrong with Elixir, Scala, or Clojure — all three languages have a high average salary, similar usage, and developer adoption.
Since I need to pick one, my personal experience and anecdotal evidence lead me to recommend Elixir. It is a newer language and appears to be growing rapidly. One story to depict the capabilities of Elixir is the article from the popular chat app Discord where they explain how they scaled to 5M concurrent users by utilizing Elixir.
Ultimately, if you want to learn functional programming, pick one of Elixir, Scala, or Clojure, and you can’t go wrong.
While it is not quite the same as the other languages on our list (and some may argue that it does not belong here), understanding SQL is very important. Almost every single tech company will have some data storage, and by far the most popular method still is a SQL implementation. Understanding data storage and retrieval can only serve to make you a better software developer. If you are a front end engineer that has never looked into where your data comes from, do yourself a favor and gain an understanding of SQL.
GraphQL is a query language that totally changes the way we think about we build APIs. Representational State Transfer(REST) has been the dominant methodology for API architecture where the URL structure dictates the data which it contains. This requires that the client understand all the available endpoints and shape of the data returned.
GraphQL upends this thought process by using a single endpoint to request data. The data itself must be defined in a schema which is statically typed. By providing a well-defined schema through a single URL, the API is entirely self-documenting. The client can view exactly what data is contained on the server.
In addition, the application becomes entirely data-driven — the client sends a (possibly nested) object of keys for the data that they want. The GraphQL server responds with a JSON object containing the matching key/value pairs from the request. This allows the client to request exactly the data that they need for a given page.
GraphQL is on pace to revolutionize API development, and learning the technology will provide you opportunities for years to come.
Is blockchain hype or a real force to revolutionize technology? While the debate echos with every swing of coin prices, the test of time and adoption by large tech companies indicate it will likely be around for years.
One of the promises of blockchain is that it can usher in the Web 3.0 — an entirely decentralized internet where code is executed by individuals instead of being housed in servers and controlled by corporations. The vision is idealistic, but it is one that truly gives the people the power.
While Solidity has a much higher risk than the other languages on this list, it can also set you up to be on the cutting edge of technology.
Learn Solidity - Best Solidity Tutorials (2019) | gitconnected
_The top 14 Solidity tutorials - learn Solidity for free. Courses are submitted and voted on by developers, enabling you…_gitconnected.com
Learning anything takes time, and we always want to ensure we use our time effectively. As software engineers, we learn new languages because we love it, but we are also aware that what we learn impacts our future and careers. We would all love to learn everything, but if you focus on the languages on this list, it will ensure you are adding tools to your skill set that will benefit you for years to come.
Well… there were a few well-thought reasons behind this decision.
Python is a great language. I love it! It’s free of clutter and is simple to use. It also has better support for OOP features. So, why didn’t I choose Python? Because based on my research, Python is often used among people in the data science community, rather than professional software engineers.
Yes, you we use Python to build desktop and mobile apps as well as backends. However, Python is not the language of choice for building mobile or desktop apps. These days, the majority of people are building mobile apps using cross-platform solutions such as React Native or Flutter. Others do native development in Java (for Android) or Swift (for iOS). The same applies to building desktop applications with Python. Python is not very well known for that reason.Why not C#?
C# and Java are very similar in terms of syntax and they both have great support for OOP features. So, why didn’t I choose C# given that I have several C# courses?
Well… I looked at different sources to see the popularity of Java vs C#. Google Trends is a great resource. As you saw earlier in the post, Java is way more popular than C#. Does it mean it’s a better language? Well, it depends on _how _we define “better”.
What is better? A Ferrari or a truck? It depends on what you want to do. Ferrari is a super-fast car but it’s useless if you want to use it to move house. Programming languages are the same. There is no such thing as the best programming language. Every language has pros and cons. C++ is well known for its speed. Python is popular for its simple and clean syntax as well as tons of resources for machine learning.
Just because Java is more popular, it doesn’t mean it’s a better language than C#. In my opinion, C# is a more feature-rich language but Java was marketed better.
C# and Java have been rivals since day one. Many of the features we’ve had in C# for a long time were introduced in Java years later. Some features don’t exist to this day! For example, in Java, we don’t have optional parameters which are very handy. We have to overload a method. Ugly! Jave interfaces are also bad.
I personally prefer C#. But as I said, Java has had better marketing and that’s why it’s always been more popular than C#.Why Java?
So, I chose Java because it’s used more widely than C# amongst professional software engineers. There are more Java developers out there than C# developers. Most universities and colleges also tend to teach Java, rather than C#.
Now, all that aside, C# and Java are very similar in terms of the syntax. Recently I posted this tweet asking my students if this is Java or C# code?
The reality is I wrote this code in IntelliJ (a popular Java IDE). But the code is valid C# and Java code. Someone argued that this is an over-simplified example and shouldn’t be used as a basis for comparison. That is true. But my whole point is that if you understand this code, you can perfectly take my Data Structures or Design Patterns courses.What You Should Take Away
In my opinion, Java in the programming world, is like the English language in the world we live in. If Italian or Hindi is the only language you speak, you’re probably not gonna get very far ahead.
If you understand English, you have access to tons of valuable resources. Whether you want to learn programming, or painting, or piano, if you “understand” English, you have tons of resources in front of you. You don’t need to be fluent in speaking English. All you need is to just understand it.
Thanks for reading ❤
If you liked this post, please do share/like it with all of your programming buddies!