- Time
- 31–40 weeks
- Leads to
- Every other path
Anyone starting out, or anyone who learnt to code from tutorials and has gaps.
-
Stage 1: Learn to program , 6–8 weeks
What to learn
Free resources
Build: A small command-line program you design yourself, such as an expense tracker that saves to a file.
Move on when: You can write a 100-line program without following a tutorial.
-
Stage 2: The terminal, Git and Linux , 3–4 weeks
What to learn
Build: Put every program you have written on GitHub, each with a short README.
Move on when: You can work in the terminal without a mouse and fix a merge conflict.
-
Stage 3: Data structures and algorithms , 8–10 weeks
What to learn
Free resources
Build: Write your own hash table and a graph search (BFS and DFS), with tests.
Move on when: You can explain why a dictionary lookup is fast and choose the right structure for a problem.
-
Stage 4: How computers and networks work , 8–10 weeks
What to learn
Free resources
Build: A tiny web server written with raw sockets that serves a page to your browser.
Move on when: You can explain everything that happens between typing a web address and seeing the page.
-
Stage 5: Math and databases , 6–8 weeks
What to learn
Free resources
Build: Design a database for a small library or shop and answer 20 questions about it in SQL.
Move on when: You can write a query with joins and grouping, and reason about a simple probability.