Design Patterns in Plain English | Mosh Hamedani

  • Published on May 26, 2022

Comments • 575

  • Евгений Попов
    Евгений Попов 2 years ago +43

    If it were a piece of music, it would win a Grammy, if it was a feature film, I would get an Oscar. So it is a programming course about the patterns, oop, solid, interfaces that every developer should see. Its the best explanation i have ever seen. Thank you, Mosh, for the great work!

    • Aung Nai Oo
      Aung Nai Oo 7 months ago +2

      Now I'm listening lofi rain music and start this course because of this comment 😁

  • Mustafa Sange
    Mustafa Sange 2 years ago +36

    As I was learning about design patter, I am lucky the course has come at the right time. Thanks a lot for the hard word you have put in teaching us 👍

    • Mustafa Sange
      Mustafa Sange 2 years ago

      Programming with Mosh sure. Also subscribed for the course.

  • Furkan Cengiz
    Furkan Cengiz Month ago

    I've been coding for 6 months and never used interfaces but learned (I thaught I had learnt them). I've done more than 20 projects to improve my coding skills and I think if I knew interfaces properly, I wouldn't have done a lot of coding repeating. I love them and I will use them ! Thank you

  • Vunerio
    Vunerio 11 months ago +14

    After so many years, I finally understood what Interfaces are for ! 😭
    You are so clear in your explanations ! 👨🏼‍🏫🎯

  • David Souza Naranjo
    David Souza Naranjo 2 years ago +32

    I've taken a course from you a while ago on Udemy and I can tell you're one of the best instructors I've had, congratulations!

  • Krystian H
    Krystian H 2 years ago +7

    Hi Mosh, is the part 3 coming to live soon? I'm missing creational patterns. Those are pretty important as well.
    Great content! Thanks!

  • Barwal Gayatri
    Barwal Gayatri Year ago +2

    Hi Mosh please add this full course under Udemy so that we can get corporate approval for the course fee payment

  • Faizan Darwesh
    Faizan Darwesh 2 months ago

    This is pure gold

  • Paul Goddard
    Paul Goddard 6 months ago +2

    Mosh, so glad to see you avoid using abstract classes and suggest interface instead! So many demos will not take this into account. I think Microsoft had a good way of distinguishing when to use abstract class over interfaces. They suggested 'versioned' implementations as one reason to use an abstract class. I like your simpler or more pragmatic approach for beginners.

  • Zaheer Ud Din Faiz
    Zaheer Ud Din Faiz 2 years ago +2

    Hey Mosh! Thank you for this overview of the course. An off-topic question, could you please tell in which tools do you make these animations?

    IBRAHIME SYLLA 2 years ago +3

    Thanks again for your wonderful courses. Actually I bought one of your python videos courses,I really enjoyed it and the videos were dope and full of useful information as a programmer needs. So, I was wondering if you can make us or referring to the best books or PDF were we can practice a lot as presented on your videos. Thanks again you motivate me and inspiring me. I am really thankful for all what’re you doing to help us. I just don’t know how to thank you because now I spend more than 5 hours a day to learn programming believe me without you I couldn’t be so driven.

  • M O
    M O 2 years ago +1

    Thank you for this effort, Mr. Aziz from the heart. I hope that you will continue. I want to ask you that you are a professional in programming. How can I learn Java after finishing Java? What do you advise us to learn?

  • Ajoy Karmakar
    Ajoy Karmakar Year ago

    you are seriously a good teacher without any doubt!

  • Nacer Ali
    Nacer Ali Year ago

    Hey Mosh, Thanks for this course, it is so great as always.
    am I mistaken or the relationship in State diagram between Context and State should be an aggregation?

  • Destiny James
    Destiny James Year ago +1

    I love how much effort you put into these videos.
    Changing Images and nice explanation makes this the best video for the topic.
    Came here because my lecturer was just reading the slides, and the slides was confusing

  • Shubham Sinha
    Shubham Sinha Year ago +2

    This is the best explanation of the OOPs principle, I felt like I've known nothing before. I've watched at least 20 videos on OOPs, none has explained it so well. Great content!

  • Sanan Y
    Sanan Y 2 years ago

    Awesome tutorial ! The two parts of this course are awesome.Mosh, When will you release the 3rd part of this course?

  • Tudor Todorescu
    Tudor Todorescu 2 years ago

    awesome course Mosh, I've got in early, and I LOVE IT! I'm using typescript since I do mostly frontend development and the cool part is that it supports all of the OOP principles that java has, I started wroting most examples in ts files.... these design patterns are so powerful, omg!

  • Nicolás Ignacio Leone
    Nicolás Ignacio Leone 2 years ago +1

    Excellent! Despite not understanding too much English and not programming in Java, I can tell you that you have been very explanatory and very helpful! keep going! Regards!

  • Eltjon Sulaj
    Eltjon Sulaj 2 years ago +1

    Hello Mosh! Congratulations for your work! One question. Is there any plan or thought about doing a course related to Domain Driven Development?

  • Sam remulla
    Sam remulla 11 months ago +2

    Hi Mosh, Thanks for the course, I ordered it and learnt new things about the design patterns. Can you please confirm when we can get the part 3 for Creational patterns? Have been waiting for it! Thanks

  • Deepti Monga
    Deepti Monga 2 years ago +1

    Hi Mosh, Please put the whole course on udemy. This 1 hour intro is excellent. Looking forward to buy this course on udemy please. Regards.

  • Satish Komakul
    Satish Komakul 10 months ago +3

    Hi Mosh, really it's very fantastic video on design pattern, before that I just know only design patterns definition but now I have understood clear picture of design patterns the way you provide examples its key point and really good understanding, Thank you so much it's really help me a lot, please also upload other patterns. Thank you very much my guru.

  • D A N I
    D A N I 2 years ago +1

    Hi Mosh, Please create course for System Design. That will be helpful for many experienced developers. I am using your course(Data structures & algorithms and Design patterns) for my interview preparation. But I am missing system design course. I have seen few other tutorials. But you explain things better than anyone.

  • j p
    j p 2 years ago +11

    I'm only 9:52 in and I can already tell I'm going down the rabbit hole watching your videos. Great job! Love it! I already know this stuff to a certain degree, from using it all the time, but am trying to clean up my explanations in interviews and presentations and your video is clear and concise. Very nice job! Helps me think about the topics in really clear ways.

  • Na Boo
    Na Boo Year ago +2

    Thank you, Mosh. just purchased your course. Super excited to learn it.

  • FounderOf ISIS
    FounderOf ISIS Year ago

    Great examples of differentiating between abstraction (design principle) vs encapsulation (under the hood implementation principle).

  • Muaaz Naeem
    Muaaz Naeem 2 years ago

    Hi Sir ..just wanna say thank you for your courses i learnt many things from you....even now a days ( in Quarantine) i spend most of the time in my day in front of you ... a great respect and love for you my Teacher...

  • gingerine
    gingerine 2 years ago +3

    Just started this course but am very impressed so far. I just graduated with a diploma in computer programming but never really grokked design patterns. Thanks for all your work! I will be purchasing the full program.

  • Chomba
    Chomba Year ago +1

    Thank you Mosh i find your tutorials more resourceful than school lectures

  • Antony's Piano
    Antony's Piano 4 months ago

    No words bro, Excellent !!!! and THANK You from the bottom of my heart for keeping these treasures online for FREE .. I had used ur Python course in 2020 and could use that knowledge in my project.. Now design patters. Only thing I can say , you are the best in both of this (Cause I have been searching a lot and met with many online instructor) .

  • Stan
    Stan 2 years ago +1

    Mosh you're absolutely the best! I'm not a native speaker, and your MVC course helps me to improve both programming skills and English. Moreover, I haven't found as useful and handily examples as you show

  • Victor Bouffier
    Victor Bouffier 4 months ago

    Thanks Mosh. You have a very clear way of presenting ideas to make them easily understandable. Kudos!

  • John Mbugua
    John Mbugua 2 years ago +1

    Am new in programming. I didn't know where to start. I watched many videos about python but I always got lost. But as soon as I watched your teaching, my God! am so happy I understand what you are saying. #you are a God sent Mosh. Thanks a million.

  • Mihai Dumitru
    Mihai Dumitru 2 years ago +5

    Hi Mosh, happy to see you back and more present online, I love your teaching skills. I would like to see an update to your MVC course, using latest dotnet core. Keep up the good work!

  • Jorge Cañas
    Jorge Cañas 11 months ago +4

    Just want to say that I've been in college for 2.5 years now and this is the first time I understand what an interface is for, thanks a lot!

  • NodeJS Man
    NodeJS Man 2 years ago +1

    Well taught good sir. Your content translates so well into the working world!

  • hoàng tran
    hoàng tran 2 years ago

    First i really appreciate your lesson in this video, this video is so great and extremely easy to understand for a fresher like me with a lot of clear explanations and examples.
    However, i want to ask that in the part of Memento Pattern, is it better if History pop() method remove the current EditorState obj and call the previous EditorState obj instead of calling and removing the previous EditorState obj at the same time?
    ------- History class:
    public EditorState pop() {
    int lastIndex = states.size()-1;
    EditorState lastItems = states.get(lastIndex);
    int restoreIndex = states.size()-2;
    EditorState restoreItems = states.get(restoreIndex);
    return restoreItems;
    ---------- Main class:
    public static void main(String[] args) {
    Editor editor = new Editor();
    History history = new History();

  • Se Bai Ling
    Se Bai Ling Year ago +1

    Perfect Java Programming Teaching Materials and Perfect Professor!

  • DorqueDaisyLive
    DorqueDaisyLive 9 months ago

    This is the first time in my life I was VOCALLY answering to a video content while watching it. So much value, made me feel I was in a class (no pun intended). Thank you !!!!

  • Taslim Arefin Khan
    Taslim Arefin Khan 2 years ago

    Hey Mosh, I have two questions. At 53:51 in memento pattern, you did not push the content "c" to the history list. I am wondering why is that. Also, I realise that history.pop() needs to be exposed to the main class, but could we have done better and instead exposed only the editor class to the main class and hide history as implementation details? The code seemed a bit messy the current way.

  • Rajeev Kumar
    Rajeev Kumar Year ago

    thanks mosh for this wonderful explanation :D. Can you please make a series on System Design?

  • Leina M
    Leina M 2 years ago

    Thank you! You are a great teacher!

  • Shima Mp1999
    Shima Mp1999 2 years ago

    This course is amazing Thank You for sharing it :)

  • Ganesh Kumar
    Ganesh Kumar 2 years ago +1

    Very good video. Loved the way it is presented. Mainly its not boring even though its 1 hour 20 mins. Well done Mosh!

  • Tori Ko
    Tori Ko Year ago

    Wow, from the intro this seems super interesting and applicably to me and the questions I’ve been having. I never would of heard of this concept/looked into it if wasn’t something you posted Mosh!

  • Vivek Kaushik
    Vivek Kaushik Year ago

    This is by far the simplest, visually appealing, informative video I have found on youtube about design patterns.

  • Manuel Brenner
    Manuel Brenner Year ago

    Thank you. Awesome! Nice explained and very transparent. Good Job! Even for other Programming Languages

  • Agil Asadi
    Agil Asadi Year ago +1

    Feedback: everything looks nice and easy to understand, my only problem is that you are getting into IDE features too much too often, it's somewhat confusing.

  • Shiva Krishnan
    Shiva Krishnan 2 years ago

    You are absolutely great Mosh. Thanks a lot for all your wonderful courses. Love from India ❤️🇮🇳

  • naveen singh
    naveen singh 2 years ago +1

    Thank you Mosh for this tutorial.. I love your way of teaching 👍

  • Michelle
    Michelle Year ago

    Thank you for this. I just hope this becomes available in Udemy as well like your other courses. I’ve purchased most of your classes there and they’ve been a huge help for me. Keep up the great work!

    JIE PAN Year ago

    I do not major in Computer Science, but I want to find a job as a programmer , your video is very helpful with clear explanation ,which is so friendly to a green hand like me ! you're one of the best CS teachers in the world !

  • Israil Karud
    Israil Karud 2 years ago +68

    Mosh's teaching is the best in the world. Great Educator. Lots of love

  • Imonisa Brian
    Imonisa Brian 2 years ago +2

    Hey Mosh, I started learning programming with your tutorials on JavaScript, I really enjoyed most of the things you taught me. Well, sir, I understand what you are taught here but I would like you to please do this same thing with JavaScript like you did with Java

    • Syed Ali
      Syed Ali Year ago

      Hey fellow JS developer. Was lookign for someone ask this question. It seems like Data Structures and Algorithms or this course are really for those big languages.

  • رضا رضائی
    رضا رضائی 7 months ago

    very useful i enjoy the way you explain the thoughts behind creation of each pattern

  • Yorgos Lamprakis
    Yorgos Lamprakis Year ago

    bought your course even though the company i am working for provides us with full access to udemy for business and o'reilly books . thanks for the great content (I am also looking forward to part 3) :)

  • marlo
    marlo 2 years ago +2

    Hey Mosh! I love al your courses, and in my opinion you are one of the best. I have a question about this new course. What patterns are you explaining in this course? (Factory, Builder, etc)?

    • Carlos Contreras
      Carlos Contreras 2 years ago

      Hi! He said he will cover 22 of 23 of the Classic Design Patterns.

  •  bharat thapa
    bharat thapa 2 years ago +1

    as a programmer, can you be more happier?
    I have one question for you Mosh
    are you ever planning to make any lecture videos on php (anything)
    because I love php and it's great language for web development.
    Can you please teach php as well?
    Thank you

  • A Pall
    A Pall Year ago

    Mosh is really good for explaining Concepts
    Thank you for making this video public

  • Souls
    Souls 2 years ago +1

    Its always a good refresher, thank you very much!

  • Ammar Sohail
    Ammar Sohail 11 months ago +1

    Hi Mosh! I am wondering if you explained encapsulation in the abstraction section as well. I heard abstraction was about abstract classes, functions, and interfaces. But you made some functions private and called this abstraction. Could you elaborate, please?

    • Ammar Sohail
      Ammar Sohail 11 months ago

      Oh! I got that abstraction(which I think is abstraction) explanation in the Polymorphism section!!! I thought polymorphism was Overloading and Overriding. Please tell me if the concepts have a lot of intersection with one another(my definitions also make sense) or there is a big oops on my understanding of OOP?

  • mual77
    mual77 2 years ago +9

    MOSH, every content you add is very beneficial to all. Thanks a million.

  • Andrei Nicolau
    Andrei Nicolau Year ago +13

    This is great. I can't imagine the amount of work it took to make this video. All the editing, recording, making sure things are right and all for 80 minutes of continuous teaching. Great job man. I want to pay you some money and there is an option to pay directly on youtube for perks. Why don't you use that one ?

    • Seyha Seng
      Seyha Seng 12 days ago

      For meh, All I can pay back is click like button

  • Henrique Martins
    Henrique Martins 4 months ago

    You have a good didadictic. I guess you would use a stack() of objects. Stack is a class in java which let you use the last-in-first-out principle, making it easier to rollback your states

  • Mithun C
    Mithun C 2 years ago +1

    Thanks Mosh, is this course available on Udemy ? Please kindly provide me the link

    • CANLEAF01
      CANLEAF01 2 years ago

      You have to buy the course on the website above. I think, Mosh won't release it on udemy.

  • 懿峰李
    懿峰李 2 years ago +1

    This is super clear. I am considering to buy those course in the future when I have time. Thank you very much.

  • Be
    Be 2 years ago

    Bravo Mosh ! Explications claires et concepts de la POO illustrés avec des exemples simple aussi bien pour débutants que confirmés :)

  • Shalu Garg
    Shalu Garg Year ago +1

    I am a big fan of your courses .Thank you for your hard work.God bless u always

  • Leon F.
    Leon F. 2 years ago +1

    Thanks for the free preview. I've needed a course on design patterns for a long time.

  • pkoukios
    pkoukios 2 years ago +1

    @Mosh you are the best. Amazing teacher. I have bought most of your courses. What about the creational design patterns? Any update? You said that it would be ready in January.

    • Carlos Contreras
      Carlos Contreras 2 years ago

      It seems he preferred to publish the Redux course first.

  • Amar Singh
    Amar Singh 2 years ago +2

    The way you explain sir, helps understanding me things very easy. You have changed my life Sir.
    Thanks you so much sir. 💙💙💙

  • sabri rihab
    sabri rihab Year ago

    this is a great video ! but i can't seem to see the difference between abstraction and encapsulation can anybody help

  • Sergey Migel
    Sergey Migel 2 years ago +3

    Thank you for your work! Let me some note: interface's name should start with "I" char - ITaxCalculator.

  • Ivan
    Ivan Year ago

    50:05 perfect use-case for auto mapper tools if you have big objects

  • Eduardo Quiroga
    Eduardo Quiroga Year ago

    Dude your tutorials are amazing. Thank you so much!

  • Eduardo Núñez Pezo

    amazing stuff!! I'm working right now on an app and this is going to be helpful. Thanks

  • Giga Spy
    Giga Spy 2 years ago +1

    Huge fan sir, learnt alot. but I want to say that can you very kindly use dark color instread of solid white when selecting new topic like one in 36:42 Thanks alot

  • Lily Yang
    Lily Yang 8 months ago

    Hi Mosh! I am about to buy your course and wondering if there's live Q&A that's part of the course? I sometimes have questions while you are going through the material, but not sure where to ask. For example, for the History class, is there a reason why the instantiation is not inside a constructor for the list of EditorState? Or it really doesn't matter since it's just one instance variable?

  • John Clifford de Vera
    John Clifford de Vera 2 years ago

    Highly recommend this course! You should do a system design course.

  • Simon Poissant
    Simon Poissant Year ago

    In the memento pattern, isn't comparing the "History" class to the "Caretaker" class a bit misleading? Based off the official pattern the "Caretaker" in your solution is really the "Main" class. History is just your own implementation of a stack that the "Caretaker" uses to store the states. At least that's my understanding after checking :)

  • Durukan Ozanalp
    Durukan Ozanalp 2 years ago

    I have been like "what is an abstract class? Where can i find an understandable info?" and met this channel. Then found Mr.Hamedani on udemy =) win-win
    Thank you for the simple explanation.

  • Ntetja Mothabela
    Ntetja Mothabela Year ago

    Mosh you are the programming boss. We thank you again.

  • Abdullah Al Masum

    Mosh you are awesome..
    You make hard things to simple.

    CANLEAF01 2 years ago +1

    Nice course so far, easy to follow, might be useful for my future career as a software engineer in Java. I guess, the third part is still in progress?

    • Carlos Contreras
      Carlos Contreras 2 years ago

      Or maybe he forgot that part, because he just released a new course (Redux)

  • Mohamed Massoud
    Mohamed Massoud Year ago +1

    Thank you so much for helping me get ready for the interview. Promise if I get the job and get cash I will be more than honored to support your awesome work.

    • Paraklesis
      Paraklesis Year ago

      Are congratulations in order?

  • Ivelin Arnaudov
    Ivelin Arnaudov Year ago

    Very good examples. I was struggling to understand some of those, but I got it now. It just clicked! You just won another subscriber :)

  • Josue Barros - Desenvolvedor Web

    I want to learn Laravel, so Design Patterns will come in handy right now! Thanks Mosh! ;)

  • Adrian Monzon
    Adrian Monzon 2 years ago +47

    The "dont abuse pattern" example was genius

  • Narul Islam Riad
    Narul Islam Riad 2 years ago

    Thank u for this wonderful course.

  • Robert G
    Robert G 2 years ago +1

    Thanks for the course! What about more patterns from the Gang of Four, which are very popular?

  • Fatemeh Safinia
    Fatemeh Safinia 2 years ago +3

    Great job Mosh, I was waiting for this course... :)
    I subscribed to your website yesterday but I was wondering why I couldn't find this course there!

    • Sumit Saini
      Sumit Saini 2 years ago

      ​@Programming with Mosh I have taken yearly subscription. will it be included in that yearly subscription mosh?

  • Рустем Искаков

    Thank you for sharing this introduction!

  • Usman Ghani
    Usman Ghani 2 years ago +1

    Simply amazing ❤️

  • Gopi Doshi
    Gopi Doshi Year ago +1

    Thank you for the course, just needed at the right time. I have interview tomorrow, and if I pass, all credits to you

    • Gopi Doshi
      Gopi Doshi Year ago

      @Abouzar Azarpira thank you. all the best to you.

    • Abouzar Azarpira
      Abouzar Azarpira Year ago +1

      @Gopi Doshi good to hear that, gave me hope,
      best of luck

    • Gopi Doshi
      Gopi Doshi Year ago

      @Abouzar Azarpira i got hired for the senior software engineer post.

    • Abouzar Azarpira
      Abouzar Azarpira Year ago

      how was it ?

  • JsonKody
    JsonKody 2 years ago

    I have one question Mosh. What software do you use for video editing? How are those neat animations done?
    Just software names is all I need .. please ;)

  • john e
    john e 2 years ago +1

    40:36 "These are the design patterns every software engineer must master". You don't need to use a single design pattern to write any code. Preferably none are used due to their ability to decrease code quality.

  • Sathiya Seelan Thanapal

    Thanks for this amazing course video.

  • Himanshu Gupta
    Himanshu Gupta 2 years ago

    Best for preparing for interviews where they ask a little programming as well, apart from main concept like data science etc

  • drAuryn
    drAuryn Year ago

    "Plain English" has to be regarded in relation to the complex nature of the topic. For non-IT viewer and visual learner (approx. 30%) still hard to understand on most subjects.