Backend God Roadmap

Overall Progress0% Complete
0 of 194 tasks completedAll status saved automatically in local storage

Understand how the internet and servers actually work before writing code.

check

How does the internet work?

  • What is a packet and how data travels in chunks across networks
  • What is an IP address and how every device on a network is identified
  • TCP vs UDP — TCP guarantees delivery, UDP is faster but lossy
  • What is a port number and why it matters (80=HTTP, 443=HTTPS, 3000=dev)
  • What is a client and what is a server — the fundamental request/response model
check

HTTP vs HTTPS — Request/Response cycle

  • HTTP methods — GET (read), POST (create), PUT (replace), PATCH (update), DELETE (remove) and when to use each
  • What is a request header and a response header — metadata about the message
  • What is a status code — 200 (ok), 201 (created), 400 (bad request), 401 (unauthenticated), 403 (unauthorized), 404 (not found), 500 (server error)
  • What is HTTPS and why HTTP alone sends data in plain text
  • What is SSL/TLS at a high level — handshake, encryption in transit
  • What is a request body and when it is used — POST/PUT/PATCH carry data here
check

How browsers work

  • What happens step by step when you type a URL and hit Enter
  • What is rendering — how HTML/CSS/JS becomes a visual page
  • What are browser dev tools and how to use the Network tab to inspect requests
  • What is a cookie — small data stored by the server on the client
  • What is local storage — client-side key-value storage, no server involvement
check

DNS

  • What is a domain name and who owns it — registrars, ICANN
  • What is a DNS resolver and what it does — translates names to IPs
  • What is an A record (domain → IP), CNAME (alias), MX record (email)
  • What is TTL — how long a DNS result is cached before re-queried
  • How DNS resolution flows — browser cache → OS cache → resolver → root server
check

Hosting basics

  • What is a VPS — a virtual machine you control fully
  • Shared hosting vs cloud hosting — trade-offs of control vs convenience
  • What is a server process — your app runs as a process on a machine
  • What is a region and why geographic proximity reduces latency
  • IP address vs domain name in hosting — the domain points to the IP
Project spec

Draw (on paper or Excalidraw) the full journey of a request from browser to server and back. Label every step — DNS lookup, TCP connection, HTTP request, server processing, HTTP response, browser rendering. Write one paragraph explaining it in plain English as if teaching someone.

check

Basic Linux/terminal commands

  • Navigating — pwd (where am I), ls (list files), cd (change dir), cd ..
  • Files — touch (create), mkdir (folder), rm (delete), rm -rf (delete folder), cp (copy), mv (move/rename)
  • Reading files — cat (print all), less (scroll), head (first lines), tail (last lines), tail -f (follow live)
  • Permissions — chmod basics, what 755 (owner rwx, others rx) and 644 (owner rw, others r) mean
  • Processes — ps (list processes), kill (terminate), what a running process is
check

Git fundamentals

  • What is version control and why it exists — history, collaboration, safety
  • git init, git status, git add, git commit — the basic save loop
  • What is a commit hash — a unique fingerprint for every snapshot
  • git log — reading the history of a project
  • git diff — seeing exactly what changed between states
  • .gitignore — what to exclude: node_modules, .env, build artifacts
check

GitHub workflow

  • git push, git pull, git clone — syncing with a remote
  • What is a branch — an isolated line of work, never work directly on main
  • git checkout -b (create branch), git merge, git rebase — integrating work
  • What is a pull request — a request to merge, the unit of code review
  • Resolving a merge conflict step by step — edit, stage, commit
Project spec

Create a GitHub repo. Write a plain text file documenting your Phase 1.1 notes. Commit it with a proper message. Create a branch, edit the file, push the branch, open a pull request, and merge it into main yourself. Deliberately create a merge conflict and resolve it.