How Do I Learn Design Patterns? Which Design Patterns Should I Know?

  Рет қаралды 129,195

IAmTimCorey

IAmTimCorey

Күн бұрын

Understanding Design Patterns is a tricky subject. Should I learn all of the design patterns? When should I use a specific design pattern? Are design patterns important? What about the Gang of Four patterns? Should I learn them all? These are just some of the questions that I get surrounding design patterns. In this video, I am going to answer your design patterns questions.
Mailing List: signup.iamtimcorey.com/
Purchase Courses: iamtimcorey.com

Пікірлер: 428
@PauloMartinezMarin
@PauloMartinezMarin 3 жыл бұрын
"More complex code isn't better", so true.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Yep.
@adamheeg6000
@adamheeg6000 3 жыл бұрын
People who don't know this have scared me so deeply...
@mgerry1992
@mgerry1992 3 жыл бұрын
"You can write great code without using design patterns." - You took the burden off from my shoulders with this sentence! I've always felt frustrated because of not knowing these design patterns by heart but now you helped me realize that I shouldn't - I will learn them if the time has come! Thank you Tim for the great content!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I'm glad. Patterns come when they are needed. Over time, you will start to see yourself using patterns even if you didn't learn them directly.
@victormoreno2767
@victormoreno2767 3 жыл бұрын
Finally have a face for your voice! Amazing job you are doing here. Your SOLID video helped me to get my current job. God bless you my man and like someone else pointed out, it would be great if you have a podcast, would be great to hear your knowledge when commuting. You are an asset to the .NET community!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I am actually working on the podcast idea now.
@adelgeszner1944
@adelgeszner1944 3 жыл бұрын
Could you make a video about what do you call a 'beginner", "intermediate", advanced" level?
@MrSuperKarate
@MrSuperKarate 3 жыл бұрын
Yes, it will be interesting. As i know there is common problem in world about grading knowledge. So you can be Senior in one company and be a Junior at another just because requirements are different..
@adelgeszner1944
@adelgeszner1944 3 жыл бұрын
​@@MrSuperKarate yes, we cannot make a standard generalization because it's one of those things you can't measure easily although category systems do exist to human language levels(but I think when it comes to programming it's way more complicated), but I feel like Tim has a clear image about it in his head (as always) and I am curious about his opinion.
@RooBurry
@RooBurry 3 жыл бұрын
I like this. Or what makes someone a "Senior" vs "Junior". While I've been in Dev for along time and pretty confident in my abilities, I often hesitate about applying for a "Senior" roll / feeling like an Impostor.
@makariyu69
@makariyu69 3 жыл бұрын
+1 on this tim. do it :)
@ZoidbergForPresident
@ZoidbergForPresident 3 жыл бұрын
Beginner: writing "hello world". Intermediate: learning principles and patterns. Advanced: knowing when to apply principles and patterns.
@ajaykomireddy
@ajaykomireddy 3 жыл бұрын
Great videos Tim .. you are the best motivator for any kind of situation that a developer is in . Learning a lot from you !!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I appreciate that!
@mohammeddabbour949
@mohammeddabbour949 3 жыл бұрын
YES! i have been waiting for this, thanks Tim!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
You are welcome.
@torrvic1156
@torrvic1156 11 ай бұрын
Thank you so much for sharing your thoughts Mr. Corey! I had tons of questions regards to those principles and patterns and if I should use them. There are so many controversial opinions on the subject. And you just nailed it!
@IAmTimCorey
@IAmTimCorey 11 ай бұрын
I am glad it was helpful.
@nicolamarizza1521
@nicolamarizza1521 3 жыл бұрын
I have a feeling that you boosted my learning process so much with all your videos. Thanks a lot, love from italy✌🏼
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Happy to hear that!
@naftoliost4534
@naftoliost4534 3 жыл бұрын
Thanks again Tim for your informative videos I'd love to see one where you run through each of the patterns briefly as a reference of its applications / what problem they each come to solve
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thanks for the suggestion.
@akshayupadhyay93
@akshayupadhyay93 5 ай бұрын
Loved the way how you explained it! Just loved it. Difference between a Principle and a Pattern triggered a whole new thought process in me.
@IAmTimCorey
@IAmTimCorey 5 ай бұрын
Glad it was helpful!
@nwobodogeorge5370
@nwobodogeorge5370 3 жыл бұрын
Thank you. I love how you analyse the difference between pattern and principles.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
You are so welcome!
@ArkamitDutta
@ArkamitDutta 3 жыл бұрын
I always get a new perspective from your videos. It would be great if you can have a video on Angular and C#
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I will add it to the list. Thanks for the suggestion.
@mapplesyrup7661
@mapplesyrup7661 3 жыл бұрын
Thank so much Tim . Your videos helps me a lot everyday ever since.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Glad to hear it.
@zasmlabs
@zasmlabs 3 жыл бұрын
Can't wait to see your design patterns series.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I have a playlist on this channel with DRY and SOLID already. More is coming.
@neemapranay23
@neemapranay23 3 жыл бұрын
Amazing video Tim. Lucky to have you in C# community. Thanks for the awesome content.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
My pleasure!
@stephenraphael6911
@stephenraphael6911 2 жыл бұрын
Awesome discusion & thoughts Tim. You readlly cool divide problems & approaches . Very helpful for met .Thank you a lot!
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
You are welcome.
@ominollo
@ominollo 3 жыл бұрын
Hey Tim, I understand your concerns but I still would much enjoy a complete series on Design Patterns made by you! Your videos are great!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Noted, added to the list
@TheCameltotem
@TheCameltotem 3 жыл бұрын
You got hands down the best tutorials. I just wanted to let you know.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thank you!
@gutibokeron
@gutibokeron Жыл бұрын
Amazing as usual! I'm mechanical engineer but somehow i love code and I've developed some mini apps. I wrote all the code without using any patterns, but naturally I could think... I'm repeating myself in here or I could create this aux class to do things easier. And that is how I discovered these principles! And as you said, it has more sense check if your code can be using a few of those principles rather than force your code to implement them. Thanks again Tim!!!
@IAmTimCorey
@IAmTimCorey Жыл бұрын
You are welcome. Thanks for sharing.
@coderbdev
@coderbdev 3 жыл бұрын
Thanks for the reminder :) Sometimes, I need to remember that the principles are often more important than the patterns. One thing beginner coders might need to know is that being a programmer isn't sitting at the desk and writing code all the time. As you know, writing the code is often less than half the work. Programmers are problem solvers. We use code to solve the problems. :) I like the problem solving aspect of it, and principles help a lot! As you stated, the patterns help in more specific cases. Thanks again for this video. Have a great day!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thanks for sharing. I definitely agree. I will probably cover some of that in a future video.
@aniketb2010
@aniketb2010 Жыл бұрын
I believe this the best analysis if this video. 👍🏻
@dickybird08
@dickybird08 3 жыл бұрын
Your thoughts on Security designing and compliance practices seems like a good idea for one of these videos
@StudentCompanion
@StudentCompanion 3 жыл бұрын
Very good topic
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I will add it to the list. Thanks for the suggestion.
@SergeiKjtydghk
@SergeiKjtydghk Жыл бұрын
thank you Tim, awesome answer!
@IAmTimCorey
@IAmTimCorey Жыл бұрын
You are welcome.
@paldeusjaco9657
@paldeusjaco9657 3 жыл бұрын
Hey Tim. I've been so into your videos since i stumbled upon one of them about a year ago. I've been into computers and programming almost since birth lol. I graduated college in 1994. Right now trying the contractor gig, it's feast or famine. Mostly it pays enough for a slice of bread on the table lol. Just wanted to shout out to you and say thank you so much for doing these. I feel like a complete beginner next to you!!! When I get a steady job I want to donate to you just cause you are a help. Heart felt best wishes to you and your family.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I am glad my content has been so helpful to you.
@JeanCarlos-pr8uz
@JeanCarlos-pr8uz 3 жыл бұрын
I was just searching for pattern courses, books, etc. Then this video just came out, thank you so much Tim. I'm a developer with 2 years of experience and i'm so confused about what i need to know and that time's going to teach me.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I am glad it was helpful. This video will probably also be helpful to you: kzbin.info/www/bejne/gobZY2OHrb2dnNk
@user-hu5uf7hi8c
@user-hu5uf7hi8c 6 ай бұрын
As always great video, thanks for sharing.
@IAmTimCorey
@IAmTimCorey 6 ай бұрын
You are welcome.
@Tsunami14
@Tsunami14 3 жыл бұрын
Also, the Gang of Four book was written before the "functional" capabilities began to emerge in C# (and other languages). This further reduced the problems that the GoF book was trying to solve.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
True, although there are still places where most of them fit. They just aren't everyday uses.
@rahulmathew8713
@rahulmathew8713 Жыл бұрын
Some of them is still relevant may be not all of them. Factory Patter is an example. DI injection with Factory will help you get around certain issues. e.g I have a class ThrottledHttpClient which implements IThrottledHttpClient. This ThrottledHttpClient is a wrapper around HttpClient and can handle 429 also prevent it and you can send a list of urls and get back of list of responses. Now if want to use this class in using statement I will have an issue as using statement forces you to create the instance then and there. e.g. using(var client = new ThrottledHttpClient()){} . But this violates the design principle rely on abstraction not on concretion. To solve this i will use ThrottledHttpClientFactory class. Now I will dependency inject the IThrottledHttpClientFactory factory in the class where I need to use it. so using statement will now look like using(var client = _throttledHttpClientFactory .CreateClient()){} public interface IThrottledHttpClient : IDispose { //methods will be added later } public class ThrottledHttpClient : IThrottledHttpClient { private readonly ILogger _logger; public ThrottledHttpClient(ILogger logger) { _logger = logger; } public void Dispose() { } } public class ThrottledHttpClientFactory : IThrottledHttpClientFactory { private readonly ServiceProvider _serviceProvider; public ThrottledHttpClientFactory(IServiceCollection services) { _serviceProvider = services.AddSingleton() .BuildServiceProvider(); } public IThrottledHttpClient CreateClient() { return _serviceProvider.GetService(); } } public static class ThrottledHttpClientFactoryDIRegistration { public static IServiceCollection AddThrottledHttpClientFactory(this IServiceCollection services) { services.AddSingleton(new ThrottledHttpClientFactory(services)); return services; } } in Startup.cs services.AddThrottledHttpClientFactory(); public class EmployeeAPIService : IEmployeeAPIService { private readonly IThrottledHttpClientFactory _throttledHttpClientFactory; public EmployeeManager(IThrottledHttpClientFactory throttledHttpClientFactory) { _throttledHttpClientFactory = throttledHttpClientFactory; } public List GetEmployee() { //old code which violates rely on Abstraction not on Concretion /*using(var client = new ThrottledHttpClient()) { }*/ //New code using(var client = _throttledHttpClientFactory.CreateClient()) { } } }
@al-omdaahmed3191
@al-omdaahmed3191 3 жыл бұрын
As usual great tutorial Thank you for your efforts and hard work
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thank you!
@MrMrMayday
@MrMrMayday 3 жыл бұрын
Best Programming channel on KZbin. I am three years into my career, and it is time for me to up my understanding. This week I am starting to study the areas my dream company is looking for. Your playlist covers a lot of my list from a senior developer at that company.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Great!
@sachinjawale8328
@sachinjawale8328 2 жыл бұрын
Great Explanation Tim ! And yes noted "first identify the problem" and then use principal or design pattern to solve it
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
Thank you!
@lavellefloyd4639
@lavellefloyd4639 2 жыл бұрын
Thanks Tim i needed to hear this
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
You are welcome.
@thomaschua4512
@thomaschua4512 2 жыл бұрын
Thanks Tim,, very practical advice there.
@tomthelestaff-iamtimcorey7597
@tomthelestaff-iamtimcorey7597 2 жыл бұрын
Thanks for watching, please share it around.
@brandonpearman9218
@brandonpearman9218 3 жыл бұрын
Good advice. I have had companies tell me that I have to use certain patterns on all projects. Most of our time was spent trying to figure out how to fit the problem into the pattern. The patterns landed up creating more complex code which was less readable and maintainable. It really is a bad idea to pick patterns before the problems.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Well said. Thanks for sharing a real world example of the problem.
@Bikramkumarsahoo1988
@Bikramkumarsahoo1988 3 жыл бұрын
It's good to see you again Tim. I am still waiting for your video on CLEAN code architecture.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
It is on the suggestion list.
@keyranjoshi10
@keyranjoshi10 2 жыл бұрын
Amazing thank you for sharing. Help a lot and giving me right direction to learn.
@tomthelestaff-iamtimcorey7597
@tomthelestaff-iamtimcorey7597 2 жыл бұрын
Thanks for trusting Tim!
@LearnTwice
@LearnTwice 2 жыл бұрын
What great advice. Hats off 👏
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
Thanks!
@TheLucidway
@TheLucidway 3 жыл бұрын
Superb video and advice. Thank you!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
You are welcome.
@ArifAnsariTheComplexBrain
@ArifAnsariTheComplexBrain Жыл бұрын
Wow..i was just searching over good video to share with my nephew who is starting to learn programming. And this can be the best video before starting on design patterns. Just adding this in my personal playlist for sharing to other learners.
@IAmTimCorey
@IAmTimCorey Жыл бұрын
Great!
@sushmacs9061
@sushmacs9061 3 жыл бұрын
Question: see the problem in your code and then think if any design pattern helps. How to we identify the problem before writing the code ? Compliments, I love your thought on process of applying design pattern. You are first person in my career to have this opinion on design pattern.
@facundorodriguez92
@facundorodriguez92 3 жыл бұрын
Excellent advice!! Gracias!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
You are welcome.
@mobbs8229
@mobbs8229 3 жыл бұрын
Very insightful! Thank you!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Glad it was helpful!
@deeproy7292
@deeproy7292 3 жыл бұрын
very well put...thanks Tim
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
You are welcome.
@PaulCuenin
@PaulCuenin 2 жыл бұрын
Great video thanks for the information.
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
You are welcome.
@shollymore
@shollymore 3 жыл бұрын
All I have to say is thank you for demystifying C#. I am 3 months into my on the job training (post bootcamp) and I find that though I might be able to write code to get thing working (after carefully studying other codes that might do something similar in another application) I usually dont have right term for what I am doing and this video just just helped me with the right term on one of my recent code refactor ... DRY! I wrote the same method 8 times to achieve the same outcome. Using generics I was able to abstract the code into one method and then call that method 8 times instead. Having the right term will greatly improve my report (I have to submit a report of my tickets as part of the training)
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I am glad my content has been so helpful.
@zolisawelani9338
@zolisawelani9338 3 жыл бұрын
This was really helpful thanks, I'm subscribing.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thanks for the sub!
@safirsaalaar91
@safirsaalaar91 2 жыл бұрын
Thank you so much. It addressed some wrong assumptions I had.
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
You are welcome.
@Terracio
@Terracio 3 жыл бұрын
This is reassuring. I've been learning more advanced C# concepts from an Udemy class and I'm having a hard time thinking of implementing them (or how) since the beginning when I'm not even sure if they will be necessary yet. It makes so much more sense to implement stuff as you deem it necessary. Thanks
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
You are welcome.
@Any1SL
@Any1SL 2 жыл бұрын
I use udemy for unity development but for c# intermediate and advanced I'd recommend pluralsight
@codingwithgyver1637
@codingwithgyver1637 3 жыл бұрын
because of Tim's SOLID principle video, I use this as my presentation's reference to students, to spread the good implementations of clean code and design patterns. And at least, it lessen my burden in my team's code base and now improve my standardization to my team and also for new hired programmers that haven't the same mindset as ours.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Glad it was helpful! Thanks for sharing!
@sergiosabas5673
@sergiosabas5673 3 жыл бұрын
Hello Tim, This was such a great video. Thank you so much for posting it. It has provided me with good insights 🙂.I do agree with your idea of not just applying design patterns here and there for the sake of using them, but only to solve a specific problem. Now there are many patterns out there targeted to solve tons of specific problem but I don't know all of them 😓. I would say that the factory, repository, the singleton and the dependency injection patterns are among the most common and certainly the ones I've used the most since I've heard about design patterns, but there are some others that I don't know and thus can't tell which one to apply and when. Of course, I can always go on an try to learn them all on my leisure time but yet I'm not sure that I can remember them all in the future so in your experience, what is the best way to determine when and how to apply those patterns that are not so commonly used (or at least not so common for me 😬)? I do certainly plan to explore those that I don't know of and try to come to some sort of checklist or cheat sheet that helps me to decide what type of problem each specific pattern solves but If you've come to a better way to do this or have heard of someone who had gone that path, I'd love to hear about it. Thanks Tim!. Greetings from Guadalajara, Jalisco, México 😃
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I have found it is better to learn how to identify code issues. Then you can figure out if there is a pattern to improve the code. That way you aren't searching to fix non-existent problems.
@zarradkarim5866
@zarradkarim5866 3 жыл бұрын
thank you very much God bless you .really helpful
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Glad it helped
@CelioMotta
@CelioMotta 3 жыл бұрын
Thanks, keep up the good work!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
You are welcome.
@ssmcs060
@ssmcs060 3 жыл бұрын
why do I remember WWE superstars, big show and Stone cold, as soon as start ur video Everytime. i am getting this feeling as and when u started appearing in tutorials now a days🤔
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
lol
@philtrem
@philtrem 2 жыл бұрын
Because he's gonna kick your ass, but not really.
@vinays4757
@vinays4757 3 жыл бұрын
Nice video. And good content on your channel. Cheers
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thank you very much!
@windgod2008
@windgod2008 3 жыл бұрын
well said! thanks!
@tomthelestaff-iamtimcorey7597
@tomthelestaff-iamtimcorey7597 3 жыл бұрын
Thank you for watching and being a part of the community.
@nikitashutkov1804
@nikitashutkov1804 3 жыл бұрын
Great explanation, thank you :)
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Glad it was helpful!
@ryanm.9326
@ryanm.9326 3 жыл бұрын
Thanks! More videos on design patterns please.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
More are coming.
@YBWang-pi9qq
@YBWang-pi9qq 2 жыл бұрын
Great talk, thank you Tim. I am trapped by too many patterns. you save my life. My take aways if I remember: make app work at firt, especially for small app. To begin with, try DRY(Don't Repeate Yourself) and SRP(Single Responsibility Principal) first. more complex code is not good. Code your app first, do not bother with patterns. You can apply SOLID principals or patterns if you want, but if you feel difficult, just ignore pattersn, go ahead anyway. try SOLID principals first, then patterns, if app is large.
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
I am glad it was so helpful.
@mikemac7408
@mikemac7408 3 жыл бұрын
Cheers. This is some solid advice on the engineering side of software development, distinct from programming. I think it's difficult for the beginner to jump into this topic because they aren't typically writing scalable software they have to grow and maintain with/for other people.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
That's a good point.
@kitakruta
@kitakruta 3 жыл бұрын
Tim i totally agree with you but problem is with some companies that are asking from beginners to know design patterns. That is how i didn't get my first job, i know everything they asked me but didn't know design patterns. I think that it is ok to learn them as you are working on the job, lets say you have some good senior in your team who will tell you which pattern to apply and when. But that is just my opinion and i think that will be faster and easier way to learn them. Thx again on another great video.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Yep. I covered this a bit (not design pattern-specific) in my video on getting a job in C#: kzbin.info/www/bejne/gJ-3qGaMd99mqMk
@JM-ly1vc
@JM-ly1vc 3 жыл бұрын
Thanks Tim. I work for a big company as a Software Developer. Can you please make a video on how to handle frustrations and pressure during a road block or something doesn’t work as intended? Sometimes I take these frustrations to home and that is impacting my personal life.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Absolutely. I will add this to the list. It is an important topic.
@florinionutpolifron6556
@florinionutpolifron6556 3 жыл бұрын
Grate tips! thx!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
You are welcome.
@NotThisDroid
@NotThisDroid Жыл бұрын
Good talk in this vid. It’s crazy how much I’ve learnt by debating code rather than solving a lot of problems coding
@IAmTimCorey
@IAmTimCorey Жыл бұрын
Thanks!
@carllhy
@carllhy 3 жыл бұрын
This is gold !
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I am glad you found it valuable.
@SamSam-df4xp
@SamSam-df4xp 3 жыл бұрын
Perfect advise for a newbie!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thanks!
@garyfirzon
@garyfirzon Жыл бұрын
Great session
@IAmTimCorey
@IAmTimCorey Жыл бұрын
Thanks!
@afsanehhazeghi8890
@afsanehhazeghi8890 Жыл бұрын
Hi Tim, first of all thanks a billion for your great worthy content. I have a question, in addition to SOLID principles, which other principles should we know about (before facing problem as you said) eighter for preparing an interview or while developing.
@alexas09
@alexas09 3 жыл бұрын
I'd like to see a video with design patterns overview. Not that I want to apply them to my code but to know that this design exist and is there to avoid theses kinds of problems. That would help to know when we need a pattern and then dig on how to apply it. I love your channel it is very instructive and you changed my way of thinking multiple times already. Keep on the good work.
@kevingates5851
@kevingates5851 3 жыл бұрын
Search for Tim Corey SOLID and you'll find his walkthrough on the SOLID Principles.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Here you go: kzbin.info/aero/PLLWMQd6PeGY3ob0Ga6vn1czFZfW6e-FLr
@alexas09
@alexas09 3 жыл бұрын
@@IAmTimCorey Thanks! Sorry about that should've search by myself.
@himaan
@himaan 3 жыл бұрын
Ty Tim for another great video lecture. Could you list the most imp patterns from GoF that we should keep in mind as a reference for whenever we face a problem in code that that pattern solves. Also, which of those are widely used in big companies from interview perspective
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I will add it to the list. Thanks for the suggestion.
@dotbhav
@dotbhav 3 жыл бұрын
Great advice
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thanks!
@prabdeepdhaliwal9725
@prabdeepdhaliwal9725 3 жыл бұрын
Thank you!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
You're welcome!
@viniciustrindade6675
@viniciustrindade6675 3 жыл бұрын
Great content, man. Can you make a video about microservices? how and where to learn, some resources etc.. Love from brazil
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
They are coming. It will be a bit yet, but probably this fall.
@Hitasssss
@Hitasssss 3 жыл бұрын
GoF already implemented in C# as: observer (events), builder (i. e. StringBuilder), prototype (Clone), and maybe more. Thanks for video ^_^
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Yep, .NET Core is full of design patterns and best practices.
@Hitasssss
@Hitasssss 3 жыл бұрын
@@IAmTimCorey and of course Iterator, Interpreter (regex), dependency injection. Right, full of patterns ^_^
@scwyldspirit
@scwyldspirit 3 жыл бұрын
Tim I found a question posted from my employer as a general question. Q1 Given you have 2 different version numbers like 4.1.1 and 4.1 write a program that checks the two and returns the correct number
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I can add that as a video suggestion for a future video.
@AliSattarBarani
@AliSattarBarani Жыл бұрын
Amazing tips
@IAmTimCorey
@IAmTimCorey Жыл бұрын
Thanks!
@zhujacky7111
@zhujacky7111 3 жыл бұрын
Yeah,I am agree with you so well!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thanks
@RRCaddick
@RRCaddick 3 жыл бұрын
Hi Tim. I know this comment is a little late, but was hoping you could make a video that could help shed some light on an issue that I think a lot of developers struggle with when they are just starting out. I have been learning C# off Pluralsight for some time now, and completed many of their courses (great content!) , however now seem to have hit a wall. While the examples covered are great, we all know that the only way this knowledge is embedded is through practice and repetition. The problem is that I am finding it hard to find projects that I can work on to embed the knowledge, and without implementing this in my daily work, I lose the understanding quickly as one forgets the topics covered once you have moved on to others. Most examples that I can find online don't seem to cover practical examples that could be used in a business environment. Could you share what your approach would be to embed this knowledge in a more corporate context, so that some of could find it easier to have real world examples for interviews when the time comes to look for work in the field? Hope to hear from you
@SuperDrJeckyl
@SuperDrJeckyl 3 жыл бұрын
Thank you so very, very, very much for these types of videos. I think there are way too many wannabes/egomaniacs wanting to make it look harder than it is. You are providing a great service. P.S. One of your recent ones turned me onto GitHub. I have looked, but do you have a video tutorial on VS Studio 2017 with GitHub/Github Desktop? I am muddling through but would love to see a tutorial that would speed the learning curb.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I don't, sorry.
@SuperDrJeckyl
@SuperDrJeckyl 3 жыл бұрын
@@IAmTimCorey Thanks, anyway. You have provided me a great service. I appreciate your work very much.
@admiralender
@admiralender 3 жыл бұрын
re: SRP ... make sure you understand what the R, responsibility, actually means. "Doing one thing" is beginner friendly way of describing it, but the true meaning of SRP is that an entity should only have one **responsibility** or reason to change (I think that is from Clean Code). Think about if a class has more than 1 responsibility when designing it.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Yep, I cover that in my SRP video.
@TrippleMYouAlreadyKnow
@TrippleMYouAlreadyKnow 3 жыл бұрын
Great video!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thanks.
@herrwolken
@herrwolken 3 жыл бұрын
Tim I am back, here to say again that I love your content and to ask again, if you could release it as a podcast. 😀
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I am actually working with my designer this week on the initial steps to set one up. It isn't 100% certain yet, but it is looking favorable.
@herrwolken
@herrwolken 3 жыл бұрын
@@IAmTimCorey That's very nice!
@arturluckyanenko32
@arturluckyanenko32 4 ай бұрын
Hello Tim, This was such a great video. Thank you so much for posting it. So, if i understood you correctly, it is good to know some basic principles and patterns, but actually apply them when they really need me in my code, if there is no need, it better not using them, rather than apply them?
@IAmTimCorey
@IAmTimCorey 4 ай бұрын
Correct. Every pattern has a cost. For example, most patterns add complexity. If they also remove complexity, they can be worth it. If they aren't removing complexity, don't use them.
@DrowninGGaming
@DrowninGGaming 3 жыл бұрын
Great video, my take away from this video is that you have to look at your code and have quality over quantity (when the quantity increases, ask yourself if it requires more quality to reduce said quantity) ?
@tomthelestaff-iamtimcorey7597
@tomthelestaff-iamtimcorey7597 3 жыл бұрын
Always a good question to ask yourself.
@essamsalah829
@essamsalah829 3 жыл бұрын
thanks @tim helpful tips with easy language for non English native person
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
You are welcome.
@iuliancaldarescu1526
@iuliancaldarescu1526 3 жыл бұрын
Hello, I just discovered you and you sound like an awesome guy with great explanations. I would like to ask you a question and maybe your answer will help others too. What do we need to know or what knowledge do we need to have in C# to get a job as a junior? What we need to cover? Thank you in advance!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I will add it to the list. Thanks for the suggestion.
@KDOERAK
@KDOERAK 3 жыл бұрын
Tim, you speak wise words about learning design patterns: first identify a pain point in your appn; next, is there a pattern solving this problem? In short, another great video.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thank you!
@colin-campbell
@colin-campbell 3 жыл бұрын
I’m seeing an increase in Software Engineering jobs that look for an understanding of SOLID. I’ll definitely need to review that video.
@ewdlop1
@ewdlop1 3 жыл бұрын
look up build your own dependency injection container in C#
@kevingates5851
@kevingates5851 3 жыл бұрын
Search for Tim Corey SOLID and you will find all of his videos on each principle.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Here you go: kzbin.info/aero/PLLWMQd6PeGY3ob0Ga6vn1czFZfW6e-FLr
@ChristianHowell
@ChristianHowell 3 жыл бұрын
Don't.. Acronyms are abused... Keep your path and make sure your C# is solid... Wait...
@antoniomarcos5664
@antoniomarcos5664 3 жыл бұрын
Hi, Tim, about patterns, I find that patterns are smart thinkings for some situations. There are some patterns like a Factory Method that could be written in advance, due to the goal to reach. Although there are other not too trivial and they need a better understanding of our problem to solve, to avoid nonsense complexity. If the coder is getting those principles ( SOLID, for instance ) Those principles lead the code to a good structure, due to refactoring, DRY, and so on. Furthermore, I would like to raise a subject here. I have been noticed that TDD tends to make a "Keep Simple" code through baby-steps and brings a good direction to solve problems. Trying for myself, I realized the best way to understand TDD is to start thinking for tests first, instead of the source code. This approach tends to a better way to reach a better code.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thanks for sharing.
@AloneBoy-1001
@AloneBoy-1001 4 ай бұрын
thx Tim for all times that you spent to learn us 🙏 but what about the times we goin to be through an interviews to get a better position in better company? always interviewer asking do you know this patter, do you know that pattern and ... what we should do in this situation??
@IAmTimCorey
@IAmTimCorey 4 ай бұрын
Memorize for the test. Learn what patterns you need to pass the exams. That's totally fine. The key is to not apply those patterns before your need for them is great enough. Often people will see that they could use a pattern, so they think they should. That's the problem. There are a LOT of cases where a pattern could be used, but it shouldn't be used because it doesn't make the situation better.
@fredrikstrid9922
@fredrikstrid9922 3 жыл бұрын
The simple answer “have the problem before you try implementing design patterns” was all I need. Explains why I have found it so hard learning a lot of patterns and then finding places to implement them.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Great!
@paragraut3504
@paragraut3504 3 жыл бұрын
Hey Tim, can you talk little more about the domain driven design ? Perhaps a small session would be great too 🙏🏽
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thanks for the suggestion. I’ll add it to the list.
@Any1SL
@Any1SL 2 жыл бұрын
Great topic which I'm sure Tim will nail it. In the meantime I'd recommend Jimmy Bogards crafting wicked domains and anemic domains. He shows the problem and refactors to a domain.
@amnesia3490
@amnesia3490 3 жыл бұрын
1-) Do we use Computer Networks a lot and where do we use Computer Networks. What are the benefits knowing Computer Networks for C#.NET developers. (ports, protocols etc) 2-) What are the computer fundementals needs to be known as a developer or into job requirements. What should i know and how deep/much should i know.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I will add them to the list. Thanks for the suggestions.
@rafabaena7408
@rafabaena7408 11 ай бұрын
Thank you
@IAmTimCorey
@IAmTimCorey 11 ай бұрын
Thank you!
@rocknrollini
@rocknrollini 3 жыл бұрын
Help Tim! I did apply to a job and didn't pass the code challenge. Reasons where: readability, too generic names and lack of design patterns, in particular strategies. Have you done or could you please make a video of tips for code challenges? It's hard to concentrate everything you know in a small project of 2-3 hours. But there are specific things they want to see, otherwise you won't pass. Thanks Tim, I love your videos!
@tomthelestaff-iamtimcorey7597
@tomthelestaff-iamtimcorey7597 3 жыл бұрын
Thanks for the recommendation. I have added it to Tim's list of viewer suggestions for videos.
@vittoriomorellini1939
@vittoriomorellini1939 2 жыл бұрын
You are my .Net evangelist. When I have to understand something in .net I look for your webinar and I clear my doubt
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
Thanks!
@chriscatignani8206
@chriscatignani8206 2 жыл бұрын
Video was solid (the adjective).
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
Thanks!
@sasukesarutobi3862
@sasukesarutobi3862 3 жыл бұрын
Now that you've mentioned DIP for the Dependency Inversion Principle, I'm just going to keep picturing Jason from The Good Place when anyone mentions it.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
lol
@timothyn4699
@timothyn4699 2 жыл бұрын
definitely good points. Just doing DRY (don't repeat yourself) in a class / object oriented way can keep people busy for awhile to get that done right
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
Thanks!
@alibarznji2000
@alibarznji2000 3 жыл бұрын
Hey Tim, I have taken a dapper course and I have learned pretty much what there is about it, but I always hear that entity framework is very solid, what do you think? Should I learn EF or it's just redundant?
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Here is your answer: kzbin.info/www/bejne/p5ytap6bd9KEjdE Basically, you might need to know EF for a job but there is a LOT to learn before you use it in production. Don't get sucked into the basic tutorials that make it look easy. They are a trap.
@TJames7869
@TJames7869 Жыл бұрын
I dont understand how your videos only get 300k views. There's really that little programmers out here? We got colleges charging 100k and this man is the greater teacher and we get it for free.
@IAmTimCorey
@IAmTimCorey Жыл бұрын
I appreciate the kind words.
@mark7166
@mark7166 3 жыл бұрын
I always thought the focus on patterns was a bit ass backwards. The way it was taught in my classes seemed too rigid and contrived. As you said, it makes far more sense to use the patterns once you come to a certain point instead of in the beginning, when you’re just devising the initial solution.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thank you - A fellow believer!
@user-no1oe2rg1v
@user-no1oe2rg1v 3 жыл бұрын
I agree !
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
👍
Design Patterns in Plain English | Mosh Hamedani
1:20:01
Programming with Mosh
Рет қаралды 1,3 МЛН
When Should I Quit? How Do I Know When to Move On?
18:21
IAmTimCorey
Рет қаралды 14 М.
GADGETS VS HACKS || Random Useful Tools For your child #hacks #gadgets
00:35
C# Design Patterns - step by step - made easy for Beginners.
1:00:57
Patrick WashingtonDC
Рет қаралды 154 М.
8 Design Patterns | Prime Reacts
22:10
ThePrimeTime
Рет қаралды 374 М.
Which Programming Techniques Should Every Developer Know?
16:39
IAmTimCorey
Рет қаралды 32 М.
This is the Only Right Way to Write React clean-code - SOLID
18:23
Why Use Design Patterns When Python Has Functions?
23:23
ArjanCodes
Рет қаралды 96 М.
What Should a Software Developer Not Do?
22:14
IAmTimCorey
Рет қаралды 13 М.
How Do I Structure My Application?
12:25
IAmTimCorey
Рет қаралды 17 М.