Computer Science & Software Engineering
Build the foundations behind great software: learn version control, data structures and algorithms, testing, software design and architecture with free, step-by-step roadmaps.
About Computer Science & Software Engineering
Computer science is the study of how computers solve problems, and software engineering is the discipline of turning that knowledge into reliable software that teams can build and maintain over years. Languages and frameworks change quickly, but the fundamentals stay the same.
Those fundamentals include data structures and algorithms, for writing efficient code, and version control with Git and GitHub, for working safely with others. On top of them sit software design and architecture, which shape how large systems are organised, quality assurance, which keeps them correct, and specialised areas such as blockchain.
Strong engineers combine technical depth with clear thinking, testing and teamwork. The roadmaps below take you from everyday tools to design and architecture, whether you want a career in software engineering or want to understand how good software is built.
Where to start
A suggested order if you are new to computer science and software engineering. Each step builds on the one before.
Domains
Complete roadmaps for software engineering roles, from quality to architecture.
Skills
Core engineering skills you can learn on their own or alongside a domain.
Git and GitHub
Version control workflows, branching, pull requests, and team collaboration.
View map
Data Structures & Algorithms
Master arrays, trees, graphs, and algorithms for technical interviews.
View map
Software Design & Architecture
Design maintainable systems with patterns, principles, and architectural styles.
View mapFrequently Asked Questions
Common questions about learning Computer Science & Software Engineering.