• Tim Buchalka

What are Design Patterns and Should You Learn Them?

Design patterns; what are they and why are they useful? Let’s talk about that today.


Let’s start with a definition of design patterns. Wikipedia says that a software design pattern is a general, reusable solution to a commonly occurring problem in software design. Importantly, though, it’s not a finished design. So in other words, it’s not ready to begin coding with. Think of it more as a template on how to go about solving a specific problem. Now, what is really cool though is this template, or this design pattern, can be used in many different situations.


Now you could say that design patterns are best practices that you can use to solve common problems when writing software, and I think that’s pretty cool. So, why would you wanna use a design pattern in your code? Well, firstly, as I mentioned, they’re a proven way to solve issues in software development. That’s pretty important, but secondly they can also help you picture the high level design of a particular solution in your head. Thirdly, a sound knowledge of design patterns all look great on your resume, and is highly sought after by employers, basically learning design patterns looks really good on your resume.


Do design patterns work in all programming languages? Well, in general, a design pattern isn’t tied to a specific programming language, but they’re more useful in certain languages. You could argue that design patterns work best in languages such as Java, C++, C#, and other object oriented languages, but that’s not to say you can’t use them in other programming languages. Should you be using design patterns? Well, based on what I said, why would you not wanna be using them in your code? Because as I said they’re proven solution to problems that typically occur and need to be solved in software development.


What about beginners? If you’re new to programming, are design patterns suitable for you? Can you get stuck in and start using design patterns as a beginner? Well, in general I would say no, that’s just my opinion, you really need to do some programming, a lot, some tutorials, and get the basics of a programming language under your belt to get the most out of design patterns. To really understand what they’re all about. But once you got that basic knowledge of a specific programming language, by all means, give them a whirl, because they’ll actually certainly help you in solving some typical problems that you need to solve as a software development.


Alright, now here’s a link to a famous design patterns book by the four authors known as the Gang of Four. It’s got great ratings and it’s, the book that I basically started off learning about design patterns. So check that out, but also, I’ve actually got a Java design patterns course on Udemy, and that’s also highly rated, and it’s actually got 24 hours of video training. That course is specific to Java, but it will teach you the concepts you need to understand design patterns.


Thanks for watching, I hope you’ve now got a basic understanding of design patterns, and if you’ve got any questions about design patterns, by all means, leave them as a comment on this video. I hope that helped, if you’ve got any questions feel free to leave a comment and I’ll get back to you.

© 2019 Tim Buchalka