Elevate your software design skills with our comprehensive Advanced Software Design Course, featuring 6 meticulously crafted modules. This program delves into essential software design principles, including logic, data structure design, state management, modularity, and error correction. Equip yourself with the tools to refactor code, avoid hidden dependencies, and master software system design challenges efficiently.
Course Overview
The course is divided into six units, each targeting crucial aspects of software design to bolster your expertise and confidence in handling complex software systems.
Unit 1: Hidden Level of Logic
Explore the critical distinction between design and implementation. Master the use of Hoare's triples to comprehend code complexity and reinforce your software development foundation.
Differentiating design from implementation for more reliable code creation.
Identifying flaws in code that seems infallible.
Avoiding vulnerabilities in seemingly simple code.
Utilizing Hoare's triples for a clearer view of code complexity.
Unit 2: Principle of Embedded Design
Engage with the principle of embedding program design directly into code to simplify system design.
Deriving code from design documentation to streamline system design.
Enhancing code structure using the embedded design principle.
Eliminating hidden dependencies to maintain task simplicity.
Unit 3: Principle of Representable and Allowable States
Constrain program states to represent only allowable options, reducing error likelihood.
Partitioning state space to minimize failure chances.
Creating data structures and APIs that resist misuse.
Crafting reliable code without extensive error checks.
Unit 4: Principle of Data over Code
Embrace a data-centric approach to enhance modularity and information concealment.
Applying Parnas's information hiding principle for over four decades.
Increasing modularity and extensibility through information hiding.
Improving program clarity by organizing around data structures.
Fostering quick comprehension of complex systems.
Unit 5: Algebraic Refactoring
Harness algebraic techniques to reveal the underlying commonality in diverse structures.
Recognizing data types as variations of sums and products.
Realizing common refactorings are based on a few fundamental rules.
Parallels between program refactoring and algebraic factoring.
Unit 6: Code Longevity
Assess when detailed design is essential and when it can be postponed for future development.
Identifying assumptions within lines of code to mitigate future issues.
Ensuring future compatibility through the Liskov substitution principle.
Applying subtype theory to prevent complexity buildup and future code complications.
Jimmy Koppel is a computer scientist and serial entrepreneur whose research has been featured in the New York Times. At the age of 20, he graduated from Carnegie Mellon University with dual degrees, became a recipient of the Thiel Fellowship, and later earned a Ph.D. in programming languages from MIT.
Through his company, Mirdin, Jimmy has trained over 400 software engineers at an advanced level. His software design blog has garnered more than 1 million views, inspiring professionals worldwide. He is currently the founder of UpToSpeed, a company that helps engineers adapt quickly and become productive when working with complex codebases.
Mirdin is an online platform for advanced learning that accelerates the development of programmers by simulating years of experience and design mistakes in just a few hours. Founded by Jimmy Koppel and Nils Eriksson, Mirdin offers hands-on training in software design, programming, and MLOps for advanced-level engineers.
Niels progressed from a junior developer to a lead engineer in just three years. He became the technical leader of the core web platform team at Discovery Networks and participated in the development of products like Discovery+, which are now used by millions worldwide. In 2020, Niels listened to a podcast featuring Jimmy Koppel and decided to take his course. His achievements were so impressive that Jimmy personally invited Niels to become his business partner.
Watch Online 138 lessons
This is a demo lesson (10:00 remaining)
You can watch up to 10 minutes for free. Subscribe to unlock all 138 lessons in this course and access 10,000+ hours of premium content across all courses.