Computer Science Roadmap

Step by step guide to becoming an Android developer.

Back to home

Legend

Propose
Alternatives
Options

1Pick a Language

Python
Go
C#
Rust
C++
C
Java

2Data Structures

Core

Array
Linked List
Stack
Queue
Hash Table

Trees & Graphs

Trees
Graphs
Heap
Tries

Advanced

Balanced Search Trees
Skip Lists
K-D Trees

3Algorithms & Asymptotic Notation

Asymptotic Notation

Big O, Big-Theta, Big Omega
Common Runtimes

Common Algorithms

Recursion
Searching & Sorting
Tree & Graph Traversals
Advanced Algorithms

4Math & Complexity

Probability & Combinatorics
Complexity Classes
Classic Problems

5Computer Architecture & Concurrency

How Computers Work
Processes & Threads
Concurrency

6Networking & Security

Networking

OSI & TCP/IP Models
Core Protocols

Security

Cryptography
OWASP Top 10

7Databases

Types & Design
SQL Commands
Core Concepts
Federation, Replication, Sharding

8System Design

Scalability
CAP Theorem & Queues
Architectural Styles
Cloud Design Patterns

9Software Design & Encoding

Software Design

UML Diagrams
Design Patterns

Encoding & Representation

Floating Point Math
Endianness
Unicode & ASCII

Visit the following related paths and keep learning.