The Top 5 Programming Languages to Learn as a New Software Engineer in 2023 (and what languages to avoid)

Mike Cruz
4 min readMar 20, 2023

--

As a new (or seasoned) software engineer, choosing which programming languages to learn can be overwhelming. With so many options out there, it can be difficult to know where to focus your time and energy. To help you get started, we’ve compiled a list of the top five programming languages to learn now, and why they matter.

I’m also adding in some thoughts on what languages to avoid as they’re rapidly losing popularity, which has a massive impact on the developer community that supports it. When a community moves away from a language, I’d recommend you move as well, as the tooling, libraries, and even StackOverflow references drop very quickly once that happens (note what happened to Ruby and PHP below).

Most Used Languages on Github — 2022

⬆️ Python

Python has been one of the fastest-growing programming languages in recent years, and for good reason. It’s a versatile language that can be used for everything from web development to data analysis and machine learning. With the continued rise of AI, the most supported libraries around AI and ML are written in Python (numpy, pandas, tensorflow, etc).

Its clean syntax and easy-to-read code make it a great language for beginners, while its extensive libraries and frameworks make it a favorite among experienced developers. In fact, many of the biggest tech companies, including Google, Facebook, and Netflix, use Python extensively.

⬆️ Typescript

If you’re interested in web development, Typescript is a must-learn language. It compiles to Javascript (so it runs natively in web browsers) and offers better language features, reference validation, and project scalability (and the integration with Microsoft VS Code is 🏆).

Additionally, Typescript is increasingly being used on the server-side, with tools like Node.js, making it a versatile language to know.

↗️ Java

Java is another popular language that’s been around for decades. It’s used for everything from building desktop applications to developing large-scale enterprise applications. Because it has been around so long, there has been a much investment in to making it quite performant at scale.

One of the key reasons Java is so widely used is because it’s platform-independent, meaning you can write code on one operating system and run it on another without modification. This makes it a great language for building cross-platform applications.

But you’ll find Java less and less within smaller teams as there are more terse languages out there that can achieve similar if not better outcomes (see Go below).

⬆️ Swift / Kotlin

If you’re interested in mobile app development, Swift is a language you’ll want to learn (or Kotlin if you’re developing for the Android platform).

Developed by Apple, Swift is the primary language used for building iOS and macOS applications. It’s a relatively new language, having been introduced in 2014, but it’s already become a favorite among developers for its clean syntax and ease of use.

I’ll take this chance to also recommend learning SwiftUI, Apple’s newest framework for building UIs. The framework is far from complete, so get ready to roll up your sleeves and work in UIKit if you need performance or more custom features, but if what you’re building is simple, SwiftUI is MUCH faster to develop in than UIKit (less boilerplate, better composition and tooling, etc).

↗️ Go

Go, also known as Golang, is a newer language that’s been gaining popularity in recent years. Developed by Google, Go is known for its simplicity, efficiency, and scalability. It’s often used for building large-scale, high-performance applications and is a great language to know if you’re interested in backend development.

The reason I had Go as a ↗️ is that it is more purpose-built language — perfect for backend development but less useful for web development (Gin is the most popular web framework now). So if you’re excited about solving back-end problems, Go is a great choice.

⬇️ Ruby

Ruby had its moment in the sun from 2011 to 2015 but has quickly lost popularity to JS. This was a great example of a community shift causing a language to languish and lose traction.

Though Ruby’s syntax was much cleaner, Javascript won because it was (1) more performant and (2) could be leveraged for front-end (React) and back-end (Node) at the same time.

If you’re starting out, I’d avoid Ruby and start with Typescript instead (or Python if you’re focusing on data). Though there are companies that still build on Ruby, they are fewer and further between.

Conclusions

Ultimately, the programming languages you choose to learn will depend on your goals and interests. Here’s a rough outline:

  • Python if you’re in to data, analytics, AI, ML
  • Typescript if you’re building for the Web (React, Node, NextJS, etc)
  • Swift / Kotlin for mobile (I’d stay away from React Native, etc as end-user experience is key)
  • Go for back-end server-based programs (where performance matters most)

By focusing on any of these languages listed here, you’ll be well-equipped to tackle a wide range of programming challenges and set yourself up for success as a software engineer.

And though choice of language matters, getting you development environment and your “dev loop” set up is one of the two biggest steps to having fun building things (which is the key to success in this industry).

--

--