Begin Your Backend Developer Journey!
Congratulations on choosing this career path. You are one step closer to becoming a backend developer. This guide is specially to help you have a smooth learning, with easy access to the right resources and data.
You will find here vast resources on backend development from who exactly is backend developer, the backend development roadmap, backend career paths, backend development skills, tools to use, projects to build, communities to help you grow and network, videos, articles, etc.
Congrats once again.
What is Backend Development?
Backend development, also called server-side development, is the process of creating everything that the users don't see and contains behind-the-scenes activities that occur when performing any action on a website. It focuses primarily on databases, backend logic, APIs, and Servers. Backend development can be done in almost any programming language such as JavaScript (using the NodeJS runtime engine), Python, C, C# and C++, PHP, etc.
Learn more about what backend development is by clicking the links below.
Backend Development Roadmap
A roadmap is a visualization of a strategic plan. You will need one if you want to actualize becoming a frontend developer. The resources below will guide you as to how to create/use your roadmap.
Articles
Networking
Tech Communities
Joining a Tech Community is the easiest way to network with and learn from other techies in the industry for free. You get to connect to other techies with different levels of expertise, network and socialize, attend tech events, ask questions and get answers from experts and professionals, share and learn from other people's experiences, etc. Below are a few of the most popular tech communities:
Bootcamps
Bootcamps are created to help one with little to no experience in coding gain programming skills by offering them technical training on the relevant skills. They focus on the most important aspects of coding while allowing one to apply these new skills to solve real-life problems. They are like schools and some of them offer Certificates/Diplomas upon completion. Most of them are not free. Below are a few of the most popular bootcamps:
- DecagonNot Free
- EnyataFree
- AltSchool AfricaNot Free
Internships and Mentoring
Internships are a period of work often taken to gain professional learning experience relating to a field of study or career interest. You also get to be mentored by seniors and experts in your field from different parts of the world, sometimes even working on real-life projects. It can be paid or unpaid, meaning some of them pay you for partaking and successfully completing the program. You can find below, a list of organizations that offer coding internships and mentoring in the tech field.
- OutreachyPaid
- Google Summer of CodePaid
- The Collab LabUnpaid
- InternshalaPaid
- HNG InternshipUnpaid
- Zuri TeamUnpaid
- TerraHQUnpaid
Code Editors
For you to start coding, you will need a place to write and run your code. This is where code editors come in. A code editor is a text editor specifically designed for writing and editing source codes. You can find the editors used by most front-end developers below, with the most popular being VsCode.
But before diving in, check this resource(s) out;Best 3 editors for coding and why. ~ Tutmo
Desktop Apps
Online Editors (Playgrounds)
- VsCode Online
- WebsiteLink
- DocumentationLink
Mobile Apps
- Dcoder
- Download LinkLink
- Code Editor
- Download LinkLink
- Visual Code
- Download LinkLink
- Pydroid 3 - IDE for Python 3
- Download LinkLink
Basics of Frontend Development
Learning the basics of frontend development is not compulsory, but it does help to understand how the frontend works since your code will be interacting with the frontend most of the time. The languages used in frontend development are Html, CSS and Javascript. You can learn more about these below:
Videos
Curated Playlist
Backend Development Languages
Backend development languages are used to develop the backend of the application. The languages used in backend development are Node.js, PHP, Python, Java, C#, Ruby, C++, C, Go, and .NET. You can learn more about these below:
Before picking your first backend language, check these resource(s) out;What Programming Language Should I Learn First in 2022? ~ FreeCodeCampThe best programming language for web development ~ Programming with Dan
Node.js (Javascript)
Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js' package ecosystem, npm, is the largest ecosystem of open source libraries in the world.
Here are some resources to help you get started with NodeJS:
Videos
Curated Playlist
Free Courses
Practice Projects
Python
Python is a powerful multi-purpose programming language. It is very easy to learn as it features a syntax more similar to English Language than other programming languages.
Python is a very fun and beginner-friendly programming language with a pretty shallow learning curve.
Videos
Curated Playlist
Free Courses
Practice Projects
C
C is one of the high-level programming languages developed by Dennis Ritchie. C was originally developed for UNIX operating system to beat the issues of previous languages such as B, BCPL, etc. The UNIX operating system development started in the year 1969, and its code was rewritten in C in the year 1972.
Videos
Curated Playlist
Free Courses
Articles
Practice Projects
Others
Tips and tricks, tools, cool examples etc.
C++
The C++ programming language was invented in 1979 by Bjarne Stroustrup while working on his PhD thesis at Bell Labs. C++ was designed to be an extension of the programming language C, hence its original name, “C with Classes”. Stroustrup's goal was to add flexibility and OOP (object-oriented programming) to the C language. He included features such as classes, strong type checking, default function arguments, and basic inheritance. The name was changed to C++ in 1983, which derives from the ++ operator.
Videos
Curated Playlist
Free Courses
Articles
Practice Projects
Others
Tips and tricks, tools, cool examples etc.
Java
Java is a high-level, class-based, object-oriented programming language. It is a general-purpose programming language intended to let programmers write once, run anywhere meaning that compiled Java code can run on all platforms that support Java without the need to recompile.Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of the underlying computer architecture.
Curated Playlist
Free Courses
Practice Projects
Others
Tips and tricks, tools, cool examples etc.
C#
C# is a modern, object-oriented, and type-safe programming language. C# enables developers to build many types of secure and robust applications that run in . NET. C# has its roots in the C family of languages and will be immediately familiar to C, C++, Java, and JavaScript programmers.
Videos
Curated Playlist
Free Courses
Practice Projects
Others
Tips and tricks, tools, cool examples etc.
Go
Go is a statically typed, compiled programming language designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson.It is syntactically similar to C, but with memory safety, garbage collection, structural typing,and CSP-style concurrency.It is often referred to as Golang because of its former domain name, golang.org, but its proper name is Go.
Videos
Curated Playlist
Free Courses
Practice Projects
Others
Tips and tricks, tools, cool examples etc.
Version Control
Version Control also known as Source Control is a way of managing and tracking the changes made to your code over time. This allows you to easily compare changes made and revert to old versions if the need arises. You can find different tools below that help you do that.
If you are finding Git hard to understand, you can learn GitHub Desktop created by GitHub which makes using Git less complicated. Use it for a while and then come back to Git. After that, you can choose whichever version control service you prefer among GitHub, GitLab and BitBucket.
Git
GitHub
GitLab
BitBucket
Deployment Services
Now that you have successfully hosted your codes on GitHub, GitLab or BitBucket, you would want a server to host your backend applications either temporarily or permanently and also have testable links which you can share with friends and potential clients so they can admire and see the hard work you have done. You can choose any of the services below:
Note: Heroku, Vercel and Firebase are free and easy to use while the others AWS, GCP and Azure are used by professionals because of the vast services the offer.
Heroku
- WebsiteLink
- DocumentationLink
Vercel
- WebsiteLink
- DocumentationLink
- Serverless Functions (Docs)Video
Firebase
- WebsiteLink
- DocumentationLink
DigitalOcean
- WebsiteLink
- DocumentationLink
Amazon Web Services (AWS)
- WebsiteLink
- Getting Started with AWSLink
Google Cloud Platform (GCP)
- WebsiteLink
- Why Google CloudLink
- Google Cloud solutionsLink
Azure
- WebsiteLink
- DocumentationLink
Databases
A database is a collection of data that is stored in a central place. It is a logical grouping of data that is organized in a way that is easy to access and manage, i.e., it allows for storing and retrieving of data. There are different types of databases and they can be divided into two categories: Relational and Non-Relational.
Before picking your first database language, check these resource(s) out;What is a database in under 4 minutes ~ Linux AcademyWhat is Database ~ TechTFQDatabase. Which, when and why? ~ CodeKarleDatabase design full course ~ FreeCodeCamp
Relational Database
Relational databases are the most common database type. They are a type of database that stores data in a structured way. They are usually used to store data in tables. The most common relational database is MySQL. Others are PostgreSQL, Microsoft SQL Server, Oracle, and SQLite.
MySQL
PostgreSQL
Microsoft SQL Server
Oracle
SQLite
Non-Relational Database
Non-Relational databases are a type of database that stores data in a non-structured way. They are usually used to store data in JSON format. The most common non-relational database is MongoDB. Others are CouchDB, Firebase, and Firestore.
You can learn about JSON through the links below:Learn JSON in 10 minutes. ~ Web Dev SimplifiedFull JSON tutorial for beginners. ~ Techcode5 Secret features of JSON you didn't know about. ~ Siddharth Shyniben
MongoDB
CouchDB
FirestoreDB
Backend Frameworks
Backend frameworks are the most common way to develop web apps. They are a set of libraries that are used to build web applications. Examples of backend frameworks are ExpressJS, Django, Laravel, Ruby on Rails, etc.
- Nodejs backend frameworks are ExpressJS and Koa.
- Python frameworks are Django and Flask.
- PHP frameworks are Laravel and Slim.
- Ruby frameworks are Ruby on Rails and Sinatra.
- C# frameworks are ASP.NET and ASP.NET Core.
- Java frameworks are Spring and Spring Boot.
- Go frameworks are Gin and GORM.
- Rust frameworks are Rust and Rocket.
- NET frameworks are .NET Core and .NET Framework.
Before picking your first backend framework, check these resource(s) out;Top 10 backend frameworks – Which is the best? ~ Back4AppTop backend frameworks in 2022 ~ Coding for all by Newton SchoolDjango vs Flask Comparison ~ Jelvix
- ExpressJs (NodeJs framework)
- Django (Python framework)
- Flask (Python framework)
Current Frameworks Available
ExpressJS
ExpressJS is a web framework for Node.js that is easy to learn and use. It is a minimal and flexible framework for building web applications. It is designed for building RESTful APIs.
Express provides a thin layer of fundamental web application features, without obscuring Node.js features that you know and love.
- WebsiteLink
- Learn ExpressJs in 35 minutes ~ WebDevSimplifiedVideo
- ExpressJs Tutorial for Beginners. ~ ARC TutorialsPlaylist
- ExpressJs 2022 Course ~ Anson the developersPlaylist
- Build 4 projects with Nodejs/ExpressJs ~ FreeCodeCampVideo
- Coffee Shop website with NodeJs and ExpressJs ~ Turbo 360Video
- Top 10 Node JS Projects Ideas (With Source Code) ~ InterviewBitsArticle
- Building a REST API with Express, Node, and MongoDBArticle
Django
Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. It encourages the use of object-oriented programming and its use of a model-view-template (MVT) design pattern. Django is a Python-based open source web framework that is used for developing web applications.
Flask
Flask is a microframework for Python, written in pure Python. It is designed to be as simple as possible and easy to learn. It is designed to make working with Python web applications easier.
Other Useful Resource
This is a collection other useful resources that couldn't fit into the sections above. Explore!
What Next?
Pat yourself on the back for making it this far. Do continue to practice your skills, build more projects, and apply for jobs. If you plan on becoming a FullStack Developer, then check out our Backend Development Roadmap.
Feel free to tweet a thank you to us at @techroadmap__ on twitter and if you have any questions or comments, feel free to send us a dm too or email us at techcareerroadmap@gmail.com. Don' forget to give us a Star on our GitHub repo!
Happy Coding!