Which programming language should I learn and why?

If you are thinking about learning a programming language, or even want to become a (web) developer, there are basically two big, interrelated, hurdles that you need to overcome.

The first is, which language should I learn, and the second, where do I even begin? Considering the fact that the internet is not well known for reaching consensus (think of Godwin’s law), this article will help you get started.

Asking The Right Questions

You’re looking to learn a web programming language. That means you fall into one of two camps. Either you’re a new programmer looking to learn your first language, or you’re already a programmer looking to pick up something new.

Regardless of where you stand, you have to ask yourself a few questions.

  • Am I looking to learn this language to further my career?
  • Will this language advance those goals?
  • What companies are working with this language?
  • Do I want to work with those companies?
  • What kind of ecosystem does this language have?
  • Do I enjoy working with this language?

There are definitely more, but you can get a picture of the line of thinking you need going into this decision. It’s an important one, and you’re probably going to be spending a lot of time working with whichever language you choose.

But first, why should you learn a programming language at all?

Why Should I Learn A Programming Language?

Imagine you could not write or understand English, but live in an English-speaking country. It will be hard to find a job, or friends or even buy groceries. Code in that respect, is the predominant language of today: it simply governs most processes around us. Learning how to code therefore empowers you, and helps you to better understand and engage with the world around you.

Secondly, when people say: “think like a programmer”, they refer to the ability to understand a problem and look at it from an alternative perspective. In other words, learning a programming language will teach you how to think. Similar to languages, code uses abstraction and metaphors to make sense of the complex processes that run sophisticated computer programs. In the end, learning a programming language teaches you how to be a better problem solver, which is a lifetime skill in itself.

Last but not least, programmers have a very favourable market position. The software market has blown up and keeps on growing. There are about 27 jobs per developer and the average starting pay is around 35,500 euro per year¹. This means your chances are pretty high to find a well paid job to hone your skills further.

Ok, it’s fairly straightforward that learning a programming language has quite a lot of advantages. But where and how do you start to learn one?

What is HTML, CSS and JavaScript?

HTML stands for HyperText Markup Language. It basically tells you how a website is organised: what the content is, what the images on your website are and where your users can navigate to. In an hour or two of learning HTML, you’ll be able to write your first few lines of it.

CSS, or Cascading Style Sheet is HTML’s best friend and gives it its flair. CSS is used for general styling of a webpage and for the layout. The syntax of CSS is also fairly simple once you understand the basics.

JavaScript is HTML and CSS’s weird uncle. Whenever JavaScript comes to the party, everything starts to move and interact with one another. So think about JavaScript as the language that makes a web page dynamic. It helps you to login on social media, to share content, to make cool animations and even send messages.

Why are they good to start with? (Or, one language to rule them all)

As said, HTML, CSS, and JavaScript are the three languages essential for understanding the modern web. In particular JavaScript will make you highly employable, because it’s everywhere. All the big companies rely on it, such as Facebook, Uber, Airbnb and Instagram.

JavaScript can be used both on the front-end and back-end. This means that if you would like to learn how to make a beautiful web page that is animated and tells a compelling story; JavaScript is the one. If you’re interested in how a server operates and how data is stored: JavaScript is (still) the one. And if you want to learn both: it’s JavaScript again.

The Top Contenders

When it comes to web development, there are some clear favorites. These are all languages that have a strong history and are being put to use by top companies in the tech world. Any one of them could be a good choice, but which is best?

PHP

PHP is the original language of the Web. In the early days of dynamic content, PHP was the only real option. It was easy to get started with. It still is. PHP is also free and open source so you can get started without investing any money. When PHP was first released, that was rare.

It’s easy to see why PHP caught on so quickly, but what about now? PHP is still easily the most popular language on the Web. Around 80% of websites are built with it, and it has a thriving community built around platforms like WordPress, Drupal, and Laravel.

So, PHP is the clear winner, right? No. PHP has its problems, and they’re big ones. PHP is not the most well-designed language. It’s inconsistent, awkward, and generally pretty sloppy.

To make matters worse, PHP’s friendly learning curve has made it a bastion for sloppy and unprofessional code. As a result, PHP has earned an unpleasant reputation as a difficult to maintain security nightmare. Popular PHP platforms, like WordPress, are frequent targets for attackers.

PHP is no favorite in the startup world, so you’ll have a hard time finding work in a cutting edge environment. There is plenty of PHP work to be found, but it usually pays less than other languages, and chances are, you’ll be spending most of your time maintaining old codebases or slapping together quick and cheap websites.

Ruby

Ah Ruby, savior of developers everywhere. The end of PHP’s unquestioned dominance came with the development of Ruby on Rails. Rails enabled developers to build robust web applications quicker and more simply than ever before. It immediately started to win over developers. It wasn’t long before Rails dominated the startup world.

It is in Ruby’s design goals to make the lives of developers easier, and it shows. Ruby is clean, simple, and easy to read.

Ruby is a fully object-oriented language. Everything in Ruby is an object, even numbers. Ruby is also loaded with helper methods that can simplify your code. They can also feel strange to experienced programmers because it doesn’t conform to the same conventions as most other languages.
Ruby also has its limitations. It executes slowly compared to many other languages. Combine that with the size of Rails as an application, and you’ve got potential scaling problems.

Right now, Ruby is still strong, but it’s not as strong as it once was. Rails is no longer the de-facto choice for startups. It’s still very popular, but other options have caught up and eaten into its market share.

Rails and Ruby still have a very strong ecosystem with loads of developers and jobs, but it’s also past the peak of its popularity.

Python

Python is a general purpose language. It is huge with Linux and the open source world, but developers use it for all sorts of projects.

Python is known for being simple, straightforward, and logical. The Python way of doing things is often referred to as the “Zen of Python” because everything is usually calm and clear. Python has very few strange idiosyncrasies.

In the web development world, Python powers some of the largest sites in the world. Interestingly enough, it never gained as widespread adoption as the likes of Ruby and PHP.
Several great frameworks like Django, Flask, and Pyramid are built with Python. Like the language itself, they tend to value explicit configuration.

The job market in Python is on the upswing, but only a small portion of that is in the web space.

JavaScript

It’s time to address the 800-pound gorilla. JavaScript is the modern web. It has the unique distinction of being the only web language that can be used on both the front and back end.

JavaScript is easy to get started with. Its syntax isn’t as clean as Ruby or Python, but it is easy to understand. You can also experiment with JavaScript in the browser on the front end without having to worry about frameworks, servers, or any of the usual back-end concerns.

NodeJS has changed the landscape. It’s versatile. NodeJS can be used as part of the MEAN stack, which works similarly to frameworks like Rails and Django. It can also be used to develop custom applications from the ground up. NodeJS has even edged into the desktop space by enabling the developer to make custom cross-platform clients for web applications.

NodeJS makes use of asynchronous programming, allowing it to run much more quickly than many other back end options.

JavaScript jobs are on the rise nearly everywhere, including startups. It’s important to consider that even applications with a back-end built in a different language still use JavaScript on the front.

Which One?

It’s hard to point to only one language and call it the “best.” What’s the best for one person may not be great for someone else. Programming languages are tools, and it’s important to use the best tool for each job. Using one tool for every job may not work so well.

Only one of these languages can handle just about every job on the web. JavaScript is ubiquitous. If you’re planning on working in web development, you need to know some JavaScript.

JavaScript is growing. NodeJS and the MEAN stack have revolutionized server side development, and adoption of back-end JavaScript is only increasing.

So, if you’re looking for a language to learn, look into JavaScript. You won’t be disappointed.

Join IronhackReady to join?

Follow the steps of more than a thousand career changers and entrepreneurs that launched their careers in the tech industry with Ironhack's bootcamps.

See course detailsBrowse our campus

Related blog posts about Web Development

View more articles on our blog
Stay up to date on our latest news and events. Sign up now!
Please, type your name
Please, type your last name
The email is not valid. Please, try again