Understand how the internet and servers actually work before writing code.
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
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
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
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
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
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.
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
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
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
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.
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
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
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
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
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
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.
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
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
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
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.