How to Learn Backend Development as a Frontend Developer ?
Tags: frontend, backend, fullstack, webdev
Published: 2021-10-30 05:37:52

In today’s world, most frontend developers want to transition in becoming a full-stack developer and the best way to become a full-stack developer is to learn about Backend Development. We’ll give you a practical and hands-on breakdown of what you should be doing to become good at backend development.

## HTML, CSS & JavaScript
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qo3hvzrypbvl4ji35mj3.png) 
As we are assuming that you are already a frontend developer you might be good at HTML & CSS. You may not be a master in JavaScript but you might know enough JavaScript to survive the frond-end tasks. As a front-end developer, you might have mostly used JavaScript to fetch the data from an API and show them in your web application.

## Learn About APIs
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n0gvk6dcrvnzb4nm79lo.png)
You might have an overview of how an API works you create a get or post request in your JavaScript you magically get the data in JSON or XML format to your JavaScript which you now cleanse and make it appear in the HTML so that the user can now see the data, but have you ever considered what happens on the other side. The API also has a logic for it running on a remote computer in a server farm (most likely), once you send a request it fetches the data from a database or has to run logic to get the requested data and them package it into a JSON or XML and then send it to the computer which has requested.

## What exactly is a backend?
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rdggg324r2r89gno82fk.png)
Backend itself is a computer that is running a script, you might be wondering how is it different from the script that you are running on the client computer. Here’s the difference on the client side the script is running inside a browser that could be Chrome, Edge, or Firefox, where the access to OS level is denied and it’s restricted to a certain set of actions as well, but in the case of the script running of the backend server, it has access to complete OS level scripts and APIs. Your backend computer can open a port from the script that it’s running and respond to the API requests from that port itself.

## Step 1: Choose and Learn a Backend Programming Language
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p948j7os13f0ykebfnlj.png) 
Now that we have established the base required to start with the backed in Step 0. Now it’s time to pick a language and get a good grip on it to write the backend scripts for your application. As you are transitioning from front-end you have a good understanding of JavaScript, then the best option would be to learn Node.js. Node is not a programming language but a runtime that gives JavaScript the superpower to access the whole Operating System and other parts of the computer. There are also many other languages that you can choose from. Here’s a good list of languages that you can consider, in the case where you don’t want to learn Node for the backend.

1. Rust
2. Go
3. C# (Pronounced as C Sharp)
4. Java
5. Python
## Step 2: HTTP / DNS / Networking
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rv6acayv6w2vkcgbdk3b.png)
This is the most crucial part that will determine your power as a backend developer. You must have a good understanding of HTTP protocol and how it’s everywhere on the internet. You must also learn about DNS (Domain Name System) and DNS Lookup which is the process of obtaining the IP address from the given domain name, and a bit of Networking basics will surely separate you from the rest backend developers, as you can now swiftly understand how the architecture of the internet is and functions.

## Step 3: Learn about Databases
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ay1453hp4p8v7i0npljk.png)
The database is like the backend to the backend that you building because that’s the place where all the data that you collect or send is stored, if your website does not have a database, then your website is most probably a static website where the content is already preserved in the HTML document itself. There are two different types of databases currently and even to use them you must be familiar with a different language called SQL (Structured Query Language) (pronounced as Sequel) to communicate with the database, as mentioned the two types of database are SQL and NoSQL Databases, even though they are a lot different on how they store and share data, but they do the same thing at the end of the day. So you can choose anything between the two and start building a database.

## Step 4: Build a lot of Applications
Now that you learned all the different chunks to build your backend, now it’s time to get in the action and build as many projects as you can and experiment with different ways you can build. Building applications will strip the fear and bring in the confidence that you can make a backend on your own.

## Step 5: Deployment
Deployment is a different part of the whole system of backend technologies, now that you built your applications it’s time to host them and get to the internet. Many beginners tend to go down the rabbit hole of SaaS hosting services like Heroku and Vercel, instead, you must pick an IaaS (Infrastructure as a Service) like Amazon Web Services, Google Cloud Platform, and Microsoft Azure. Now when you pick an IaaS you’ll have the raw infrastructure as you have to manage all the steps and setups to host, you’ll get a very good idea of IP address, security issues, and Port numbers, and you can manage the whole deployment pipeline by yourself.

## Step 6: Web Security
Now that you can build and host your backend server it’s time to get the knowledge of the different kinds of security vulnerabilities. When it comes to web security, you mostly have to worry about data validation, as always said “You can never trust User’s Data”. You must be aware of different attacks which are possible when don’t validate the user’s data. You can also consider sandboxing your backend so that you can prevent any kind of leaks or bugs that may affect the entire application.

## Conclusion
Completing all the steps may take a lot of time, It mostly comes the how much time you can give and how structured are you while learning all the stuff. It may take from 2 – 6 months to get all the steps right if you followed them. If you want to learn all this in a structured way you should consider taking our [Full Stack Learning Path](https://codedamn.com/learning-paths/fullstack).