What backend developers actually do
Backend is the part of an app users never see. When you log in, post a comment, or check out a cart, a server somewhere takes that request, checks who you are, reads or writes to a database, runs some rules, and sends an answer back. That is backend work: databases, APIs, authentication, caching, background jobs, and deployment.
A job posting will list ten technologies and make it sound like you need all of them on day one. You don't. Day to day, most backend developers spend their time on a few things: writing endpoints that take a request and return data, shaping and querying a database, fixing bugs when something returns the wrong result, and making sure the thing stays up. The long tool list is context, not a checklist. Learn the core loop first and the rest attaches to it later.
Step 1: Pick one language
JavaScript (Node.js) or Python are the two practical choices for most beginners. Both have huge job markets, mature tools, and excellent free courses. You do not need to agonize over this.
JavaScript makes sense if you plan to do any frontend work or want the largest job market. Python makes sense if you want data engineering or machine learning alongside backend. For most people with no prior experience, JavaScript/Node.js is the right choice because the same language runs on both sides of the web, so everything you learn on the backend also helps you read and write frontend code.
The one mistake to avoid: learning two languages at once. Pick one, get good at it, ship something with it. You can add a second language later in a few weeks once you understand the concepts. Trying to learn both at the start just slows you down. See /languages/javascript and /languages/python for the course hubs on each.
Step 2: Learn the language fundamentals
Before you touch a framework, know the basics cold: variables, functions, arrays, objects, loops and conditionals, and how to read an error message. That last one matters more than people admit. A lot of early frustration is just not knowing how to read a stack trace and find the line that broke.
Where to learn this for free: freeCodeCamp's JavaScript Algorithms and Data Structures certification if you picked JavaScript, or freeCodeCamp's Python courses if you picked Python. Both run in the browser, so there is nothing to install and no setup to trip over. Budget 2 to 3 months part-time. Do not rush this. Frameworks are much easier when the language underneath them feels natural. For a deeper look at the JavaScript options, see /guides/best-free-javascript-course-2026.
Step 3: Learn how the web works
This is the step most courses skip, and skipping it is why so many learners get confused later. You need a working picture of how a browser talks to a server: what an HTTP request is, what a response looks like, the common status codes (200, 404, 500), and the difference between GET and POST.
You do not need to memorize a spec. You need enough that when your API returns a 500 and you don't know why, you know where to start looking. freeCodeCamp covers this inside its backend material, and MDN's HTTP docs at developer.mozilla.org are thorough, free, and the reference most working developers actually use. Spend a week here. It pays off for the rest of your career.
Step 4: Build your first API
Now you build something. Express.js for Node, or FastAPI for Python, are the right starting frameworks: both are widely used, well documented, and simple to get running. Node itself lives at nodejs.org if you went the JavaScript route.
Build something small and complete: a to-do list API, a URL shortener, a simple blog backend. The goal for your first one is narrow. Handle a POST request, save the data somewhere (even a plain file or an in-memory list to start), and return a response another program can read. Once that click happens, that a request comes in and your code decides what goes back, the rest of backend is variations on that idea. When you want more structured practice, /guides/best-free-backend-development-courses-2026 lists free courses that walk through building real APIs.
Step 5: Learn a database
SQL is not optional. Almost every serious backend role uses a relational database, and the ones that use something else still expect you to understand the fundamentals SQL teaches. Learn PostgreSQL specifically: it is free, open source, widely used in industry, and lives at postgresql.org. Practice writing queries, then learn what an index does and how joins pull data from two tables at once.
CS50's free SQL course is a strong place to start and does not cost anything. Once you can write a SELECT with a WHERE and a JOIN without looking it up, wire your API from Step 4 into a real database so data survives a restart. That single upgrade, from an in-memory list to a Postgres table, teaches you more than a week of reading. See /languages/sql for the full list of SQL course options.
Step 6: Authentication and security basics
Auth is where beginners either learn good habits or pick up dangerous ones. You need to understand a handful of ideas: how passwords should be stored (hashed, never plaintext), what a session is, what a JWT is, and roughly how OAuth lets someone log in with Google or GitHub.
The most important lesson is what not to do: never store a plaintext password, and never write your own crypto or your own auth from scratch for a real app. Use an established library. Your job is to understand the pieces well enough to wire a trusted library in correctly, not to reinvent it. You are not becoming a security researcher here. You are learning enough to avoid the mistakes that leak user data.
Step 7: Deploy something
A project that only runs on your laptop does not count. Employers want to click a link and see your work running. Render and Fly.io both have free tiers that handle small apps fine, and both let you push a Node or Python API to a public URL.
The first deploy is always a little painful: environment variables, a database connection string, a build step that behaves differently in production. Push through it once and the second deploy takes ten minutes. Get your API and its database live on a real URL, then put the link in your README. Two or three deployed projects beat ten repos that only ran locally.
How long does it take?
Straight answer, no softening. At 1 to 2 hours per day, Steps 1 through 7 take about 12 to 18 months to reach job-ready. At a career-change pace of 4 to 6 hours per day, 6 to 9 months is realistic.
The variable that matters most is not hours logged, it is how many things you build and deploy along the way. People who build while they learn get hired faster than people who finish every course first and start building later. If you want the structured version of this timeline with checkpoints, /learn/backend lays out the path step by step, and /roadmap/backend shows the same journey as a visual roadmap.
What about Boot.dev?
Boot.dev is a paid platform built specifically for backend development, and it is the most structured guided path if you want one place that takes you end to end. The early chapters are free to try, so you can see whether the format fits you before paying. We wrote a full review at /guides/why-bootdev-for-backend-2026.
If you want to stay free-only, you can. The Odin Project's NodeJS path and Full Stack Open both cover backend properly without a paywall, and freeCodeCamp's Back End Development certification is free with a certificate at the end. Paid platforms buy you structure and less time deciding what to learn next. Free platforms ask you to assemble the path yourself, which is completely doable with the sequence above.