Top 3 programming languages to learn for remote software development

Programming is one of the best skills one can have if they want to work remotely. Thus, there are a lot of people these days looking to learn to code in order to land one of these remote jobs. However, many are confused about which programming languages are the best to learn. This post will attempt to address this issue.

Who this guide is for

This guide is written for two types of audiences. First type of person is an experienced software developer looking to land his/her first remote software development job and their professional experience does not meet the the job market’s demands. This individual may need to learn a new technology stack in order to find a remote position. Second type of person is someone who wants to learn how to code for the purpose of finding remote work, and doesn’t know which programming language he/she should learn.

There are many conflicting advices on which languages to learn in order to find a remote software development job, and this guide will provide a straight-forward advice on which ones are the best to learn.

Before we start

There are a lot of programming languages out there that will provide remote work opportunities. However, I’ll only be providing three and they will all revolve around web development.

It’s important to note that the majority of remote software development work revolves around application development, specifically web applications and mobile applications. You can most certainly find remote work doing other types of software development like embedded systems, machine learning, desktop applications, and etc. But if you want to follow the fastest route to finding remote work, web and mobile development is the way to go.

The reasons I’ll be focusing on web development in this guide are due to the following:

1. The sheer number of remote software development work based on web development outweighs mobile development by a large margin.

2. For beginner coders, web development has a lower barrier to entry and is easier to learn.

The only exception to these two reasons are experienced mobile developers who already have a few years of experience under his/her belt. If you are one, you should ignore the advice given in this guide and start applying immediately to positions matching your specialty.

In this guide, I’ll also be providing the programming language and the accompanying web framework that you should focus on learning. Majority of the remote software development jobs require the applicant to be well versed in a framework for that particular language. And each language tends to have one main framework that is the dominant one. Focusing on the frameworks I suggest will give you the best return on investment when it comes to finding remote work.

Choosing a Language and Focusing

I’ll be listing 3 programming languages in this guide. Being competent in any one of them will allow you to find a well paying remote software development job.

That last part is important, being highly competent in one language. Do not, and I mean do not attempt to learn more than one. I won’t go too deep into the reasons why, but in the remote job market, it is way more advantageous to be an expert in one language than to be mediocre in two or three.

It’s difficult enough to become competent in one programming language. Don’t spread yourself too thin by attempting to learn more than one.

Setting Realistic Goals

This section only applies to those who are looking to learn to code. Experienced developers may skip this section.

For most remote software development jobs, you need to be very skilled at your craft. Meaning, if you’re just starting to learn how to code, it’ll probably take you around 2 – 3 years of professional experience to get good enough to start looking for remote jobs.

Despite the popularity of the “learn to code” movement and coding bootcamps promising that anyone can learn to become a professional software developer in 2 – 3 months, the reality is that it takes years to get good enough to “hold your own” so to speak in software development.

If you’re looking to learn to code so that you can land a remote job, and you’re not ready to invest at least 2 – 3 years of full time commitment, then you should stop reading right here and look for other ways to find remote work.

Ruby / Ruby on Rails

Ruby

Ruby is a general purpose programming language that was designed for programmer happiness. It features an elegant syntax that is easy to learn and read. Just look at a sample Ruby code below

Even if you’ve never written Ruby before (or even written a line of code before), you could probably guess what those 3 lines code does (hint: it prints out “I <3 Ruby”

While Ruby was designed to be a general purpose programming language, it’s most popular in its use as a web development language. Which brings us to…

Ruby on Rails

Ruby on Rails is a popular web framework created by David Heinemeier Hansson (DHH) back in 2005. It powers some of the most popular websites in the world including Shopify, Basecamp, Airbnb, SoundCloud, and etc.

Due to its highly opinionated nature, Ruby on Rails can be a bit difficult to learn in the beginning, but once you get the hang of it, it is an extremely productive framework where you can get a large amount of work done in a short period of time.

Ruby on Rails, despite being over 10 years old, continues to be popular with startups and large companies alike.

Why Choose Ruby on Rails?

Despite its slightly high learning curve, Ruby on Rails is one of the best web frameworks out there today. It comes “battery included”, giving you all of the tools needed to build any application you can think of.

Because of its highly opinionated nature (it just means that Rails expects you to do things a certain way), if you follow its conventions, you’ll be highly productive. This is why Ruby on Rails continues to be popular with startups even 10 years after its release. It allows startups to get to its Minimum Viable Product (MVP) quickly and also iterate quickly to meet market demand.

Go to any remote job board like https://weworkremotely.com and https://remoteok.io and search for job postings looking for Ruby on Rails developers. You’ll likely get a large number of results. If you want a remote job, you can’t go wrong by specializing in Ruby on Rails.

Finally, due to its sheer popularity, there’s a huge number of resources available for learning Ruby on Rails. The Ruby on Rails’s community also embraces a culture that’s very welcoming towards beginners. Thus if you’re new to programming, Ruby on Rails is a great choice.

Python / Django

Python

Python, like Ruby, is a general purpose programming language that is known for its simple syntax and ease of learning. Again, let’s look at the syntax below.

 

The code above defines a method called greet, passes in a parameter called name, and then calls the method 3 times with Jack, Jill, and Bob. This will print out Jack, Jill, and Bob onto the console respectively.

As you can see, the syntax is very clean, easy to read, and minimalistic.

Python, unlike Ruby which is used primarily in web development, truly is a general purpose programming language, being used in various different industries like game development, machine learning, scientific programming, and web development. If you learn Python, you’ll have access to tons of libraries that will enable you to do a lot of different types of work.

Django

Django is the dominant web framework in the Python world. It was created by Adrian Holovaty and Simon Willison in the fall of 2003. It is a popular web framework that powers popular websites like Pinterest, Instagram, Mozilla, The Washington Times, and Bitbucket.

One notable feature of Django is that it comes with a powerful admin panel
so that your users can manipulate data in your web application without you
having to build a custom admin panel yourself.

Why Choose Python and Django?

Both Python and Django are mature and stable technologies that have a large number of resources for learning. Python is used in a variety of industries so it’ll give you the flexibility that languages like Ruby won’t. Django is also a mature web framework that allows one to create just about any web application one can imagine.

Also, if you are already well-versed in Python, it probably makes sense to go straight into Django to avoid the step of learning another programming language. Django, while it doesn’t seem as popular as Ruby on Rails in the remote job market, still offers large amount of job opportunities in the market.

PHP / Laravel

PHP

PHP is a server side programming language used primarily in web development. PHP originally stood for “Personal Home Page” and was originally created back in the days when the web was much more simple. Due to it, the language did not contain the features to support the demands of the modern web as the web matured over the years.

Due to its origins in web development, PHP can be embedded straight into HTML.

Let’s take a look at some PHP code:

The above is an example where PHP is embedded directly into a HTML document. The above will print out a paragraph tag with text “Hello World” inside.

PHP has a bad reputation in the software development world, with lots of people calling it a terrible language. The first reason is due to PHP being originally designed as a scripting language for the web rather than as a general purpose programming language like Ruby and Python. Due to its original designs to be a simple scripting language, PHP lacked the features to meet the ever increasing technology requirements of the modern web. Because PHP wasn’t designed as a general purpose programming language, new features that are standard in other programming languages had to be added onto PHP later on.

The second reason for PHP’s bad reputation is due to the low quality legacy code that’s still running in the wild today. PHP is a very easy language to get started with, but this is where the problem begins. Due to its ease of getting started, lots of new programmers start developing with PHP and end up writing lots of bad code that’s a nightmare to maintain. However…

Modern PHP is very different. The language has matured, developers have learned from the past mistakes and write much cleaner and well designed code. Also, PHP offers many great web frameworks like…

Laravel

PHP offers many web frameworks to choose from but if you’re choosing PHP as your language of choice, you should go with Laravel. Laravel is essentially a copycat of Ruby on Rails, but written with PHP.

Laravel was originally created by Taylor Otwell and the framework calls itself “The PHP Framework for Web Artisans”. It offers a clean syntax and comes “battery included” like Ruby on Rails, offering tools out of the box to create any web application one can think of.

It has excellent documentation and a great community to help you learn the framework.

Why Choose PHP and Laravel?

PHP, due to it being literally “everywhere”, probably offers the greatest number of opportunity for job seekers. With PHP, you can work with not only database driven web frameworks like Laravel, but popular CMS systems like WordPress which powers around 26% of the web.

Laravel is also popular with startups and if you become well versed in Laravel, you’ll have an easy time finding remote work. Also, if you ever want to switch to other popular web frameworks like Ruby on Rails, you’ll be able to do so with ease due to the similarities between Laravel and Ruby on Rails.

Finally, with PHP being mature, there are plenty of resources out there for learning both PHP and Laravel.

Hey, how come my favorite programming language isn’t listed?

You may wonder why I didn’t list your favorite programming language in this guide. A few I can think of off the top of my head that provides plenty of opportunities for remote work are:

  • JavaScript / NodeJS / ReactJS / Various JavaScript libraries and frameworks
  • Java / Android
  • Object-C / Swift / iOS
  • Go, Rust, Elixir, Kotlin, and way too many to list…

All of the above are fine technologies to learn if you want to work remotely but I didn’t list them in this guide for many reasons.

For example, mobile development has a higher learning curve than web development. So for the purpose of helping readers have the easiest time finding remote work, I did not include mobile development in the list. If you’re a beginner developer, I advise against going the the mobile development route. If you’re an experienced developer with a few years of experience under his/her belt, feel free to go for it, but realize that you’ll probably have an easier time finding remote work with web development.

As for web development with Java, I did not include it in the list due to web development with Java being primarily dominant in enterprise software. Most remote friendly companies tend to be smaller startups rather than large corporations, and these smaller companies tend to stick to programming languages like Ruby and Python. If you really want to use Java and work remotely, look into Android development instead.

I did not list JavaScript and its various libraries and frameworks in the list due to the sheer fragmentation of the JavaScript community. The problem with choosing JavaScript as the technology choice for remote work is that the community has way too many things going on, making it difficult to figure out which technologies to focus on. For example, should you focus on ReactJS? Or backend development with NodeJS? If NodeJS, do you go with ExpressJS or SailsJS?

Also, the JavaScript community moves way too fast. If you don’t keep up with the JavaScript community for one week, you’ll fall behind the latest trends. Contrast that with the Ruby on Rails community, which is much more stable and easier to keep up with, which in turn makes it easier to focus and learn. Remember back to when I said that you should pick one technology stack and focus. Technology stacks I listed in this guide, despite them being somewhat older and mature, are easier to focus on and learn compared to JavaScript technologies.

Finally, the chances of you landing remote work with just a JavaScript framework/library like ReactJS, Angular, and etc. are pretty low unless you’re really really good at HTML/CSS. Most jobs you’ll see on remote job boards will list JavaScript technologies along with web frameworks like Ruby on Rails, Laravel, and etc. In my experience, most positions are fine with you not having much experience with specific JavaScript libraries as long as you know the main web framework that the company is using like Rails and Laravel. In many cases, they’ll be using something like ReactJS along with Ruby on Rails and will be okay with you learning something like ReactJS on the job as long as your Rails knowledge is solid.

Why not the new shiny languages that are on the rise like Go, Rust, Elixir, Kotlin, and etc.? Well, because they are too new. You can certainly find remote jobs with those languages, but due to them being new on the market, you won’t find as many job opportunities using those programming languages. Also, there aren’t as many resources for learning these new technologies compared to more mature ones like Ruby and Python. Due to these reasons, I’ve left them out
of the list.

So at this point, you might be asking yourself, which language do I pick? Ruby, Python, or PHP? Honestly, it doesn’t matter at the end of the day. What’s more important is that you pick one and get damn good at it.

If you have any further questions about picking a programming language to find remote work, feel free to email me at chris0374@gmail.com. Cheers and good luck!

About the Author Chris Jeon

Software developer currently focusing on Android development.