Core subjects¶
~6 min
In short¶
Seven subjects make up most of the first two years of a CS degree. Each has its own page here with a learning order, free resources, and practice tasks. You do not need to finish one before you start another, but the first three are the ones to get comfortable with early.
The seven subjects¶
| Subject | What it is about in one line | When you meet it in a typical degree (typical, not guaranteed) | Start here |
|---|---|---|---|
| Programming fundamentals | Writing and reading programs: values, loops, functions, errors | Usually the first course, in the first semester | Python course, Part 1 |
| Data structures and algorithms | Storing data so operations are fast, and analysing how fast they are | Often the second course after programming, in the first or second year | Python course, Part 5 |
| Computer architecture | How a processor, memory, and instructions fit together | Often in the first or second year, sometimes as a combined systems course | nand2tetris |
| Operating systems | How the OS shares the processor, memory, and files among programs | Usually in the second or third year | OSTEP (Operating Systems: Three Easy Pieces) |
| Databases | Storing and querying data with tables, SQL, indexes, and transactions | Often in the second or third year, sometimes as an elective earlier | Python course, SQLite lesson |
| Computer networks | How machines exchange data through layered protocols | Usually in the second or third year | Kurose and Ross companion site |
| Discrete math and probability | Logic, proofs, counting, graphs, and reasoning about chance | Often in the first year, alongside programming | MIT 6.042J |
The table is a pattern, not a rule. Universities arrange these courses differently. Check your own syllabus for the exact year and semester.
How to use these pages¶
Read the "In short" and "What to learn first" sections of each subject before you start. Use the free resources for the material, and the practice tasks to check that you understand it. The glossary at glossary.md defines the terms used across all seven pages.
The first 90 days¶
The first-90-days plan is in the folder ../01-first-90-days/. It has one page per week, from week 01 to week 12:
Each weekly page says which of these subjects it is working on. Do the week's tasks alongside the subject pages, not before them.
Sources¶
- The subject pages in this folder list their own sources.