<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>onenaught.com &#187; Book Review</title>
	<atom:link href="http://www.onenaught.com/posts/category/book-review/feed" rel="self" type="application/rss+xml" />
	<link>http://www.onenaught.com</link>
	<description>A blog on web standards, accessibility, css, javascript, xslt, and more</description>
	<lastBuildDate>Thu, 07 Oct 2010 09:26:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<image>
		<title>One Naught</title>
		<url>http://www.onenaught.com/wp-content/themes/onenaught/images/onenaught.png</url>
		<link>http://www.onenaught.com</link>
		<width>116</width>
		<height>130</height>
		<description>OneNaught.com</description>
	</image>		<item>
		<title>Book Review: Head First Design Patterns</title>
		<link>http://www.onenaught.com/posts/41/book-review-head-first-design-patterns</link>
		<comments>http://www.onenaught.com/posts/41/book-review-head-first-design-patterns#comments</comments>
		<pubDate>Tue, 11 Dec 2007 16:00:07 +0000</pubDate>
		<dc:creator>Anup Shah</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[design patterns]]></category>

		<guid isPermaLink="false">http://www.onenaught.com/posts/41/book-review-head-first-design-patterns</guid>
		<description><![CDATA[<div class="book-details">
	<p class="cover"><img src="/wp-content/uploads/head-first-design-patterns.jpg" alt="" /></p>
	<ul>
		<li><strong>Book</strong>: <cite>Head First Design Patterns</cite></li>
		<li><strong>Authors</strong>: Eric Freeman, Elisabeth Freeman, Kathy Sierra and Bert Bates</li>
		<li><strong>Publisher</strong>: O'Reily (November 2004)</li>
		<li><strong>Purchase the book</strong>:
			<ul>
				<li><a href="http://www.amazon.co.uk/gp/product/0596007124?ie=UTF8&#038;tag=onenaucom-21&#038;linkCode=as2&#038;camp=1634&#038;creative=6738&#038;creativeASIN=0596007124">From Amazon UK</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=onenaucom-21&#038;l=as2&#038;o=2&#038;a=0596007124" width="1" height="1" alt="" style="border:none !important; margin:0px !important;" /></li>
				<li><a href="http://www.amazon.com/gp/product/0596007124?ie=UTF8&#038;tag=onenaucom-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0596007124">From Amazon USA</a><img src="http://www.assoc-amazon.com/e/ir?t=onenaucom-20&#038;l=as2&#038;o=1&#038;a=0596007124" width="1" height="1" alt="" style="border:none !important; margin:0px !important;" /></li>
			</ul>
		</li>
	</ul>
</div>

For a book with about 650 pages, I got through this really quickly (for me, that is -- about 8 hours)!

That should hopefully help summarize my view that I really liked this book.

Read on to find out why.]]></description>
			<content:encoded><![CDATA[<h3 id="toc-book-details">Book details</h3>
<div class="book-details">
<p class="cover"><img src="http://www.onenaught.com/wp-content/uploads/head-first-design-patterns.jpg" alt="" /></p>
<ul>
<li><strong>Book</strong>: <cite>Head First Design Patterns</cite></li>
<li><strong>Authors</strong>: Eric Freeman, Elisabeth Freeman, Kathy Sierra and Bert Bates</li>
<li><strong>Publisher</strong>: O&#8217;Reilly (November 2004)</li>
<li><strong>Purchase the book</strong>:
<ul>
<li><a href="http://www.amazon.co.uk/gp/product/0596007124?ie=UTF8&#038;tag=onenaucom-21&#038;linkCode=as2&#038;camp=1634&#038;creative=6738&#038;creativeASIN=0596007124">From Amazon UK</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=onenaucom-21&#038;l=as2&#038;o=2&#038;a=0596007124" width="1" height="1" alt="" style="border:none !important; margin:0px !important;" /></li>
<li><a href="http://www.amazon.com/gp/product/0596007124?ie=UTF8&#038;tag=onenaucom-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0596007124">From Amazon USA</a><img src="http://www.assoc-amazon.com/e/ir?t=onenaucom-20&#038;l=as2&#038;o=1&#038;a=0596007124" width="1" height="1" alt="" style="border:none !important; margin:0px !important;" /></li>
</ul>
</li>
</ul>
</div>
<h3 id="toc-my-summary-5-out-of-5">My Summary: 5 out of 5</h3>
<p>For a book with about 650 pages, I got through this really quickly (for me, that is &#8212; about 8 hours)!</p>
<p>That should hopefully help summarize my view that I really liked this book.</p>
<p>An excerpt from the back cover answers the question, &#8220;What&#8217;s so special about this book?&#8221;:</p>
<blockquote><p>
We think your time is too valuable to spend struggling with new concepts. Using the latest research in cognitive science and learning theory to craft a multi-sensory learning experience, <cite>Head First Design Patterns</cite> uses a visually rich format designed for the way your brain works, not a text-heavy approach that puts you to sleep.</p>
<p class="source">&#8211; <cite>Head First Design Patterns</cite></p>
</blockquote>
<p>Using funny examples like duck simulators and gumball machines instead of some technical, boring algorithm or graphical windows application meant it was likely to be more memorable, and, crucially, not get bogged down in details about the application at hand, but the pattern being demonstrated. </p>
<p>The example code is in Java. I have been using .NET/C# as my main programming language at work the past 4 or 5 years, but this is no problem at all, as C# and Java are very similar, syntactically.</p>
<p><span id="more-41"></span></p>
<h3 id="toc-book-contents">Book contents</h3>
<p>Table of contents are as follows:</p>
<ol>
<li>Welcome to design patterns: an introduction</li>
<li>Keeping your Objects in the know: the Observer Pattern</li>
<li>Decorating Objects: the Decorator Pattern</li>
<li>Baking with OO goodness: the Factory Pattern</li>
<li>One of a kind Objects: the Singleton Pattern</li>
<li>Encapsulating Invocation: the Command Pattern</li>
<li>Being Adaptive: the Adapter and Facade Patterns</li>
<li>Encapsulating Algorithms: the Template Method Pattern</li>
<li>Well-managed Collections: the Iterator and Composite Patterns</li>
<li>The State of Things: the State Pattern</li>
<li>Controlling Object Access: the Proxy Pattern</li>
<li>Patterns of Patterns: Compound Patterns</li>
<li>Patterns in the Real World: Better Living with Patterns</li>
<li>Appendix: Leftover Patterns</li>
</ol>
<p>The first chapter also introduces the Strategy Pattern.</p>
<p>The leftover patterns also have decent descriptions for the following patterns:</p>
<ul>
<li>Bridge</li>
<li>Builder</li>
<li>Chain of Responsibility</li>
<li>Flyweight</li>
<li>Interpreter</li>
<li>Mediator</li>
<li>Memento</li>
<li>Prototype</li>
<li>Visitor</li>
</ul>
<h3 id="toc-the-good">The good</h3>
<p>All sorts of good things in the book, including:</p>
<ul>
<li><strong>Funny examples</strong> &#8212; making it more memorable</li>
<li><strong>Simple examples</strong> &#8212; letting you understand the pattern, and avoid worrying about the technicalities of the scenario</li>
<li><strong>Side notes, pictures, exercises</strong> &#8212; encouraging you to write things down, and think about things</li>
<li><strong>Imaginary conversations, repetition of points through different analogies and examples</strong> &#8212; reinforcing what you have learned</li>
<li><strong>Reviews and summaries that build up chapter after chapter</strong> &#8212; further reinforcement</li>
</ul>
<h3 id="toc-the-bad">The bad</h3>
<p>Couldn&#8217;t think of anything bad about the book &#8212; maybe that it is big and heavy, and that it would be nice if all the left over patterns got the same treatment (then I could update this &#8220;bad&#8221; section to say it is about 1000 pages!)</p>
<h3 id="toc-the-ugly">The ugly</h3>
<p>Nothing</p>
<h3 id="toc-get-the-book">Get the book</h3>
<p>If you want to purchase it, or see more info (including reviews by others), look at the Amazon web site (note if you purchase the book via this site, then I will get a referral fee/bonus from Amazon&#8217;s associates programme).</p>
<ul class="book-purchase">
<li><a href="http://rcm-uk.amazon.co.uk/e/cm?t=onenaucom-21&#038;o=2&#038;p=8&#038;l=as1&#038;asins=0596007124&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr">Get Head First Design Patterns from Amazon UK</a></li>
<li><a href="http://rcm.amazon.com/e/cm?t=onenaucom-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=0596007124&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr">Get Head First Design Patterns from Amazon US</a></li>
</ul>
<h3 id="toc-related-books">Related books</h3>
<p>These are similar books I have read on this topic:</p>
<ol>
<li><cite>Design Patterns; Elements of Reusable Object-Oriented Software</cite>, by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (Addison Wesley, 1995). Some additional details:
<ul>
<li>This is regarded as the &#8220;classic&#8221; or original patterns book by the Gang of Four (also referred to as Gof).</li>
<li>It is well structured, grouping the various patterns into creational, structural, and behavioral patterns.</li>
<li>It uses a mixture of C++ and SmallTalk examples.</li>
<li>It is more formal and &#8220;dry&#8221; compared to <cite>Head First Design Patterns</cite> so took me a lot longer to get through, but is still good.</li>
<li>If I had to rate this, then I&#8217;d probably give it something like 3.5 or 4 out of 5.</li>
<li>Get more info from <a href="http://www.amazon.co.uk/gp/product/0201633612?ie=UTF8&#038;tag=onenaucom-21&#038;linkCode=as2&#038;camp=1634&#038;creative=6738&#038;creativeASIN=0201633612">Amazon UK</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=onenaucom-21&#038;l=as2&#038;o=2&#038;a=0201633612" width="1" height="1" alt="" style="border:none !important; margin:0px !important;" /> or from <a href="http://www.amazon.com/gp/product/0201633612?ie=UTF8&#038;tag=onenaucom-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0201633612">Amazon USA</a><img src="http://www.assoc-amazon.com/e/ir?t=onenaucom-20&#038;l=as2&#038;o=1&#038;a=0201633612" width="1" height="1" alt="" style="border:none !important; margin:0px !important;" /></li>
</ul>
</li>
<li><cite>C# Design Patterns; A Tutorial</cite>, by James W. Cooper (Addison Wesley, 2003). Some additional details:
<ul>
<li>This book, as the name suggests, is specifically geared towards C# developers.</li>
<li>While C# 2.0 has come out since (with support for Generics etc) many of the techniques still apply.</li>
<li>Quite a lot of the book goes into explaining Object Oriented Programming, and C# language features which most seasoned C# developers could skip.</li>
<li>It is a bit dry and sometimes uses examples related to drawing desktop graphical applications or mathematics, so some of those details get in the way of explaining/highlighting the pattern.</li>
<li>In places it also uses Java-like conventions (such as code formatting and getter/setter methods rather than C# properties).</li>
<li>If I had to rate this, then probably 3 out of 5 (or, now that I have read <cite>Head First Design Patterns</cite> I might knock this one down to 2 out of 5 for comparison!).</li>
<li>Get more info from <a href="http://www.amazon.co.uk/gp/product/0201844532?ie=UTF8&#038;tag=onenaucom-21&#038;linkCode=as2&#038;camp=1634&#038;creative=6738&#038;creativeASIN=0201844532">Amazon UK</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=onenaucom-21&#038;l=as2&#038;o=2&#038;a=0201844532" width="1" height="1" alt="" style="border:none !important; margin:0px !important;" /> or <a href="http://www.amazon.com/gp/product/0201844532?ie=UTF8&#038;tag=onenaucom-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0201844532">Amazon USA</a><img src="http://www.assoc-amazon.com/e/ir?t=onenaucom-20&#038;l=as2&#038;o=1&#038;a=0201844532" width="1" height="1" alt="" style="border:none !important; margin:0px !important;" /></li>
</ul>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.onenaught.com/posts/41/book-review-head-first-design-patterns/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

