Backend developers build the systems that power the large-scale web applications that you use every day. In this complete learning path you'll start by learning the fundamentals of programming and computer science in Python and C, then you'll learn all about building scalable and secure back-end systems using TS, SQL and Docker.
Overview
Syllabus
- Learn Python for Beginners — Learn Python from scratch with hands-on lessons covering functions, loops, data structures, debugging, and problem solving.
- Learn Linux — Never fear a Linux terminal again. Navigate the filesystem, inspect processes, and automate everyday developer tasks.
- Build a BookBot in Python — Build your first local command-line app and use the real tools developers use every day.
- Learn Git — Don't be the developer that uses Git to simply add, commit, push, and pray. Learn how it works under the hood.
- Learn Object Oriented Programming in Python — Use classes when they help, skip the complexity when they don't, and learn OOP as a practical way to organize code.
- Build Asteroids using Python and Pygame — Make a real arcade game while practicing OOP, vectors, collision detection, and game loops.
- Learn Functional Programming in Python — Add functional programming to your toolbox without pretending Python is Haskell.
- Build an AI Agent in Python — Build a tiny coding agent that can read files, edit code, run Python, and loop on feedback.
- Learn Data Structures and Algorithms in Python — Build the data structures yourself, then use them to solve harder problems with less guessing.
- Build a Static Site Generator in Python — Build the kind of tool that turns Markdown into a website, then understand static site generators from the inside.
- Learn Memory Management in C — Get close to the metal: pointers, the stack, the heap, and a tiny garbage collector you build yourself.
- First Personal Project — Pick an idea, scope it down, build it yourself, and get community feedback on the result.
- Learn JavaScript — Learn JavaScript by writing real code with functions, objects, arrays, promises, async/await, modules, and the event loop.
- Learn TypeScript — Learn TypeScript with hands-on exercises covering types, interfaces, unions, narrowing, generics, utility types, and local tooling.
- Learn HTTP Clients in TypeScript — Call real APIs, parse JSON, handle errors, and make HTTP feel boring in TypeScript.
- Build a Pokedex in TypeScript — Build a command-line Pokedex with a REPL, API calls, JSON parsing, and caching in TypeScript.
- Learn SQL — Get dangerous with relational databases: query, filter, join, and aggregate data without hiding behind an ORM.
- Build a Blog Aggregator in TypeScript — Build an RSS-powered TypeScript backend with a database, background work, and a real API shape.
- Learn HTTP Servers in TypeScript — Build the server side of the web: routes, middleware, auth, and APIs in TypeScript.
- Learn File Servers and CDNs with S3 and CloudFront — Store and serve user files like a TypeScript backend developer: S3, CloudFront, streaming, and secure access.
- Learn Docker — Understand Docker by actually using it: images, containers, volumes, networks, and why teams ship with it.
- Learn Web Security in TypeScript — Harden a real TypeScript web app with advanced authentication, and protection from injection, infrastructure, and operational security threats.
- Learn Pub/Sub in RabbitMQ and TypeScript — Build event-driven backend flows with RabbitMQ, not just another request-response API.
- Capstone Project — Build your strongest portfolio project, then turn it into resume and interview material.
- Learn How to Find a Programming Job — Turn your projects into proof, your resume into a signal, and your job search into something less random.
Courses
-
You'll build a real command-line application in Python that does data analysis on text files, or rather, entire novels like "Frankenstein," "Moby Dick," or "Pride and Prejudice." You'll be guided through the setup of a professional development environment using Python. This is the perfect first Python project for beginners.
-
Learn the fundamentals of the most widely-used programming paradigm today: object-oriented programming. You will model real-world problems within your programs, and learn how to write code that is easy to understand and maintain. By the end of this course you'll be writing production-quality Python code.
-
Functional programming is back in vogue. There's a reason front-end frameworks like React and Vue are moving toward functional programming, and after this course you'll more than understand its benefits. We'll dive in-depth into all of the foundational concepts of functional programming in a familiar language.
-
Ever wondered how SEO and performance-optimized static site generators like Hugo work? In this guided project you'll build your own from scratch using Python. You'll put a lot of your learnings from Object-Oriented Programming and Functional Programming to use in a tangible web project. This project isn't for the faint of heart, but it's well worth the effort. You'll come away with a deeper understanding of static content management.
-
If you've had trouble getting past a hard whiteboarding session, this course is for you. Big-O complexity is arguably the most important concept students learn in a formal computer science degree. You'll build data structures from scratch in Python and improve your problem-solving skills. We'll cover binary trees, linked lists, stacks, graphs and more. This Python course will give you the foundation you need to start your career off on the right foot. After completing this course, you'll be comfortable crushing interview questions and writing performant code.
-
You can't truly become a developer if you can't build your own stuff. Theory and foundations are important, but you also need to be able to fly solo. The purpose of this project is two-fold: a chance to put your skills into practice and to add another project to your portfolio. Well-built personal projects will help you land interviews and jobs, so make sure to put in the effort!
-
Learn modern JavaScript by writing real code in this comprehensive interactive course. You'll solve challenges that build from variables, functions, and objects to promises, async/await, modules, runtimes, and the event loop.
-
Learn the backbone of the modern web: HTTP network communications. You will be writing real HTTP requests in TypeScript, then parsing and displaying the responses. Each challenge in this course is part of a larger application so that you will understand how HTTP is used in the real world.
-
Learn all the basics of Structured Query Language in this comprehensive SQL course. You'll build out real database tables and practice querying them in flexible ways right in the browser. Not only will you understand how to use SQL, but you'll also learn in what situations you should use it. We will cover architectural design patterns and how to use SQL in a production environment.
-
Learn Docker from the ground up by installing, running, creating, and publishing Docker containers. Take your Back-end and DevOps skills to the next level. You will discover how Docker fits into production back-end architectures and complete hands-on projects on your local machine. This course is jam-packed with video explanations and rich text explanations so you'll never get lost.
-
This capstone project should be your resume's pièce de résistance. You're allowed to use any languages or frameworks you want, but you must build it yourself, and it should be remarkable, memorable even. The purpose of this project is two-fold: a chance to put your skills into practice but also to give your resume something that stands out and gets you noticed.
-
Learn how to find a job as a software engineer. This course will walk you through polishing up your portfolio projects, creating a resume, networking, interviewing, and even thinking about relocation. If you're nervous about starting your job search, this course will get you started on the right foot.
-
So many developers go years before understanding the basics of shells, terminals, and Linux (or more generally Unix-like systems). Here you'll learn to navigate files and directories, install dependencies, configure your PATH, and use powerful CLI tools like grep, find, and pipes. Never fear the command line again, make it fear you.
-
Write a toy agentic code editor in Python, similar to Claude Code or Cursor's Agent Mode. Understand how agents work from scratch by using free models on OpenRouter (via the OpenAI SDK) to create an LLM-powered code agent. You'll use function calling and feedback loops to build an agent that can find and fix bugs in a real project!
-
Build a clone of the classic Asteroids game using Pygame and object-oriented programming concepts. This guided project will help you understand how to use Pygame to create a game loop, handle user input, and manage game state. You'll also learn how to use object-oriented programming to create game objects and manage their interactions.
-
In this guided project you'll practice building a CLI in TypeScript, and you'll use production-ready database tools like PostgreSQL and Drizzle. This won't just be another CLI utility, but a service that has a long-running service worker that reaches out over the internet to fetch data from remote locations.
-
A REPL, or Read-Eval-Print Loop, is a simple interactive programming environment that takes user input, evaluates it, and returns the result to the user. In this guided project, you'll build a Pokedex-like REPL in TypeScript that uses the PokeAPI to fetch data about Pokemon. It's a great way to put your TypeScript knowledge to the test and learn valuable skills like HTTP networking and data serialization.
-
Learn how to integrate AWS S3 into your applications for scalable, secure, and durable file storage. This course covers the fundamentals of object storage, S3 bucket configuration, versioning, access control, presigned URLs, and more. Build a production-ready file storage system that handles large assets with ease.
-
Ah, Git. The source control system that every developer uses, but few truly understand. In this course, we'll not just learn how to use Git, but we'll go over some of the plumbing commands that make it all work. By the end, you'll have everything you need to know to get started using Git as a professional developer, plus a bit extra.
-
Learn all about the basics of building web servers in TypeScript. We'll keep the stack lean and simple, using primarily Express.js. Once you've completed this course, you'll feel confident building your own web servers, whether you're serving static files or a full-on RESTful JSON API with authentication and authorization.
-
Memory management is something that every programmer needs to deal with and understand at some point. If you're used to working with languages and tools that handle it for you, this course will teach you how all that works under the hood. You'll even build your own garbage collectors from scratch. This course will teach you the C basics you need for the course, but it's not a course about C, it's about memory.
-
Learn how to build large-scale asynchronous Pub/Sub architectures using RabbitMQ and TypeScript. Understand how pub/sub systems differ from point-to-point systems, and how to use real-world technologies to make them work. Write hands-on real-time applications that use a local RabbitMQ server to communicate between services.
-
Learn TypeScript from start to finish in this immersive, hands-on course. You'll build on your JavaScript knowledge while solving real-world type challenges that cover the language's fundamentals and more advanced features.
-
Learn Python from scratch by writing code, not just watching videos. This course is built for complete beginners, so you don't need any prior programming experience. Every lesson runs in your browser, and XP, streaks, and quests keep you coming back.
-
Learn everything you need to know about practical web security by patching a vulnerable TypeScript, Express, and SQLite application. You'll secure authentication and authorization, stop injection and browser attacks, protect sensitive data, improve infrastructure defenses, and prepare for denial-of-service attacks and incident response.