Skip to content

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.