Gareth Adams wrote:
> I've heard these terms used in various places, just wondering where I can find
> out more about what they mean and how knowing about them can help my programming

Hmm, generally the GOF[1] book is quite good on these things - it is 
considered the Pickaxe of code design, so to say (although is more than 
10 years old). Immutable is very well explained in Effective Java[2] - 
however if you won't like to study Java I don't recommend this, it just 
crossed my mind because I have seen it there recently (OTOH, if you 
would like to learn Java idioms it is a cool book).
This page[3] also has some nice links to get you started...

If you are interested in a concrete thing, just google for it, and try 
to add 'design pattern' or 'pattern', e.g.the combination 'immutable 
design pattern' gives good results.

HTH,
Peter

[1] 
http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612
[2] 
http://www.amazon.com/Effective-Java-Programming-Language-Guide/dp/0201310058/sr=1-1/qid=1163509093/ref=pd_bbs_sr_1/002-5512879-9475208?ie=UTF8&s=books
also available online for free, just google for it
[3] http://hillside.net/patterns/onlinepatterncatalog.htm

__
http://www.rubyrailways.com