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' 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.

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:

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.

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

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:

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:

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.

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.

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.

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.

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.

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.

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.

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

Firebase

DigitalOcean

Amazon Web Services (AWS)

Google Cloud Platform (GCP)

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.

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

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

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.

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!

Articles

Videos

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!