Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

My company is giving us the possibility to sign up for some offsite training classes on Design Patterns.

Browsing through the brochures, I'm already feeling bored (and somewhat repelled by the marketingy buzzwordy silverbulletty enterprisey managerese) - I already know the basics about design patterns (read the GoF book years ago, used a few as needed, read articles on the net, etc.). I'm worried that the training is going be mostly watching a powerpoint with stuff I mostly know, and arguing details over a UML diagram.

My programming experience is mostly in games, simple web development and mathy stuff, in Python, C++ or simple scripting languages; I never worked on anything "enterprisey", or in Java or .Net (for some reason, Java and .Net seems especially associated with Design Patterns), nor am I planning to in the forseeable future. I'm much more interesting in things like functional programming and Haskell and making micro domain-specific-languages to solve specific problems - I'm closer to the "hacker" culture (I'm mostly self-taught) than to the "enterprise" culture.

But maybe this is just me having too high of an opinion of myself and passing a good opportunity to learn useful stuff. Or being a snob and refusing to learn about different cultures.

So, how could I tell if a Design Patterns class is going to be useful? How you found such trainings useful? How you ever felt apprehensive about them?

share|improve this question

closed as off-topic by durron597, Ixrec, GlenH7, Bart van Ingen Schenau, gnat May 17 '15 at 17:09

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – durron597, Ixrec, GlenH7, Bart van Ingen Schenau, gnat
If this question can be reworded to fit the rules in the help center, please edit the question.

Try the links to a couple review sites at this answer - they may help. – Michael K Jan 24 '11 at 16:29

Well, Emile you are starting with very broad question (how to evaluate training), but then you quickly narrowed it to training on Design Patterns.

Anyway, I would start with what I'm doing usually (no matter what is the training subject):

1) Is the course/ training lead by someone I'd like to listen too?

Imagine you can go for a course run by Martin Fowler, Grady Booch, Erich Gamma or [put your favourite 'patternist' in this place]. Someone with years of general experience, who actually understands not only what particular pattern is/does, but can share an anecdote story on how it emerged, share tons of examples where to fine it etc. So please take some time to check who is running the course...

2) Is it long enough?

In my opinion, if a course is a 5h per day, 2-day course on a subject that was discussed over last few decades, there is no point in attending. As long as Matrix-like training-by-uploading is just a fairytale, even the most brilliant teacher won't squeeze a few days material into PowerPoint marathon with coffee break. So try to asses if the course is long enough. In my opinion a good pattern training with implementation exercises will take about 4-5 days (with intermediate class).

3) What are your preferences? Is the course best use of your time?

I've worked with a chap who never went for a training, he just read books. I must say, I like these few days out of office that helps me focus on some subject. In fact, it wasn't once that I've used a time in class room to catch-up on something completely different.

Also, I like to discuss new concepts during training - so I need to know if that would be expected (as quite often trainer has only knowledge but lacks experience). What I'm saying, won't it be better for you to pick-up 'Refactor to Patterns' or another patterns' book? Maybe it would be better to look around for a webcast that present MVC behind Ruby on Rails, or Facade in most of Google APIs?

4) Do you have to? What are the options?

Well, it seems that you don't see this course valuable... Why not ask for something else, a trip to a nice conference, a few days off to finish your pet project, etc ?

Whatever, the decision personally I think you should consider at least going through a list of example implementation of patterns in your preferred language. Patterns got into common (programmers) vocabulary and you might find that it is hard to communicate with other developers who just take for granted that everyone knows how typical memento or strategy pattern is.

share|improve this answer

How do you tell if a training course is useful?

Ideally you'd talk to people who'd taken the course before you.

You'd ask them their level of expertise before hand and then whether they found the course useful or not, why they found the course interesting, whether they'd recommend it to a friend/colleague etc.

However, Programmers' is not the site to ask that question, because it only applies to that particular training course at this particular time, thus making the question "Too Localised".

share|improve this answer
+1 for talking to others that took the course. – FrustratedWithFormsDesigner Jan 24 '11 at 16:51

For your situation I'd be tempted to ask the following:

  • How much of the training is hands-on lab work, group discussion, and PowerPoint slides? How long is the training,e.g. is this learn Design Patterns in 4 hours or less? This is just a breakdown of how is the course structured that may be a clue.

  • Would there be a way to take a pre-course test to see what your knowledge is of patterns so that the course isn't too basic for you? Could be useful but I'd also think this is likely rare.

Having some idea of how to make the training worthwhile is something to explore in my mind. It could also help to know what does employer expect you to get out of this and what changes in performance are they expecting if any. My only off-site experience with something close to training would be various Microsoft events where I had some time off work to attend them so I haven't been in your position yet.

share|improve this answer
+1 I like the pre-course test idea. – Larry Coleman Jan 24 '11 at 17:45

Until I learned what design patterns were, I couldn't have cared less about them. It was only until I learned them that I begin to see how useful they were. Of course this is a fairly subjective question and as such I can't tell you how you'd like design patterns, but I can tell you how I view them.

For me design patterns are like tools to bring to a construction job. You could try to push a screw through a hole using a hammer, but it's messy and not likely to achieve the same results as a screwdriver. Better still is a drill for the job. However, if you don't have a drill or a screwdriver, you're forced to do a sloppy job with a hammer. It might be that you wouldn't need to even use the tools, it's true, however I see no reason why you wouldn't bring tools with you if someone offered to lend you them and the same is true for design patterns. Learn them and learn how to use them wisely. If the moment doesn't arrive in which you'd need it, you've lost nothing.

I'll be the first to tell you that if something doesn't interest me, I have a hard time learning it. Design patterns weren't like that for me because they offered to improve my ability to write decent programs, and unsurprisingly it helped me quite a bit in the end. I highly recommend that you give it a chance at least.

share|improve this answer
As a side note, I already know about design patterns, have used them etc. Still, you make a good point about how stuff that doesn't seem interesting may still be so (I'm trying to weight that versus the "it doesn't seem interesting because it isn't" heuristic) – Emile Jan 24 '11 at 16:57
This doesn't answer the question, which is about how to evaluate a particular training class in advance. Surely design patterns aren't so fantastic that any possible training class is going to be worth all the time and money each participant spends, regardless of previous knowledge. – David Thornley Jan 24 '11 at 20:23
Perhaps, but you realize that I have no specifics on what kind of training class it could be, so rather than pretend that I do, I'd rather answer the way I did. In that regard to his questions "How could I tell if a Design Patterns class is going to be useful? How you found such trainings useful? How you ever felt apprehensive about them?", I think I answered them more than correctly. – Neil Jan 25 '11 at 8:55

Not the answer you're looking for? Browse other questions tagged or ask your own question.