Programming and interview foundations
Software Engineer
Learn the data structures, algorithms, and problem-solving patterns used in technical interviews and everyday engineering decisions.
By the end
Reason about performance, choose suitable data structures, and solve unfamiliar programming problems systematically.
Suggested next course
Start with Big-O Big-O Notation
Count how much work code performs, then describe how that work grows with the input.
Jump to a phase 4 phases
Learn how programs use data
4 courses · 1 practice activities
View phaseHide phase
Learn how programs use data
4 courses · 1 practice activities
Start with runtime, then learn the containers used in nearly every program.
Learn the concepts
- AlgorithmsSuggested nextBig-O Notation
- AlgorithmsArrays
- AlgorithmsStrings
- AlgorithmsHash Tables and Sets
Put it into practice
Build and search structures
6 courses
View phaseHide phase
Build and search structures
6 courses
Work with linked data, call stacks, ordering, and efficient search.
Learn the concepts
Recognize reusable patterns
6 courses · 2 practice activities
AI-assisted Coding includedView phaseHide phase
Recognize reusable patterns
6 courses · 2 practice activities
AI-assisted Coding includedReplace repeated brute force with small, recognizable techniques.
Learn the concepts
- AlgorithmsTwo Pointers
- AlgorithmsSliding Window
- AlgorithmsPrefix Sums
- AlgorithmsIntervals
- AlgorithmsMonotonic Stacks
- Algorithms · OptionalTries
Put it into practice
Solve connected and constrained problems
9 courses
View phaseHide phase
Solve connected and constrained problems
9 courses
Move from trees and graphs to the techniques used for harder optimization problems.