Roadmap to Becoming a Back End Developer
Tags: career, productivity, codenewbie, beginners
Published: 2020-06-15 02:37:33

**Subscribe to my email list now at http://jauyeung.net/subscribe/**

**Follow me on Twitter at https://twitter.com/AuMayeung**

**Many more articles at https://medium.com/@hohanga**

**Even more articles at http://thewebdev.info/**

Learning to become a back end developer is something that takes a while to do.

In this article, we’ll look at the path to becoming a back end developer. We’ll focus on what we have to learn.

Git
===

Git has become the most popular version control system is because of its ability to have local and remote repositories. It can also let people make a copy of a remote repository by forking.

Pull requests are also a great way to let people review code before merging them.

If we learn how to pull and push code, make pull requests, and merge code, then we have a good start.

To learn more about Git, we can go to [The Git Complete Guide](https://click.linksynergy.com/deeplink?id=JVFxdTr9V80&mid=39197&murl=https%3A%2F%2Fwww.udemy.com%2Fgit-complete%2F) to learn more.

SSH and Command-Line Basics
===========================

SSH stands for secure shell. It means we’ve to log into a server and know how to do operations by running commands.

They’re just some commands like file operation commands, changing `.bashrc` , etc. that we have to know.

Common operations include manipulating files, creating links, navigation the file systems, adding options to the command line, and editing text files.

HTTP(S)
=======

Back end apps often have to talk to other APIs, so we’ve to make HTTP requests from them.

We should know how to make HTTP requests, set request headers, and parse responses and work with them.

Also, they take requests from clients so we’ve to learn how to parse query strings, check HTTP verbs, and parse request bodies to get the data from clients’ requests and get what we want.

Data Structures and Algorithms
==============================

Front end development is all about solving problems. Data structures and algorithms let us solve problems with computer programs.

Programs consist of code that manipulating data structures with algorithms. So we have to learn both to create our own programs.

We’ve to learn about the speed of various algorithms so that we can create programs that are fast enough for people to use.

Common algorithms include sorting, searching, greedy algorithms, and optimization.

[Geeks for Geeks](http://geeksforgeeks.org/) is a great resource for learning algorithms.

Character Encodings
===================

We to learn about character encodings so that we can display data properly on the screen.

The most common is Unicode so we definitely have to learn what’s in the character set. Another common encoding is ASCII.

Remote Git Hosts
================

We’ve to learn how to use remote Git hosts like Github, Bitbucket, or GitLab so that we can push our code to remote repositories.

Also, we’ve to know how to merge code and fork repositories. We may also have to manage permissions and create and remote repositories.

Database
========

We’ve to learn how to manipulate databases and how to save data to them.

Relational databases are the most popular since most data can easily be models with relationships.

Therefore, SQL is the most popular language to manipulate relational database as it’s designed to manipulate relational database data.

NoSQL databases also have some limited uses with data analysis and caching, so we have also had to work with them if we ever want to analyze data or use Redis for caching.

Node.js
=======

Node.js is a runtime environment for running JavaScript apps on the server. There’re a few popular back end frameworks like Express that are made for it.

We can use them to develop their own back end apps and then use ORMs like Sequelize to manipulate databases.

For a complete back end solution, there’s also Nest.js which combines everything into one framework.

Python
======

Python is also popular for web development. Django and Flask are popular frameworks for Python back end development.

Django is a full-featured framework with basic routing, authentication, and ORM capabilities.

Flask is a basic framework with basic routing features and we’ve to add the remaining parts ourselves.

Java
====

Java and Spring are popular for enterprise apps. Spring is a framework that does everything.

It lets us create a cutting edge, high-performance back end with a comprehensive framework.

PHP and MySQL
=============

PHP and MySQL are still popular. The PHP language has improved immensely and popular frameworks like Laravel make PHP development clean and simple.

MySQL is still the most popular database that’s used with PHP apps since they’re often paired together with servers like WAMP and XAMPP.

Conclusion
==========

Back end development has its own path. There’re lots to learn to become a proficient back end developer.

This is going to be the roadmap for the next few years so there’s no better time to become a back end developer than now as technologies have matured.