The Software Engineer path is the deepest track. It covers computer science fundamentals, data structures, algorithms, object-oriented design, and system design.
Topics covered
- Programming fundamentals: variables, functions, control flow, recursion, and scope.
- Data structures: arrays, linked lists, stacks, queues, trees, hash tables, and graphs.
- Algorithms: sorting, searching, recursion, dynamic programming basics, and Big-O analysis.
- Object-oriented design: classes, inheritance, composition, and design patterns.
- Testing and code review: writing tests, reviewing code, and maintaining quality.
- System design: scalable architectures, databases, caching, and trade-offs.
- Git and problem solving: version control and structured debugging.
Who should take this path
This path is best if you already have some programming experience and want to prepare for technical interviews or deepen your engineering knowledge. The recommended experience is intermediate to advanced.
Projects and outcomes
- Design a Parking Lot — an object-oriented system demonstrating SOLID principles and design patterns.
- Design Twitter — a written system design case study for a large-scale social platform.
The path is roughly 40 hours, with 47 lessons, and ends with a certificate of completion.
Getting help
Use the NextMath track for the math behind algorithms, and visit the Community Forum for code review.