Computer Science Learning Path
Complete CS learning roadmap based on real university courses
Learning Stages
Topics
Advanced Lessons
How to Get Started?
Based on the CS Learning Planning document, start with essential tools and gradually progress to specialized areas
Master essential tools like command line and Git, then learn mathematical foundations
Follow the sequence from beginner to advanced, building strong foundations at each stage
Each course includes practical projects to reinforce theoretical knowledge through hands-on practice
Step-by-step
Suggested Learning Sequence
Follow this sequence to build a solid foundation in computer science
Stage 1
Essential Tools
Master the fundamental tools that every computer science student needs
Stage 2
Mathematical Foundations
Build strong mathematical background for computer science
Stage 3
Programming Fundamentals
Learn programming from scratch with multiple languages
Stage 4
Computer Systems
Understand how computers work from hardware to software
Stage 5
Algorithms & Theory
Master the theoretical foundations of computer science
Stage 6
Machine Learning & AI
Explore the fascinating world of artificial intelligence
Stage 7
Specialized Topics
Explore advanced and specialized areas of computer science
Stage 1
Essential Tools
Master the fundamental tools that every computer science student needs
Command Line & Shell
Learn Vim, command line basics, and shell scripting
Git & Version Control
Master Git for project management and collaboration
Information Retrieval
Learn information retrieval techniques, search engines, and data indexing
Docker & Containerization
Learn container technology for modern development
Stage 2
Mathematical Foundations
Build strong mathematical background for computer science
Calculus & Linear Algebra
Essential math for algorithms and machine learning
Discrete Mathematics
Logic, set theory, graph theory, and combinatorics
Probability Theory
Foundation for machine learning and algorithms
Information Theory
Entropy, coding, and communication theory
Stage 3
Programming Fundamentals
Learn programming from scratch with multiple languages
Introduction to Programming
Start with Python or C - Harvard CS50, MIT 6.100L
Data Structures & Algorithms
UCB CS61B, Princeton Algorithms - Core CS foundation
Software Engineering
MIT 6.031, UCB CS169 - Write production-quality code
Advanced Programming
Stanford CS106B/X, MIT 6.824 - Systems programming
Stage 4
Computer Systems
Understand how computers work from hardware to software
Computer Architecture
Nand2Tetris, UCB CS61C - Build a computer from scratch
Operating Systems
MIT 6.S081, UCB CS162 - Write your own OS kernel
Computer Networks
Stanford CS144 - Implement TCP/IP protocol stack
Database Systems
CMU 15-445, UCB CS186 - Build your own database
Stage 5
Algorithms & Theory
Master the theoretical foundations of computer science
Algorithm Design
UCB CS170, MIT 6.046 - Advanced algorithm techniques
Theory of Computation
MIT 6.045J - Automata, computability, complexity
Cryptography
Stanford CS255 - Mathematical foundations of security
Convex Optimization
Stanford EE364A - Optimization in ML and algorithms
Stage 6
Machine Learning & AI
Explore the fascinating world of artificial intelligence
Machine Learning Fundamentals
Andrew Ng ML, Stanford CS229 - Core ML concepts
Deep Learning
Stanford CS231n, CS224n - CNNs, RNNs, Transformers
Reinforcement Learning
UCB CS285 - Deep RL and policy optimization
AI Systems
CMU 10-414 - Deep learning systems and optimization
Stage 7
Specialized Topics
Explore advanced and specialized areas of computer science
Computer Graphics
Stanford CS148, Games101 - Rendering and visualization
Parallel Computing
CMU 15-418/Stanford CS149 - GPU programming and CUDA
Distributed Systems
MIT 6.824 - Consensus, replication, fault tolerance
System Security
UCB CS161, SU SEED Labs - Security and cryptography
Ready to Start Your CS Journey?