When you go on Youtube, you watch videos about different things ranging from cooking shows, makeup tricks to fashion hacks e.t.c. If you find any video interesting you like and dislike it if you do not like the video; you also go ahead to comment and subscribe to their channel so that whenever a new video is uploaded you will be notified. All these data about each channel- who liked, commented, disliked e.t.c are not saved on your phone, it is impossible! The backend development handles all these data while frontend development displays this data in a user-friendly way. Backend development is where the magic happens; the backend developer handles behind-the-scenes activities that take place while performing a function on the website or application. If you are new or starting out in backend development this article is for you, keep reading and watch out for the learning roadmap for backend development.
General knowledge of the internet, how it works, Operating System and Basic Frontend Development knowledge:
Just like the frontend developer, a backend developer builds websites so it is advisable and will be of good help to know about the internet and how it works behind the scenes, what is HTTP/HTTPS, working on browsers, DNS working, and what is domain name and hosting. Backend Developers work hand in hand with frontend developers, most of the time backend developers work on already existing codebase so having a little knowledge about frontend will make life easier for you.
Learn a Backend Programming Language:
There are different programming languages in the backend and it is easy to want to learn more than one. When deciding which programming languages to go for pick the languages that are high in demand to avoid having a skill that is not useful. Examples of some backend programming languages are Java, Javascript, Ruby, Python, C#, PHP e.t.c.
Learn a framework:
Apart from programming languages, it is advisable to go for frameworks that are not just popular but high in demand. Example of frameworks:
- Django- python framework
- C#- Asp.net
- Ruby- Ruby on rails
- Node.js- ExpressJS
Learn version control:
This is a very important tool in tech because it helps developers handle changes over time, for example, version control gives information about the changes made in a code and by whom. It is also wonderful for saving projects. Examples of version control are GIT, GITLab e.t.cLearn Database:
At the beginning of this article, I used Youtube to paint a picture of how back-end development works. The Database is the brain of any website. Whenever you search for someone’s channel on Youtube the Database is responsible for fetching the information about that channel and returning the outcome. There are two types of Database: - SQL-Structure Query Language Database: They are known as Relational Databases. They are called Relational Databases in terms of relations which are nothing but tables which means there are different tables and relations between tables. Examples of SQL Databases are SQL, MySQL, PostgresSQL e.t.c - No SQL Database- They are non-relational Databases. Examples are MongoDB, GRAPHQL, RethinkDB e.t.c.Learn API:
API stands for Application Programming Interface. It is a mediator between services that allows them to interact with each other. For example, you search for a name on Youtube the API tells the app that you are looking for this name and the database fetches all names related to the name you are searching for. Some of the APIs you should know about are: - REST
- JSON
- SOAP
Learn Caching:
Caching is the method used to store the data in a cache (temporary storage location)making the data accessible whenever needed. An advantage of caching is to increase the performance of data retrieval i.e. making data retrieval faster and easier. Examples of caching techniques and tools: - CDN
- Server Side
- Client-Side
- Redis
Learn Testing:
Backend testing is very important and if not done might lead to data corruption, data loss, or deadlocks. This method checks the functionality of the server-side, ensuring it is working effectively. Example of testing methods includes: - Integration Testing
- Unit Testing
- Functional Testing
Learn System Design:
You need to understand some level of System Design Architecture since you are writing code on an existing codebase. This will help you develop a new feature to make your code effective. Below is the list of different design patterns you should know about. - Singleton
- Factory
- Observer
- Decorator
- Adapter
Learn Security Compliance:
As a backend developer you need to be security conscious this is because Cyber Attackers await information from customers that is why you have to employ authentication methods that will be used to verify the identity of a user or device who wants to access resources, data, or applications. The authentication phase provides a user identity to the security system. Some of the methods used by backend developers are: - MD5
- SHA
- Scrypt
- Bcrypt
- RSA