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.
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.
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).
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 (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 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/
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/
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/
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
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.
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/
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/
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/
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 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/
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/, and Laracasts https://laracasts.com/.
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/
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.
Here is Node.js's official website: https://nodejs.org/
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 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.
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/
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/
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/
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 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) and uses SQL. You need to know SQL language to work with this database.
Here is MySQL's official website: https://www.mysql.com/
You can checkout W3Schools SQL tutorial for this matter at https://www.w3schools.com/sql/
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
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/
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.
To start learning Git you can checkout Atlassian's (the company behind BitBucket) Git tutorial at https://www.atlassian.com/git.
Hope you enjoyed!