Thanks to the internet, anyone in the world can access world-class resources to learn how to code for little or no money.

While that’s great for anyone who wants to become a software developer, it also creates a challenge — especially if you’re getting started. Every click leads to a new recommended article, tutorial, or YouTube video to learn from.

I’m familiar with the issue through my work at Microverse, an online coding school that doesn’t charge you anything until you get a job — no matter where you’re from. Many of our full-time students applied after being overwhelmed by the number of resources available to them. They were easily distracted, started learning multiple languages, and never mastered anything.

The best way to not get distracted is to hyper-focus on mastering one language. Why? Through my experience working with new developers from more than 50 countries, I can confidently say you have much higher chances of getting a software engineering job when you’ve mastered one language instead of knowing a bit of 10 different ones.

Not sure what language to focus on? You’re in luck — this article is for you.

Not sure where to start? Learn a general-purpose language.

I recommend that any new developer who doesn’t know what to start learning pick a general-purpose programming language, because they’re used widely and not limited to one domain.

Python

Python’s simple, straightforward syntax makes it a great general-purpose language to master. The language features a dynamic type system, automatic memory management, and supports multiple programming paradigms like object-oriented, functional, and imperative. Many application domains use its comprehensive standard library.

Web and desktop applications, servers, machine learning, and artificial intelligence applications all use Python. It continually ranks in the top programming languages each year, with last year getting the “Programming language of the year” award in the TIOBE Programming Community Index for the highest rise in ratings. I imagine it will rise even more in 2019.

Number of available jobs as a Python developer on Indeed.com: 66,000+

JavaScript

According to the annual developer insight survey on Stack Overflow, over 70% of all developers use JavaScript. It’s versatile, can be applied in almost any software field, is one of the primary front-end languages of the World Wide Web. JavaScript also enables interactive web pages and is essential to most web applications.

JavaScript is a multi-paradigm language and supports multiple programming styles from object-oriented to functional. It also has a vast, rapidly expanding number of libraries, including some back-end servers. It’s so popular that it even has frameworks in fields where it’s not the best option, such as in game development and virtual reality.

Number of available jobs as a JavaScript developer on Indeed.com: 40,000+

Ruby

Like the other languages, Ruby supports multiple programming paradigms like object-oriented, functional, and imperative. It also features a dynamic type system and automatic memory management. Ruby is mostly used in web applications with the Ruby on Rails framework, but it’s also used in back-end servers and databases.

One of Ruby’s greatest assets is its friendliness towards beginners. It’s one of the most forgiving languages on the list — you’ll still be able to compile and run your program until a problem appears. It’s also easy to learn because its syntax is close to spoken language, and it can do what other languages do in much fewer lines of code.

Number of available jobs as a Ruby engineer on Indeed.com: 9,000+

Java

Java’s famous slogan is “write once, run anywhere” as it runs on any platform that supports it. Java is one of the most widely known languages among new developers, and it’s the second most used language on Stack Overflow.

Java is a multi-paradigm language that is class-based, object-oriented and designed to have the least implementation dependencies. Due to its structure, it has a wide array of uses across application domains. One of its most well-known uses is developing applications for Android, but it’s also popular for desktop, web, server, and network applications. While Java’s syntax can be daunting at first, mastering it can be well worth it for landing your first job as a developer.

Number of available jobs as a Java developer on Indeed.com: 68,000+

Have a specific field in mind?

If you already have a specific goal of working on machine learning, becoming a mobile developer, or joining a startup, consider mastering a language specific to that goal.

Machine learning

According to a report on GitHub, Python was the most used language for machine learning in 2018. Combine your Python knowledge with the TensorFlow library, and you’ll have put yourself in an excellent position to land an exciting job related to machine learning.

The R programming language would be the next best choice for machine learning. It’s the most effective for analyzing and manipulating data for statistical purposes. It also offers numerous packages that make implementing machine learning algorithms easy.

Mobile development

If you’re interested in developing mobile apps, you’ll have to decide if you want to develop for Android or Apple devices.

Java is your best bet for developing on Android. Mobile Java development is different than generic Java, though, due to the limited power of smartphones. For example, a regular Java program runs until you shut it down, while an Android app can be shut down at any time if it’s not running in the foreground.

On the iOS side, I recommend you learn Swift, Apple’s official language for iOS, macOS, and other code written for Apple products. Some people might suggest Objective-C because you can create graphical user interfaces and feature-rich frameworks, but I’d opt to learn Swift because it’s easier to learn, easier to read, and endorsed by Apple themselves.

JavaScript is another good option for mobile development. Combined with HTML and CSS, you can build apps that can be converted to native apps using Cordova. Another example is the .NET stack, which can also be used to build apps and convert them using Xamarin. Of course, these examples highlight the importance of learning a general-purpose language even more.

Startups

If you know you want to build or join a startup, nothing beats knowing Ruby and Ruby on Rails. Ruby is friendly towards beginners and allows developers to prototype quickly, which makes it an excellent choice for the fast-paced startups.

At Microverse, we’ve designed our curriculum to maximize the chances that our students get great jobs because we don’t earn anything until they’re employed. For that reason alone, our curriculum focuses on JavaScrip, React, Ruby, and Ruby on Rails to help our students get jobs at startups.

Which languages to avoid?

There are many other languages to choose from. Some of the most popular ones now include Go, Scala, TypeScript, C++, and Rust.

However, if you’re starting to learn software development, you should avoid most of them. Many languages are complex, advanced, or too focused on a single application domain.

To summarize:

  1. Hyper-focus on mastering one language instead of learning a little bit about several languages.
  2. If you don’t know which language to start with, pick a general-purpose language.

Don’t stress out on which one you should choose because there are jobs for every language. What matters most is your motivation, determination, and ability to focus on learning and mastering your chosen language.

Best of luck!