Backend Development aka as server-side development details everything that a users doesn't see. It contains behind-the-scenes activities that occur when performing any action on a website. It is often considered the grittier part of software or web development and you can begin your journey towards becoming a Backend Developer with this roadmap.
To make your journey easier, pick a path
All about the internet
Mark as done
Done
All about the internet
Begin your backend programming journey by learning all about the internet. Use the resources below but extend your scope past it.
How Does the Internet Work?
A simple Introduction: How the internet works
What is HTTP?
Mark as done
Done
What is HTTP?
The Hypertext Transfer Protocol (HTTP) is an application layer protocol designed to transfer information between networked devices. Learn more about this from the resources below.
An Overview of HTTP
What is HTTP?
What is HTTPS?
Mark as done
Done
What is HTTPS?
Hypertext Transfer Protocol Secure (HTTPS) is an extension of the Hypertext Transfer Protocol. It is used for secure communication over a computer network. Learn more.
What is HTTPS?
HTTPS Explained
HTTPS Tutorial
DNS and how it works?
Mark as done
Done
DNS and how it works?
DNS (Domain Name System) is basically the phonebook of the Internet. DNS turns domain names into IP addresses, which browsers use to load internet pages. Learn more about DNS with the resources below.
What is DNS and How Does It Work?
How a DNS Server Works
Understanding How DNS Works
Web Hosting
Mark as done
Done
Web Hosting
Learn about Web Hosting. See the resources below.
Web Hosting Explained
What is Hosting? optional
What is Web Hosting? optional
How browsers work?
Mark as done
Done
How browsers work?
Curious about how browsers work? You can learn more about this from the resources below.
How Browsers Work
Web Browsers Demystified
Populating the Page: How Web Browsers Work
Terminal usage:
Mark as done
Done
Terminal usage:
Learn how to use command line basics and more using the resources below.
Beginner's Guide to Using Terminal
Basic Terminal Usage Cheatsheet
What is Terminal in Linux OS optional
Memory management
Mark as done
Done
Memory management
Learn about Memory Management in programming with the resources below.
Memory Management Tutorial
Memory Management in Operating Systems
Memory Management in OS Explained
Basic terminal commands
Mark as done
Done
Basic terminal commands
Learn about basic terminal commands and their uses. See the resources below.
Basic Linux Commands You Should Know
How to use Command Line
Terminal Commands to Note
I/O management
Mark as done
Done
I/O management
I/O Management which stands for "Input/Output Management". It is a major component of operating system design and operations and you can learn more about this from the resources below
What is Input and Output Management in Operating Systems
I/O Management
Inter-process Communication
Mark as done
Done
Inter-process Communication
Inter-process communication refers specifically to the mechanisms an operating system provides to allow the processes to manage shared data. Learn more about this from the resources below.
Inter Process Communication Tutorial
Inter Process Communication Explained
Threads and concurrency
Mark as done
Done
Threads and concurrency
A thread is an active entity which executes a part of a process. Multiple threads execute simultaneously with each other. Concurrency is the execution of multiple instruction sequences at the same time. Learn more about these concepts from the resources below.
Threads and Concurrency
Introduction to Threads
Concurrency in Operating Systems
Processes, Threads and Concurrency in Operating Systems optional
Python
Mark as done
Done
Python
Python is a computer programming language often used to build websites and software, automate tasks, and conduct data analysis. Its design philosophy emphasizes code readability with the use of significant indentation. Learn more about this from the resources below and also check out the Java standalone roadmap as well.
Crash Course on Python
Python Crash Course for Beginners
The Complete Vanilla Python Course
A Crash Course on Python by Google
Python Roadmap
Java
Mark as done
Done
Java
Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. Learn more about this from the resources below and also check out the Java standalone roadmap as well.
Java Tutorial
Java Tutorial for Beginners
Java -A Simple Tutorial optional
Learn Java in 5 Minutes optional
Java Roadmap
C#
Mark as done
Done
C#
C# is an open source, simple, modern, flexible, and versatile Object-Oriented Programming language. Learn more about this from the resources below.
C# Tutorial
Learn C#
C# Full Course
C# Tutorial for Beginners optional
PHP
Mark as done
Done
PHP
PHP is an open-source server-side scripting language used for web development. Learn more about this from the resources below.
Learn PHP
PHP Tutorial for Beginners
PHP Full Course
Ruby
Mark as done
Done
Ruby
Ruby is an open-source, object-oriented, general-purpose programming language which was designed with an emphasis on programming productivity and simplicity. Learn more about this from the resources below.
Ruby Programming Language Full Course
Ruby Crash Course
Ruby on Rails
The Complete Vanilla Ruby Course
Git and GitHub
Mark as done
Done
Git and GitHub
GitHub is the largest online software development platform used for storing, tracking, and collaborating on software projects. Git on the other hand, is a free and open-source version control system and DevOps tool used for source code management. Learn how to use Git and GitHub efficiently to manage your personal and professional software development projects.
Git Beginner Tutorial
Introduction to Git and GitHub - Coursera
The Ultimate Git Course - Udemy
BitBucket
Mark as done
Done
BitBucket
Bitbucket is a Git-based source code repository hosting service. Learn more about this from the resources below.
Bitbucket Tutorial
How to use Bitbucket
GitLab
Mark as done
Done
GitLab
GitLab is a single application that spans the entire software development lifecycle. Learn more about this from the resources below.
GitLab Tutorial for Beginners
Introduction to Git and GitLab
GitLab Tutorial
Learn GitLab in 3 Hours optional
MySQL
Mark as done
Done
MySQL
MySQL is an open-source relational database management system. It is a database system that runs on a server. Learn more about this from the resources below
My SQL Official Website
MySQL Tutorial
MySQL Tutorial for Beginners
MS SQL
Mark as done
Done
MS SQL
MSSQL is a Server is a relational database management system by Microsoft. It includes a relational database engine, which stores data in tables, columns and rows. Learn more about this from the resources below.
Microsoft SQL Server Crash Course
Tutorial for SQL Server
Microsoft SQL Server Download optional
Oracle
Mark as done
Done
Oracle
Oracle is a multi-model relational database management system, mainly designed for enterprise grid computing and data warehousing. Learn more about this from the resources below.
Oracle Tutorial
Oracle SQL Tutorial
Learn Oracle
Database Services - Oracle optional
MariaDB
Mark as done
Done
MariaDB
MariaDB is an open-source, community-developed, relational database management system. Learn more about this from the resources below.
MariaDB Official Website
MariaDB Tutorial for Beginners
PostgreSQL
Mark as done
Done
PostgreSQL
PostgreSQL, also known as Postgres, is a free and open-source relational database management system emphasizing extensibility and SQL compliance. Learn more about this from the resources below.
Official PostgreSQL Website
Learn PostgreSQL Tutorial for Beginners
PostgreSQL Tutorial: Definitions, Commands and Features
Tutorial for PostgreSQL optional
RethinkDB
Mark as done
Done
RethinkDB
RethinkDB is the open-source, scalable database that makes building realtime apps dramatically easier. Learn more about this from the resources below.
RethinkDB Crash Course
A Practical Introduction to RethinkDB
Getting Started with RethinkDB
MongoDB
Mark as done
Done
MongoDB
MongoDB is an open source NoSQL, cross-platform document-oriented, database management program. Learn more about this from the resources below.
Getting Started - MongoDB Manual
MongoDB Tutorial for Beginners
Learn MongoDB from Scratch
DynamoDB
Mark as done
Done
DynamoDB
DynamoDB (also known as Amazon DynamoDB) is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability. Learn more about this from the resources below.
AWS DynamoDB Tutorial for Beginners
Understanding DynamoDB
Guide to Amazon DynamoDB
CouchDB
Mark as done
Done
CouchDB
CouchDB (also known as Apache CouchDB) is an open-source document-oriented NoSQL database, implemented in Erlang. CouchDB uses multiple formats and protocols to store, transfer, and process its data. Learn more about this from the resources below.
CouchDB Basics
CouchDB Tutorial
Learn CouchDB
GraphQL
Mark as done
Done
GraphQL
GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. Learn more about this from the resources below.
Introduction to GraphQL
GraphQL Full Course - Novice to Expert
A Beginner's Guide to GraphQL
GraphQL Tutorial optional
Database Normalization
Mark as done
Done
Database Normalization
Database normalization can simply be defined as the process of organizing and structuring data in a database. Learn more about this concept from the resources below.
Simple Explanation of Database Normalization
The Basics of Database Normalization
What is Normalization in DBMS?
Database Normalization optional
Database Indexing
Mark as done
Done
Database Indexing
A database index allows a query to efficiently retrieve data from a database. Learn more about this concept from the resources below.
What is Database Indexing?
An In Depth Look At Database Indexing
Database Index Fundamentals
Indexing in DBMS optional
ACID
Mark as done
Done
ACID
ACID is an acronym that refers to the set of 4 key properties that define a transaction: Atomicity, Consistency, Isolation, and Durability. Learn more about this concept from the resources below.
What Does ACID Mean in Database Systems?
What are ACID Properties in a Database?
ACID Explained
The ACID Database Model optional
ORMs (Object Relational Mappings)
Mark as done
Done
ORMs (Object Relational Mappings)
Object–relational mapping is a programming technique for converting data between incompatible type systems using object-oriented programming languages. Learn more about this concept from the resources below.
What are ORMs and how does it work?
When Should You Use ORMs?
Database Transaction
Mark as done
Done
Database Transaction
A database transaction symbolizes a unit of work performed within a database management system against a database, and treated in a coherent and reliable way independent of other transactions. Learn more about this concept from the resources below.
What is a Database Transaction?
DBMS Transaction Tutorial
JSON
Mark as done
Done
JSON
JavaScript Object Notation (JSON) is a standard text-based format for representing structured data based on JavaScript object syntax. Learn more about this from the resources below.
JSON API
What is JSON
JSON Introduction
JSON: Working with Data and APIs in JavaScript
REST
Mark as done
Done
REST
REST stands for Representational State Transfer. It is a way clients connect to servers to get data. Learn more about this from the resources below.
What is REST API?
Understanding REST API
RESTful Web Services
gRPC
Mark as done
Done
gRPC
gRPC is a modern open source high performance Remote Procedure Call (RPC) framework that can run in any environment. Learn more about this from the resources below.
gRPC: Main Concepts, Pros, Cons and Use-cases
How to choose between REST vs gRPC optional
SOAP
Mark as done
Done
SOAP
SOAP (Simple Object Access Protocol) is a messaging protocol specification for exchanging structured information in the implementation of web services in computer networks. Learn more about this from the resources below.
What is SOAP - In Depth Analysis
Difference between SOAP and REST API
GSON
Mark as done
Done
GSON
Gson is an open-source Java library to serialize and deserialize Java objects to JSON. Learn more about this from the resources below.
GSON Tutorial - Getting Started
Google GSON Tutorial
GSON Examples
Server-side
Mark as done
Done
Server-side
Server-side caching is the temporary storing of web files and data on the origin server for reuse. Learn more about this from the resources below.
Server-side caching: Defined and Clarified
Server-side Caching with Web Applications
Learn Server-side Caching optional
Client-side
Mark as done
Done
Client-side
Client-side caching is a technique used to create high performance services. Learn more about this from the resources below.
Client-side Caching
Difference between Server-side and Client-side Caching
CDN (Content Delivery Network)
Mark as done
Done
CDN (Content Delivery Network)
A CDN (content delivery network), also called a content distribution network, is a group of geographically distributed and interconnected servers. Learn more about this from the resources below.
Content Delivery Network Caching
How does CDN work?
The Evolution of CDN
Redis
Mark as done
Done
Redis
Redis is an open source (BSD licensed), in-memory data structure store used as a database, cache, message broker, and streaming engine. Learn more about this from the resources below.
Redis Official Website
Redis Crash Course Tutorial
Redis - A Quick Guide optional
Unit Testing
Mark as done
Done
Unit Testing
Unit Testing is a methodology of testing source code for its fitment of use in production. You can learn more from the resources below.
Unit testing Tutorial
Software Testing Tutorial
Unit Testing C# Code
Integration Testing
Mark as done
Done
Integration Testing
Integration testing comes after Unit testing in the software testing process. You can learn more about this from the resources below.
What is Integration Testing ?
Integration Testing Tutorial
Integration Testing Basics optional
Functional Testing
Mark as done
Done
Functional Testing
Functional testing is a quality assurance process and a type of software testing that validates the software system against the functional requirements/specifications. Learn more about this from the resources below.
Functional Testing Tutorial
What is Functional Testing?
Types of Functional Testing
Jenkins
Mark as done
Done
Jenkins
Jenkins is an open source automation server which enables developers around the world to reliably build, test, and deploy their software. Learn more about this from the resources below.
Jenkins Official Webpage
What is Jenkins?
Jenkins Tutorial - A Step-by-step Tutorial for Beginners
JUnit
Mark as done
Done
JUnit
JUnit is an open-source framework, which is used for writing and executing unit tests in Java programming language. Learn more about this from the resources below.
What is JUnit - An Overview
JUnit Full Course
SonarLint
Mark as done
Done
SonarLint
SonarLint is a Free and Open Source IDE extension that identifies and helps you fix quality and security issues as you code. Learn more about this from the resources below.
SonarLint Official Webpage
How to fix issues before they exist with SonarLint
Uses of SonarLint
JaCoCo
Mark as done
Done
JaCoCo
JaCoCo (Java Code Coverage) is an open source project, which can be used to check production code for test code coverage. Learn more about this from the resources below.
Intro to JaCoCo
Java Code Coverage Tutorial
Understanding JaCoCo
SonarQube
Mark as done
Done
SonarQube
SonarQube is an open-source platform that empowers all developers to write cleaner and safer code. Learn more about this from the resources below.
SonarQube Official Webpage
What is SonarQube?
Code Analysis with SonarQube
KISS
Mark as done
Done
KISS
KISS stands for Keep It Simple, Stupid (KISS) and it is a design principle which states that designs and/or systems should be as simple as possible. Learn more about this principle from the resources below.
How to use KISS Principles
KISS Code Examples
SOLID
Mark as done
Done
SOLID
SOLID is a mnemonic acronym for five design principles intended to make software designs more understandable, flexible, and maintainable. Learn more about this principle from the resources below.
SOLID: The First 5 Principles of OOP
A Solid Guide to SOLID Principles
The SOLID Principles of OOP Explained
SOLID Design Principles Explained in a Nutshell
YAGNI
Mark as done
Done
YAGNI
YAGNI stands for "You aren't gonna need it", which is a principle that states a programmer should not add functionality until deemed necessary. Learn more about this principle from the resources below.
YAGNI Principle
What is YAGNI Coding Rule and Why It Helps
Is YAGNI Still Relevant
DRY
Mark as done
Done
DRY
DRY stands for "Don't repeat yourself", which is a principle of software development aimed at reducing repetition of software patterns to avoid redundancy. Learn more about this principle from the resources below.
What is DRY
Software Design Principles: DRY and KISS optional
CQRS (Command and Query Responsibility Segregation)
Mark as done
Done
CQRS (Command and Query Responsibility Segregation)
CQRS stands for Command and Query Responsibility Segregation, a pattern that basically divides a system's actions into commands and queries. Learn more about this from the resources below.
CQRS Pattern
What is CQRS?
When, Why and How to use CQRS
Monolithic
Mark as done
Done
Monolithic
Monolithic is an all-in-one architecture, wherein all aspects of the software operate as a single unit. Learn more about this from the resources below.
What is a Monolithic Architecture?
Monolithic Architecture - An Overview
Monolithic Architecture - Definitions and Examples
SOA (Service-Oriented Architecture)
Mark as done
Done
SOA (Service-Oriented Architecture)
Service-Oriented Architecture (SOA) is a style of software design used to make software components reusable and interoperable via service interfaces. Learn more about this from the resources below.
What is SOA?
Understanding Service Oriented Architecture
SOA Principles
Microservices
Mark as done
Done
Microservices
The microservice architectural pattern enables the rapid, frequent and reliable delivery of large, complex applications. Learn more about this pattern from the resources below.
Microservices
What is a Microservice Architecture and its Advantages
What are Microservices?
Event Sourcing
Mark as done
Done
Event Sourcing
Event sourcing is an architectural pattern in software/web development that records all changes made to an application's state, in the sequence in which the changes were originally applied. Learn more about this from the resources below
Event Sourcing Pattern
Event Sourcing Examples
Design Patterns: Why Event Sourcing optional
Serverless
Mark as done
Done
Serverless
Serverless architecture can be described as a way to build and run applications and services without having to manage infrastructure. Learn more about this pattern from the resources below.
What is Serverless?
Serverless Framework
What is Serverless Computing?
Kafka
Mark as done
Done
Kafka
Kafka, also known as Apache Kafka is an open-source, unified, high-throughput, low-latency platform for handling real-time data feeds. Learn more about this from the resources below.
Learn Kafka
Apache Kafka Tutorial
RabbitMQ
Mark as done
Done
RabbitMQ
RabbitMQ is an open-source message-broker software. Learn more about this from the resources below.
What is RabbitMQ?
Introduction to RabbitMQ
RabbitMQ Tutorial - Message Queues and Distributed Systems
RabbitMQ Tutorial optional
AWS Kinesis
Mark as done
Done
AWS Kinesis
AWS Kinesis is a fully managed, cloud-based data streaming service that stores and ingests various streaming data in real time at any scale. Learn more about this from the resources below.
Amazon Kinesis - Process and Analyze Streaming Data
Amazon Kinesis Data Streaming Fundamentals
What is Containerization
Mark as done
Done
What is Containerization
Containerization is the packaging of software code with all its necessary components in order to be isolated in their own "container". Learn more about this from the resources below.
What is Containerization?
Containerization Explained
What is Virtualization
Mark as done
Done
What is Virtualization
Virtualization is the process of running a virtual instance of a computer system in a layer separate from the actual hardware. Learn more about this from the resources below.
What is Virtualization?
Virtualization: A Complete Guide
Understanding Virtualization
Virtualization Explained
What is Docker
Mark as done
Done
What is Docker
Docker is an open source platform for building, deploying, and managing containerized applications. Learn more about this from the resources below.
What is Docker?
What is Docker Used For?
Benefits of Docker optional
Docker Container Concept Explained
Scrypt
Mark as done
Done
Scrypt
Scrypt (pronounced "ess crypt") is a password-based key derivation algorithm in cryptography. Learn more about this from the resources below.
What is Scrypt Hash Fucntion?
Basic Intro to the Scrypt Hash
MD5
Mark as done
Done
MD5
MD5 message-digest algorithm is a cryptographic hash function used to generate a 128-bit digest from a string of any length. Learn more about this from the resources below.
What is MD5 Hashing Algorithm?
MD5 Messaging Digest Algorithm
MD5 Algorithm Explained
RSA
Mark as done
Done
RSA
RSA is a public-key cryptosystem that is widely used for secure data transmission. Learn more about this from the resources below.
RSA Security
RSA Encryption Algorithm
SHA (Secure Hash Algorithm)
Mark as done
Done
SHA (Secure Hash Algorithm)
SHA stands for secure hashing algorithm. SHA is a modified version of MD5 and used for hashing data and certificates. Learn more about this from the resources below.
What is SHA?
Understanding Secure Hashing Algorithm
What is a webhook
Mark as done
Done
What is a webhook
A webhook in web development is a method of augmenting or altering the behavior of a web page or web application with custom callbacks. Learn more about this from the resources below.
What are webhooks?
Webhooks for Beginners - Full Course
What is a webhook? optional
Convoy - Web Service
Mark as done
Done
Convoy - Web Service
Convoy is a cloud native Webhook Service that is fast, secure and reliable with scalability for your webhooks infrastructure. Learn more about this from the resources below.
Official Convoy Product Website
Fast and Secure Webhook Service
Introduction to Convoy
Ask the Expert: Webhooks with Convoy
Webhook Vs API
Mark as done
Done
Webhook Vs API
Learn about the differences between Webhooks and APIs. See the resources below.
APIs vs Webhooks - The Differences
Understanding the Difference between Webhooks and APIs
Webhooks vs APIs - Which one do you need?
What is a WebSocket
Mark as done
Done
What is a WebSocket
A WebSocket is a persistent bi-directional communication channel between a client and a backend service. Learn more about this from the resources below.
What is a Websocket?
Understanding Websockets
How are Websockets different from HTTP?
Nginx
Mark as done
Done
Nginx
Nginx, stylized as NGIИX, and pronounced "engine-ex" is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache. Nginx is a free and open-source software and is considered one of the best and most reliable web servers to date. Learn more about this from the resources below.
What is Nginx?
Nginx and its use cases?
Nginx Tutorial for Beginners
The Nginx Handbook optional
Apache
Mark as done
Done
Apache
Apache is a web server responsible for accepting directory (HTTP) requests from Internet users and sending them their desired information in the form of files and Web pages. It is open-source and per the definition, it is one of the oldest and most reliable web servers. Learn more about this from the resources below.
Apache Web Server Tutorial
In Depth Overview of Apache Web Server
Apache Tutorial for Beginners
Caddy
Mark as done
Done
Caddy
The Caddy web server is an open-source, easy-to-use, secure and cross-platform web server written in GoLang. It is easy to download and runs on almost every platform that Go compiles on. Learn more about this from the resources below.
Caddy Server
How to Host a Website with Caddy on Ubuntu
How to Install Caddy Web Server
Microsoft IIS
Mark as done
Done
Microsoft IIS
Microsoft Internet Information Services web server is a versatile web server that runs on the Microsoft .NET platform on the Windows Operating System. Learn more from the resources below.
Microsoft IIS
What is IIS Web Server
How Does Microsoft IIS Work
Beginner's Guide to Internet Information Services (IIS)
Test Your Knowledge
Mark as done
Done
Test Your Knowledge
There is no better way to consolidate your knowledge besides testing yourself. So, if you have made it this far, well done! Here's a chance to see how much you have learned. Take a test below.