Have you ever written code that worked on the first day, and became hard to change a month later?
This course teaches low level design by building one project, a game engine for turn-based games like tic-tac-toe, with AI players of different strengths. We start by writing the code with no design at all, so that you can see where it breaks as new features come in.
After that, every new feature request makes us change the code, and every change teaches a principle. This is how we cover DRY, the five SOLID principles, and inheritance versus composition. We also build design patterns where the code needs them, like prototype, builder, strategy, factory, chain of responsibility, and memento for undoing moves. The first four videos are free.
The second part is machine coding, where we write working code for four problems. These are a payment tracking app like Splitwise, a cache, an event bus and a rate limiter. Each problem goes from the requirements to the code, with quizzes, diagrams and code downloads beside the videos.
At the end, there is a test on the whole course, so that you can check what you have learned.
I hope you enjoy the course. Cheers.