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’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+
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’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.
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.
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.
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.
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.
- Hyper-focus on mastering one language instead of learning a little bit about several languages.
- 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!