I am going to be giving developers at my company a crash course on design patterns (after coming across some scary code recently).
One of the most important things I want to put across is that they save time in both the long and short term (which they really do!) - as developers here are put under quite a bit of time strain. All in all I need to demonstrate the every day benefits - things that will let them go home early.
Telling them that it might mean less bugs probably isn't going to hit home. I need stuff that is going to sink in.
I will probably do three to four sessions of an hour each. Do you guys have any suggestions on what to touch on/to do?
But when you want to learn them I would just start with the Head First Design pattern book (not just really my opinion, but its also seems to be the standard answer for these kind of questions) and follow that with the gang of four design pattern book. Those two together should give you all the order you need.
Head First Design Patterns would be a great place to start. It covers the mainstream design patterns.
Refactoring to Patterns might also be of interest.
If you can't buy a book for every developer, buy a few and spread them around.
Good opening slides for any education course in my opinion are:
For design patterns I could expect several visual tools or "job aids".
I would follow a structure similar to the Elements of Reusable Object-Oriented Software book:
As already mentioned, design patterns are really ideas, so when teaching you must convey the idea. If they understand the problem, solution and consequences of the design pattern, then they will be far better off than trying to force patterns into the code (and that will become a nightmare). Recognition of where and what patterns (if any) can be applied is the real goal. The Huston examples are really good for putting out an example of code to the class and seeing if they can identify a pattern to improve it. Hope this helps.
Head First Design Patterns is an excellent reference as well.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With