Learning Paths¶
The site is organized as a reference, but the following sequences turn it into a course. Complete the exercises on each page before moving forward.
Algorithms and data structures¶
- Asymptotic analysis
- Correctness and invariants
- Arrays and linked lists
- Searching
- Sorting
- Trees and heaps
- Graph representations
- Graph algorithms
- Algorithm design paradigms
Java application development¶
- Object-oriented programming
- Design principles
- Design patterns
- Collections and generics
- Equality, hashing, and immutability
- Exceptions
- Streams
- Concurrency and parallelism
- Testing and benchmarking
- Practical engineering techniques
- Spring Boot
Backend and systems¶
- HTTP and REST
- Relational databases
- Transactions and isolation
- Persistence and transactions
- Security fundamentals
- Patterns in Spring
- Observability and resilience
- Distributed systems
- Practical engineering techniques
Modern C++¶
- Overview and toolchain
- Types, values, and references
- Functions and classes
- RAII and resource management
- Pointers, lifetimes, and ownership
- Copy and move semantics
- Object-oriented programming
- Templates and concepts
- Standard library
- Error handling
- Concurrency
- Testing and build tools
- C++ and Java compared
These paths are cumulative, not exclusive. Use the glossary whenever a term is unfamiliar and consult the bibliography for deeper treatment.