Who is a back-end programmer and how to become one?
Tags: programming, php, node, javascript
Published: 2020-06-06 00:08:22

Hey there DEV.to community!

I've seen many people confusing the concepts of web development and can't figure out what are the differences between back-end programming and front-end programming. Here I will describe what is the difference between these two briefly and focus on how to become a back-end programmer and what are the technologies used for this purpose.

# What is web development after all?

Web development is the job which in you design applications that can be accessed via internet or any other networks and be visible using browsers. Usually this task takes two parts, one being front-end and the other one is back-end.

Front-end is where you use HTML, CSS and JavaScript to design your web pages' presentation. This is where all the beauty happens and this part is responsible for showing the data grabbed from back-end and handling user interactions.

While front-end is responsible of showing the data, back-end is where you generate the data needed for it and this involves working with a programming language and a database (most of the time).

# How can someone become a back-end programmer?

Talking about the front-end you have no choice except for HTML, CSS and JavaScript which you have to know all three of them since nothing else can replace these three at least for now. Yet there are other technologies you can use which will be converted to these three or help you design your web pages with more ease like preprocessors, libraries and frameworks. But when it comes to back-end I believe it is way more vast and your choices are countless if not unlimited.

A back-end programmer should know at least one programming language and usually a framework to ease their path since frameworks provide you some features that would take you some time to rebuild, and one database so they can store their app's data in it. There are tools as well which can be used to enhance your programming experience.

Here I will list some of the most known technologies you can learn to start your back-end career or expand it.

# Web servers

Web servers (aka HTTP Server) are a crucial part of every back-end programmer's knowledge. Web servers run the code you wrote and serve it on to the web so it can be accessible. You usually do not need to know how they actually work (although it is better to) but it is better to know how they work on the surface so you can setup you application on them. Here are some of the most known ones:

![Apache](https://dev-to-uploads.s3.amazonaws.com/i/0bcbeqi4qppm8lctiat3.png)

## Apache

Apache is one of the most used web servers ever specially on Linux operating systems (it can be installed on Windows, macOS and BSD as well). It is an open-source project which is usually used for running PHP scripts on it although it can run other programming languages such as Python if configured.

For further information you can visit Apache's official website at: [https://httpd.apache.org/](https://httpd.apache.org/)

![IIS](https://dev-to-uploads.s3.amazonaws.com/i/j0jecds8xbvkivxl5bsb.png)

## IIS

IIS (or Internet Information Services) is a powerful web server developed by Microsoft but it is not open-source and is a commercial software and can only be used on Windows. IIS is usually used for serving .NET applications. It can serve PHP and some other languages as well.

You can check IIS's official website at: [https://www.iis.net/](https://www.iis.net/)

![NGINX](https://dev-to-uploads.s3.amazonaws.com/i/2yy0fwa5e5gk9kp09ixx.png)

## NGINX

NGINX is yet another powerful web server mostly used on Linux servers and is open-source and free. It is usually used as a reverse proxy on top of Apache but it can be used as a stand-alone web server as well.

You can check NGINX's official website at: [https://www.nginx.com/](https://www.nginx.com/)

![LiteSpeed](https://dev-to-uploads.s3.amazonaws.com/i/r7x6z4du82cvhq49o6eh.png)

## LiteSpeed

LiteSpeed is said to be one of the fastest web servers ever. It is not free and the server owner has to pay for it to be able to install it. It is usually used as an enterprise alternative for Apache meaning to serve PHP websites.

Check LiteSpeed's official website at: [https://www.litespeedtech.com/products/litespeed-web-server](https://www.litespeedtech.com/products/litespeed-web-server)

# Web hosting control panels

As a back-end programmer especially when deploying your application you'll be provided with a panel called web admin panel or web hosting control panel which gives you access to your root directory to upload your application and to create your database and have access to it. Sometimes you have to do these manually from the server admin but these panels will make it much easier. As a developer (front-end included) you won't need to learn how to install or configure these panels but you better know how to use them. Here are some of the most popular ones.

![cPanel](https://dev-to-uploads.s3.amazonaws.com/i/83zp6d5xbajli8uj9kvm.png)

## cPanel

I can say cPanel is one of the most advanced panels ever and is used widely by PHP hosting providers. cPanel itself is not free (do not confuse it, you won't need to pay for it, you will only use it and it is already paid and installed by the server admin).

Here is cPanel's official website: [https://cpanel.net/](https://cpanel.net/)

![DirectAdmin](https://dev-to-uploads.s3.amazonaws.com/i/iumnmkvcgy3kg2h0dn5k.png)

## DirectAdmin

DirectAdmin is the second most used PHP hosting control panel I believe. It is also a paid software. DirectAdmin has fairly less features than cPanel but to be honest it does all of the job usually needed.

Here is DirectAdmin's official website: [https://www.directadmin.com/](https://www.directadmin.com/)

![Plesk](https://dev-to-uploads.s3.amazonaws.com/i/pk8ue3rk3m7xx42k0z5n.png)

## Plesk

Plesk is a web hosting control panel used both on Linux and Windows servers.

You can find Plesk's official website here: [https://www.plesk.com/](https://www.plesk.com/)

# Programming languages and their frameworks

I am not going to list everything here since it will be an endless list rather I will list some famous ones here to start it which would worth your time (not by order though), I'm also considering the job opportunities here.

![PHP](https://dev-to-uploads.s3.amazonaws.com/i/p07a2qud3r6u13sinl6r.png)

## PHP

PHP is a programming languages used to empower many websites including Facebook, Yahoo and WordPress.com.

PHP is a dynamically typed language you can learn and it is fairly an easy one to begin with.

PHP and its community are pretty mature so you will find thousands of resources to learn PHP for free. Here are some of them:

PHP's official website: [https://www.php.net/](https://www.php.net/)

W3Schools: [https://www.w3schools.com/php/default.asp](https://www.w3schools.com/php/default.asp)

Tutorialspoint: [https://www.tutorialspoint.com/php/](https://www.tutorialspoint.com/php/)

![Laravel](https://dev-to-uploads.s3.amazonaws.com/i/mib2qstpq1ptyx800jsx.png)

### Laravel

Laravel is one of the most discussed frameworks nowadays. Laravel is written in PHP and makes PHP development really fun. Laravel has a huge ecosystem and a really big community behind it. One of the success points of Laravel was and is its pretty and complete documentations and their effort on making learning Laravel easy thus there are thousands of resources to learn Laravel beginning with Laravel's official website at [https://laravel.com/](https://laravel.com/), and Laracasts [https://laracasts.com/](https://laracasts.com/).

![Symfony](https://dev-to-uploads.s3.amazonaws.com/i/mvaqj5y8ik7xv5mcijhd.png)

### Symfony

Symfony is a mature PHP framework used by many applications and its packages are used by Laravel as well, so it becomes the father! Symfony is a bit harder to learn due to its learning curve but is still worth it if you spend your time on it.

Here is Symfony's official website: [https://symfony.com/](https://symfony.com/)

![C#](https://dev-to-uploads.s3.amazonaws.com/i/ajjah0n1pamr311w3vz8.png)

## C#/.NET Framework

C# is the programming language mostly used on Windows hosted application which uses .NET framework. .NET Framework and C# are highly bounded with each other so with C# you'll have probably no other choice than using .NET Framework. Microsoft recently published .NET Core which can be run on other platforms such as Linux as well but C# is mostly used on Windows servers run by IIS as mentioned before.

![Node.js](https://dev-to-uploads.s3.amazonaws.com/i/kew0wfekcbk8gc53anma.png)

## JavaScript/Node.js

Node.js is a software which enables you to run JavaScript on the server-side. Meaning that you can use JavaScript for your back-end as well as your front-end if you desire to. Many start-ups are using Node.js as their back-end since it is fairly easy to set it up and run it on almost every platform available including Linux, Windows and macOS.

Here is Node.js's official website: [https://nodejs.org/](https://nodejs.org/)

Learning JavaScript/Node.js is really easy since there are billions of tutorials on YouTube. For a texted tutorial you can visit W3Schools Node.js tutorial at [https://www.w3schools.com/nodejs/](https://www.w3schools.com/nodejs/)

![Express.js](https://dev-to-uploads.s3.amazonaws.com/i/ia4o7le1skesabkkgxm9.png)

### Express.js

Express.js is a framework which makes the headache much less painful when writing a Node.js back-end application. It provides you useful tools like routing to write your application in a much faster pace.

![Python](https://dev-to-uploads.s3.amazonaws.com/i/5j1ho1qdjk2clzgv9q9y.png)

## Python

Python is probably one of the most heard programming languages ever due to its simple syntax. Python can also be used to write back-end application abd is mostly used for AI (Artificial Intelligence) or ML (Machine Learning) driven applications, so if your new app depends on AI or ML, Python is the first choice you should consider.

To start learning Python you can visit Learn Python at [https://www.learnpython.org/](https://www.learnpython.org/) or W3Schools Python Tutorial at [https://www.w3schools.com/python/default.asp](https://www.w3schools.com/python/default.asp)

![Django](https://dev-to-uploads.s3.amazonaws.com/i/8rakrjy8ti628l3jvink.png)

### Django

Django is a framework written in Python and famous for rapid development and ease of use. Learning it might take some time but it is worth it for sure.

Here is Django's official website: [https://www.djangoproject.com/](https://www.djangoproject.com/)

![Ruby](https://dev-to-uploads.s3.amazonaws.com/i/g42b4b9o59amq40dbx0n.png)

## Ruby

Ruby is a programming language known for its simplicity and a much easier syntax compared to other languages. It is also widely used by start-ups. You can start to learn Ruby on Tutorialpoints here at [https://www.tutorialspoint.com/ruby/](https://www.tutorialspoint.com/ruby/)

![Ruby on Rails](https://dev-to-uploads.s3.amazonaws.com/i/63d9yle4ooc239ylgszq.png)

### RoR

RoR or Ruby on Rails is what made Ruby a huge deal and is the main reason of Ruby's success. RoR is a framework written in Ruby that is really fast to develop your application in. There are several websites using RoR just like this very website DEV.to. Here is RoR's official website: [https://rubyonrails.org/](https://rubyonrails.org/)

# Databases

A database is a software that stores and manipulates your data and you can retrieve them later. A database usually doesn't force which programming language you should use to connect to it and they are usually installed on most major operating systems.

![MySQL](https://dev-to-uploads.s3.amazonaws.com/i/yqu4qzkdyxa020x9pj78.png)

## MySQL

MySQL is one of the most used databases ever especially by PHP applications such as WordPress, WHMCS, Joomla, Drupal, and ...

MySQL is free and open-source. MySQL is a RDBMS (Relational Database Management System ( check here for more details: [https://www.tutorialspoint.com/sql/sql-rdbms-concepts.htm](https://www.tutorialspoint.com/sql/sql-rdbms-concepts.htm)) and uses SQL. You need to know SQL language to work with this database.

Here is MySQL's official website: [https://www.mysql.com/](https://www.mysql.com/)

You can checkout W3Schools SQL tutorial for this matter at [https://www.w3schools.com/sql/](https://www.w3schools.com/sql/)

![Microsoft SQL Server](https://dev-to-uploads.s3.amazonaws.com/i/uk7hni78awwlg77la8ve.png)

## Microsoft SQL Server

MS SQL Server is another RDMBS that uses SQL language. MS SQL Server is a powerful database but it is not free and open-source and is a paid software.

Here is MS SQL Server's official website: [https://www.microsoft.com/en-us/sql-server](https://www.microsoft.com/en-us/sql-server)

![MongoDB](https://dev-to-uploads.s3.amazonaws.com/i/pn3hp10zgfqh7bslq5f3.png)

## MongoDB

MongoDB is a relatively new database that is not a RDBMS and doesn't use SQL but instead it uses BSON (binary JSON). To store your data in MongoDB or to retrieve your data you need to learn its query structure.

To learn MongoDB you can start with its official documentation at [https://docs.mongodb.com/manual/tutorial/query-documents/](https://docs.mongodb.com/manual/tutorial/query-documents/)

![Git](https://dev-to-uploads.s3.amazonaws.com/i/tanxbfpvtcv0v4mse29y.png)

# Git

Git is not a programming language neither a framework. It is a tool used by all the programmers (despite the field they are working on) to version control their codes. Git provides you awesome ways to manage your code and its versions to keep track of your work. In case you messed something up you can easily get back to a previous commit.

Git is just a tool and there are many websites providing free and paid Git hosting for your code like [GitHub](https://github.com/), [BitBucket](https://bitbucket.org/) and [GitLab](https://gitlab.com/).

To start learning Git you can checkout Atlassian's (the company behind BitBucket) Git tutorial at [https://www.atlassian.com/git](https://www.atlassian.com/git).

---

Hope you enjoyed!