So you’ve decided that backend development is the career for you - congratulations! Many self-taught coders have a hard time deciding between all the various options, but it’s so much easier to learn effectively if you have a clear goal, like backend work, in mind.
Before we get started, if you want the “quick answer”, check out Boot.dev - it’s a platform I built from the ground up to teach you backend development completely online. If you’d rather do a deep dive on the kinds of things you need to learn, rather than get started with a specific learning platform, read on!
Below, we’ll cover everything you need to learn back-end development in 2022 from knowing basically nothing about programming to getting your first job as a Backend Developer. This article is a compilation of my own experience and expertise as a backend engineer and hiring manager, as well as other who’ve I’ve consulted with to ensure this can be the best guide it can be.
First, what is a backend developer?
Backend developers are just one of many kinds of “programmer”. Back-end developers build and maintain the systems that store, process, and secure the data used by websites and apps. This is in contrast to front-end developers, who control everything you see and interact with directly in your browser or on a mobile app. Backend developers concern themselves with servers , while front-end developers work on clients.
Some of the most common job titles for programmers include:
- Front-end developer
- Back-end developer
- Mobile developer
- Game developer
- DevOps specialist
- Data Scientist
According to Stack Overflow’s last developer survey , backend developers in the US tie for the highest median salary of this group: $150,000. If you enjoy working on problems that involve algorithms, data structures, natural language processing, databases, or distributed systems, then backend development might be for you.
A simple path to your career in back-end development
- Daniel Gerep from Cassia, Brasil
Can I really learn back-end by myself?
Many people assume that because backend developers typically need to have a better understanding of computer science fundamentals, that’s it’s harder to get an entry-level backend position, and as a result, they start educating themselves on front-end technologies. I think this is a mistake.
Just because CS skills are often a requirement for backend positions, it’s almost never the case that a CS degree is required. If you take the learning path I outline below, there’s no need to go back to university.
The Learning Path - How to Become a Backend Developer
Alright, now that we’ve answered som preliminary questions, lets get onto the learning path! I’ve
Follow these steps in order - there are plenty of places you can learn back-end online effectively, some of the resources are paid, some are free.
1. Learn basic coding skills
- Variables and data
- Comparison operators
Basic coding skills are a prerequisite to everything else we’ll be learning on your path to a backend career.
Resources to learn basic coding skills
- Boot.dev’s Learn Python
- A Byte of Python
- The Python Tutorial
- Python for Everybody
- FreeCodeCamp’s Learn JS
2. Master data structures & algorithms
This step might take a bit longer - your goal here should be to learn computer science fundamentals . Go deep on some of the most common algorithms and data structures concepts. Backend interviews are often full of questions on this topic. As a backend developer, it will be your job to make sure that the companies servers are running code that’s fast and performant.
We haven’t really gotten to the meat of backend development yet, but that’s okay! We’re setting the stage and laying a great foundation so that once you get to the later steps you won’t be lost and confused.
Resources for data structures and algorithms
3. Learn the basics of the web
Now that you understand basic coding fundamentals in at least 1 programming language, your goal should be to understand the client/server model. You should come out of this step being able to answer questions like:
- What is a web server?
- What is HTTP?
- How do webpages communicate with servers?
Your goal here is to understand why we need backend developers at all, and how the internet works at a basic networking level. I’d recommend actually doing a couple small, simple front-end projects so that you can understand the role a backend server plays in an application.
4. Get started building simple web servers
Learn about different backend technologies and concepts like:
Your goal should be to build very simple web servers that serve a purpose!! Try building an API that’s fun, something like the PokeAPI or maybe the backend of a wiki for your favorite TV show. I would recommend not getting started with databases quite yet! Use flat JSON files or just in-memory storage on your server code for now.
5. Learn database fundamentals
Almost every backend server in the world uses one or more databases to store information. The architecture of most web backends looks something like this.
I would recommend becoming familiar with a SQL database first, probably PostgresQL. After that, get familiar with some of the NoSQL options, but I don’t think you need to be an expert on all them. I’d recommend just being familiar with them from a high level so that in interviews you’re able to hold your own.
Technologies to read up on:
Upgrade one of the projects you built before to use a database!
6. Deploy some projects to your professional portfolio
Finally, you’re going to want to actually deploy some projects! This is how you show employers as a self-taught dev that you know what you’re doing. Unlike a front-end developer, as a back-end developer it’s less about a beautiful personal website, and more about the code itself. In order of importance you should work on the following things:
- A Beautiful Github Profile
README.mdfiles on your top 3 public repos
- At least one project that’s deployed to the internet. This should either have a front-end that contacts it, or documentation that can get users using it with a Postman client, cURL, etc.
- List the projects on your resume
Not only will deploying your projects make your online presence appear more attractive to potential employers, but it will give you practice that will be necessary in your jobs moving forward. What’s the use of a backend developer if they don’t know how to deploy their code to a live environment?
Get a back-end job without spending $10k on a bootcamp
I was a field service engineer and I wanted to become a backend developer, but work and family limited my options. Since completing the back-end career path on Boot.dev, I now have a job offer in hand and I'm starting my career as a software developer!
- Özgür Yildirim from Germany
7. Start looking for a backend job
The big secret to landing a backend job as a self-taught developer is to build an amazing online presence that flaunts your work. Like we mentioned above:
- Put some work into your public Github profile
- Build some open-source projects
- Contribute to existing open source projects
- Build a great LinkedIn landing page and do some networking
- Make friends in online coding communities
Once you’ve done that start applying to jobs! Use every job board you can find, and try to apply only to jobs that are specific to your area of expertise - e.g. “backend go developers”. Try to find niche job boards if they exist, I really like the Golang cafe , for example.
Most importantly, do not stop learning and building!!! I’ve seen so many developers think that they’ve successfully “learned to code”, and they shift gears entirely to their job search. Look, it only takes an hour or so each day to submit a bunch of job applications. You should be spending the rest of your free time continuing to build. The more you learn and build, the easier the job search gets.
Additional skills to learn while searching for a job
- How to use a terminal on your OS of choice (especially Bash )
- How the operating system interacts with your application code
- Threads and concurrency - You’ll be working on systems that need to run fast without bottlenecks
- DNS and networking
- Version control with Git/Github
- Clean code principles
- Clean architecture patterns
- Infrastructure as code
- Message brokers / pubsub
- Cloud engineering (AWS/GCP/Azure)
- Load balancers
- Distributed systems
My favorite backend programming languages
You can be a backend programmer in almost any programming language, but here are some of my favorites in descending order:
- Go - A modern, simple language that’s good for performant, general purpose servers
- Python - An elegant language good for simple backend apps
- Rust - More complex code, but stunningly fast
- C# - Great for working on Microsoft servers
- Java - Tried and true
- Ruby - Good if you want rails and like the Ruby style of programming
- PHP - Great for simple websites, less great for APIs
How long does it take to learn back-end development?
If you’re starting from zero, it will probably take you anywhere from 9 months to 2 years to learn back-end development thoroughly enough that you can land an entry-level position. Of course, it will be different for everyone, but if you can put in a good 10 hours each week, I think that’s a solid estimate. The good news is, that’s faster and cheaper than going back to university for 4 years. The hardest part is just sticking with it.
Good luck out there, I’m sure you’ll do great!