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.
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?
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.
Why are they good to start with? (Or, one language to rule them all)
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 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.
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 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.
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.
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.
So, if you’re looking to learn web development and the most used programming languages, look into our Web Development bootcamp. You won’t be disappointed!