How to Learn Computer Science
A structured path through Computer Science — from first principles to confident mastery. Check off each milestone as you go.
Computer Science Learning Roadmap
Click on a step to track your progress. Progress saved locally on this device.
Programming Fundamentals
4-6 weeksLearn a first programming language such as Python or JavaScript. Master variables, data types, control flow (if/else, loops), functions, and basic I/O. Practice writing small programs and solving beginner coding challenges.
Explore your way
Choose a different way to engage with this topic — no grading, just richer thinking.
Explore your way — choose one:
Data Structures
4-6 weeksStudy core data structures: arrays, linked lists, stacks, queues, hash tables, trees, and graphs. Understand their operations, time complexities, and when to use each one. Implement them from scratch to deepen understanding.
Algorithms and Complexity
5-7 weeksLearn sorting algorithms (merge sort, quicksort), searching algorithms (binary search), graph algorithms (BFS, DFS, Dijkstra), and dynamic programming. Understand Big O notation and analyze algorithm efficiency.
Object-Oriented Programming and Design
3-4 weeksMaster OOP principles: encapsulation, abstraction, inheritance, and polymorphism. Study common design patterns (Singleton, Factory, Observer). Learn to write modular, maintainable, and testable code.
Databases and SQL
3-4 weeksLearn relational database design, normalization, and SQL (SELECT, JOIN, GROUP BY, subqueries). Explore NoSQL databases like MongoDB. Understand indexing, transactions, and ACID properties.
Operating Systems and Networking
4-6 weeksStudy processes, threads, memory management, file systems, and scheduling. Learn networking fundamentals: TCP/IP, HTTP, DNS, sockets, and the OSI model. Understand how the internet works end to end.
Software Engineering Practices
3-5 weeksLearn version control with Git, testing methodologies (unit, integration, end-to-end), CI/CD pipelines, Agile development, code review practices, and documentation. Build a collaborative project to apply these skills.
Specialization and Advanced Topics
8-12 weeksChoose a specialization: web development, machine learning, cybersecurity, distributed systems, or mobile development. Study advanced topics like system design, cloud computing, and architecture patterns. Build portfolio projects.
Explore your way
Choose a different way to engage with this topic — no grading, just richer thinking.
Explore your way — choose one: