Companies Home Search Profile

Low Level System Design, Design Patterns & SOLID Principles

Focused View

Prateek Narang

5:44:47

0 View
  • 1 -Introduction.mp4
    01:34
  • 2 -Course Logistics.mp4
    02:41
  • 3 - Github Repository.html
  • 1 -OOPS - Classes, Objects, Interfaces, Inheritance & Polymorphism.mp4
    22:45
  • 2 -Small Note on Access Modifers.mp4
    01:49
  • 3 -Unified Modelling Language (UML).mp4
    15:07
  • 1 -SOLID Principles.mp4
    00:42
  • 2 -Single Responsibility Principle (SRP).mp4
    07:39
  • 3 -Open Close Principle (OCP).mp4
    12:52
  • 4 -Liskov Substiution Principle (LSP).mp4
    16:16
  • 5 -Interface Segregation Principle (ISP).mp4
    06:57
  • 6 -Dependency Inversion Principle (DIP).mp4
    13:30
  • 1 -Introduction to Design Patterns.mp4
    03:31
  • 2 -Introduction to Behavioural Design Patterns.mp4
    01:56
  • 1 -UndoRedo Problem Statement.mp4
    05:03
  • 2 -Memento Pattern Summary.mp4
    03:51
  • 3 -Solution using Memento Pattern.mp4
    12:18
  • 1 -Problem - Publisher Subscriber Model.mp4
    06:30
  • 2 -Solution - Observer Pattern.mp4
    05:47
  • 3 -Implementation - Observer Pattern.mp4
    11:40
  • 4 -Observer Pattern Benefits & Use Cases.mp4
    02:41
  • 1 -Strategy Pattern - Problem Statement.mp4
    04:18
  • 2 -Strategy Pattern - Solution.mp4
    07:51
  • 1 -Command Pattern - Problem Statement.mp4
    05:07
  • 2 -Command Pattern - Solution.mp4
    09:12
  • 3 -Command Pattern - Benefits & Use Case.mp4
    04:07
  • 1 -Template Method Pattern - Problem Statement.mp4
    05:37
  • 2 -Template Method Pattern - Solution.mp4
    07:01
  • 1 -Iterator Pattern - Problem Statement.mp4
    07:30
  • 2 -Iterator Pattern - Solution.mp4
    10:33
  • 3 -Iterator Pattern - Benefits & Java Iterables.mp4
    07:24
  • 1 -State Pattern - Problem.mp4
    08:48
  • 2 -State Pattern - Implementation & Benefits.mp4
    08:29
  • 1 -Mediator Pattern - Problem Statement.mp4
    06:23
  • 2 -Mediator Pattern - Implementation.mp4
    12:11
  • 3 -Mediator Pattern - Benefits & Use Cases.mp4
    02:34
  • 1 -Introduction to Creational Patterns.mp4
    02:27
  • 1 -Singleton Pattern - Problem Statement.mp4
    06:51
  • 2 -Singleton Pattern - Solution.mp4
    06:31
  • 1 -Builder Design Pattern - Problem Statement.mp4
    06:06
  • 2 -Builder Design Pattern - Solution.mp4
    11:12
  • 1 -Factory Pattern - Problem.mp4
    05:35
  • 2 -Factory Pattern - Solution.mp4
    05:34
  • 1 -Abstract Factory Pattern - Problem.mp4
    05:09
  • 2 -Abstract Factory Pattern - Code.mp4
    10:32
  • 1 -Prototype Pattern Problem.mp4
    12:46
  • 2 -Prototype Pattern Solution.mp4
    08:40
  • 1 -Structural Design Patterns.mp4
    01:10
  • Description


    Master Proven Design Techniques and SOLID Principles to Build Robust and Scalable Systems!

    What You'll Learn?


    • Understand Core Design Patterns: Learn the most widely-used design patterns in Java, including Creational, Structural, and Behavioral patterns
    • Apply SOLID Principles: Master the SOLID design principles to write cleaner, more maintainable, and scalable code in your software projects
    • Improve Low-Level Design: Gain the ability to design efficient, flexible, and robust object-oriented systems through low-level design practices.
    • Build Scalable Applications: Learn how to use design patterns to create scalable and extensible Java applications that can adapt to changing requirements

    Who is this for?


  • Aspiring Software Developers: Individuals who are new to programming or transitioning to Java and want to build a solid foundation in software design principles.
  • Junior to Mid-Level Software Engineers: Developers with some experience in Java who wish to deepen their understanding of design patterns and improve their ability to create maintainable and scalable software.
  • Computer Science Students: University students or self-learners seeking to supplement their academic knowledge with practical skills in low-level design and object-oriented programming.
  • What You Need to Know?


  • Basic Knowledge of Java: A fundamental understanding of Java programming, including object-oriented concepts such as classes, inheritance, and interfaces.
  • A Computer with Java Installed: You'll need a computer with Java and a development environment (such as IntelliJ IDEA or Eclipse) to practice coding examples
  • More details


    Description

    Are you looking to take your Java programming skills to the next level and master the art of designing scalable, maintainable, and efficient software systems? In this course, Low Level System Design, Design Patterns & SOLID Principles, Prateek Narang, an experienced Software Engineer and Instructor and having worked with companies like Google, Scaler, Coding Minutes etc will guide you through the world of object-oriented design patterns, essential for building robust applications in real-world scenarios.

    What You’ll Learn:

    • Understand the fundamental design patterns used in software engineering and how to apply them effectively in Java.

    • Explore creational, structural, and behavioral patterns, and their practical use cases.

    • Write cleaner, more efficient code by leveraging well-established design principles.

    • Learn how to improve low-level design for building scalable and maintainable applications.

    • Solve complex design problems with ease using proven design techniques.

    Benefits of Doing a Design Patterns Course

    1. Improved Software Design Skills:

      • Learn how to build flexible, maintainable, and scalable software systems by applying proven design solutions.

      • Design Patterns are tried-and-tested solutions that help you handle recurring problems in software design.

    2. Enhances Problem-Solving:

      • Acquire a deeper understanding of common software design challenges and how to solve them using structured approaches.

      • Patterns provide frameworks for thinking about structural, creational, and behavioral issues in software.

    3. Better Code Readability and Maintenance:

      • Patterns lead to code that is more understandable and self-explanatory.

      • By following widely known design patterns, your codebase becomes easier for other developers to read and maintain.

    4. Code Reusability:

      • Design patterns encourage reusability, which reduces redundancy and makes your codebase more efficient and concise.

      • Patterns like Factory, Prototype, and Singleton encourage the creation of reusable objects and solutions.

    5. Align with Industry Best Practices:

      • Design patterns are a fundamental part of object-oriented design and are widely adopted by the industry. Mastering them shows you’re following industry standards.

      • In interviews and workplace challenges, design patterns often serve as best practices when architecting solutions.

    6. Better Team Collaboration:

      • Design patterns provide a shared vocabulary for discussing design problems and solutions with other developers.

      • This common language improves collaboration within teams and makes communication more effective.

    7. Preparation for System Design Interviews:

      • Many technical interviews for mid-to-senior roles focus on system design questions where knowledge of design patterns is essential.

      • Mastering the foundational concepts of design patterns is crucial for successfully handling these interviews and presenting scalable, optimized solutions.

    8. Handle Complex Systems:

      • Gain the ability to break down complex systems into smaller, manageable pieces using patterns like Composite, Facade, and Bridge.

      • Structural patterns allow you to design systems that are easier to extend and maintain.

    9. Build Scalable and Extensible Architectures:

      • By using design patterns, you can create systems that can scale with increasing complexity and adapt to changing requirements.

      • Patterns like Decorator and Strategy support adding functionality or swapping algorithms without modifying existing code.

    10. Improved Decision-Making:

      • By understanding the pros and cons of each design pattern, you'll be better equipped to make decisions about which approach suits a specific situation.

      • It enables you to evaluate different design options and pick the most optimal solution.

    11. Framework and Library Understanding:

      • Modern frameworks and libraries heavily rely on design patterns (e.g., Singleton in Spring Framework, Factory in GUI toolkits).

      • A strong grasp of design patterns helps you better understand how these frameworks work under the hood.

    12. Career Growth and Opportunities:

      • Mastery of design patterns is often expected for senior-level roles (e.g., architect, tech lead), improving your chances for career advancement.

      • It increases your confidence to tackle complex design problems and lead teams in making architectural decisions.

    Design patterns are the foundation of good software design. They help you solve recurring problems and improve the structure and quality of your code. This course offers hands-on examples and real-world scenarios to help you understand and implement these patterns effectively.

    Whether you’re preparing for technical interviews or aiming to write better software, this course will give you the practical skills and confidence you need to level up your design capabilities.

    Who this course is for:

    • Aspiring Software Developers: Individuals who are new to programming or transitioning to Java and want to build a solid foundation in software design principles.
    • Junior to Mid-Level Software Engineers: Developers with some experience in Java who wish to deepen their understanding of design patterns and improve their ability to create maintainable and scalable software.
    • Computer Science Students: University students or self-learners seeking to supplement their academic knowledge with practical skills in low-level design and object-oriented programming.

    User Reviews
    Rating
    0
    0
    0
    0
    0
    average 0
    Total votes0
    Focused display
    Category
    Prateek Narang
    Prateek Narang
    Instructor's Courses
    Prateek is popular programming instructor and an ace software engineer having worked with Google in the past, currently working with Scaler and created Coding Minutes to bring high quality courses at pocket friendly pricing. He is known for his amazingly simplified explanations that makes everyone fall in love with programming. He has has over 5+ years of teaching experience and has trained over 50,000 students in classroom bootcamps & online course at a popular bootcamp in the past. His expertise lies in problem solving, algorithms, competitive programming and machine learning. His interactive mario style at prateeknarang resume is loved by all. Many of his ex-students are now working in top product companies like Apple, Google, Amazon, PayTm, Microsoft, Flipkart, Samsung, Adobe, DE Shaw, Codenation, Arcesium and more.
    Students take courses primarily to improve job-related skills.Some courses generate credit toward technical certification. Udemy has made a special effort to attract corporate trainers seeking to create coursework for employees of their company.
    • language english
    • Training sessions 47
    • duration 5:44:47
    • Release Date 2025/02/25