<?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>Coderholic &#187; books</title>
	<atom:link href="http://www.coderholic.com/category/books/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.coderholic.com</link>
	<description>Addicted to Development</description>
	<lastBuildDate>Tue, 31 Aug 2010 09:19:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>JavaScript: The Good Parts</title>
		<link>http://www.coderholic.com/javascript-the-good-parts/</link>
		<comments>http://www.coderholic.com/javascript-the-good-parts/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 10:44:37 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web dev]]></category>

		<guid isPermaLink="false">http://www.coderholic.com/?p=745</guid>
		<description><![CDATA[I&#8217;ve been a huge fan of Douglas Crockford and his articles about JavaScript for a long time. I often point people to his The World&#8217;s Most Misunderstood Programming Language article when I hear them complaining about the language. It&#8217;s taken me a couple of years to get around to reading his book, JavaScript: The Good [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://crockford.com/goodparts.gif" style="float: left; border: 1px solid grey; margin-right: 10px;"/> I&#8217;ve been a huge fan of Douglas Crockford and his <a href="http://javascript.crockford.com/">articles about JavaScript</a> for a long time. I often point people to his <a href="http://javascript.crockford.com/javascript.html">The World&#8217;s Most Misunderstood Programming Language</a> article when I hear them complaining about the language. It&#8217;s taken me a couple of years to get around to reading his book, <a href="http://www.amazon.co.uk/gp/product/0596517742?ie=UTF8&#038;tag=dowlingmeuk-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0596517742">JavaScript: The Good Parts</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=dowlingmeuk-21&#038;l=as2&#038;o=2&#038;a=0596517742" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, but it exceeded all of my expectations.</p>
<p>Being an avid reader of his online stuff, and having watched various <a href="http://www.youtube.com/results?search_query=crockford+javascript&#038;aq=f">talks of his</a> I knew the book would be well written and informative, but I thought it&#8217;d probably just repeat much of what I&#8217;d already read, without providing much new information or insights. To a certain extent this was true, the book does reiterate what&#8217;s said in many of his online articles and talks, but the book is absolutely amazing for a different reason: <strong>The code examples</strong>.</p>
<p>The book is extremely succinct. There&#8217;s no padding, and very little dialog to join one section to the next. There is a common thread thoughout the book though, and that&#8217;s the code. Examples of good coding practices are repeated, and functions written in earlier chapters are often reused in later ones. So although the book appears to be presenting one feature at a time with a small code example you&#8217;re actually building up more and more complex javascript applications, and the book ends with a full JSON parser!</p>
<p>Crockford&#8217;s coding style seems to match his writing style: succinct and to the point. There&#8217;s some really great code in the book, that I think even non-JavaScript developers could appreciate. Here&#8217;s my favourite, from the chapter on regular expressions:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> parse_url <span style="color: #339933;">=</span> <span style="color: #009966; font-style: italic;">/^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> url <span style="color: #339933;">=</span> <span style="color: #3366CC;">'http://www.ora.com:80/goodparts?q#fragment'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> result <span style="color: #339933;">=</span> parse_url.<span style="color: #660066;">exec</span><span style="color: #009900;">&#40;</span>url<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> names <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'url'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'scheme'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'slash'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'host'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'port'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'path'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'query'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'hash'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> blanks <span style="color: #339933;">=</span> <span style="color: #3366CC;">'       '</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> names.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i <span style="color: #339933;">+=</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    document.<span style="color: #660066;">writeln</span><span style="color: #009900;">&#40;</span>names<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">':'</span> <span style="color: #339933;">+</span> blanks.<span style="color: #660066;">substring</span><span style="color: #009900;">&#40;</span>names<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">length</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> result<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Which outputs:</p>

<div class="wp_syntax"><div class="code"><pre class="none" style="font-family:monospace;">url:    http://www.ora.com:80/goodparts?q#fragment
scheme: http
slash:  //
host:   www.ora.com
port:   80
path:   goodparts
query:  q
hash:   fragment</pre></div></div>

<p>I also love the explanations Crockford gives as to why he avoids using certain parts of JavaScript, and limits himself to a &#8220;good&#8221; subset of the language. He doesn&#8217;t simply say &#8220;This is bad and you shouldn&#8217;t use it&#8221;, it&#8217;s usually accompanied by a story about a time when Crockford had used that feature and got caught out, which is much more compelling.</p>
<p>I think it&#8217;s fair to say that <a href="http://www.amazon.co.uk/gp/product/0596517742?ie=UTF8&#038;tag=dowlingmeuk-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0596517742">JavaScript: The Good Parts</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=dowlingmeuk-21&#038;l=as2&#038;o=2&#038;a=0596517742" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> is one of my favourite programming books: It&#8217;s succinct, packed full of great code examples and best practices for writing maintainable and bug free code. It&#8217;s a fantastic JavaScript reference, but much of what the book talks about is relevant to programming in general. Highly recommended!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coderholic.com/javascript-the-good-parts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rework Roundup</title>
		<link>http://www.coderholic.com/rework-roundup/</link>
		<comments>http://www.coderholic.com/rework-roundup/#comments</comments>
		<pubDate>Mon, 03 May 2010 13:09:23 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[37signals]]></category>
		<category><![CDATA[book review]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[rework]]></category>

		<guid isPermaLink="false">http://www.coderholic.com/?p=685</guid>
		<description><![CDATA[37signals are the creators of the popular Ruby on Rails web framework and the people behind successful web applications such as basecamp and campfire. Their previous book Getting Real, about effecitive web application development, really resonated with me. When I heard that they were writing a new book, ReWork: Change the Way You Work Forever, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.co.uk/gp/product/0091929784?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0091929784"><img src="http://ecx.images-amazon.com/images/I/41ju6JBCJmL._SL110_.jpg" alt="ReWork Cover" style="float: left; border: none; margin-right: 10px; margin-bottom: 10px;"/></a></p>
<p>37signals are the creators of the popular Ruby on Rails web framework and the people behind successful web applications such as basecamp and campfire. Their previous book <a href="http://gettingreal.37signals.com/">Getting Real</a>, about effecitive web application development, really resonated with me.</p>
<p>When I heard that they were writing a new book, <a href="http://www.amazon.co.uk/gp/product/0091929784?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0091929784">ReWork: Change the Way You Work Forever</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0091929784" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, about &#8220;building, running and growing (or not growing) a business&#8221; the 37 signals way, I was excited. Especially as it arrived at a time when I&#8217;m working on my own <a href="http://geomium.com">startup</a>.</p>
<p>A week has passed since my copy arrived from Amazon, so I&#8217;ve had a change to read the book and write up some of my favourite points below.</p>
<p><b>Planning is guessing</b></p>
<blockquote><p>&#8220;Working without a plan may seem scary. But blindly following a plan that has no relationship to reality is even scarier&#8221;</p></blockquote>
<p>Don&#8217;t make long term plans, or at least don&#8217;t obsess over them if you do. I think the key point here is <em>be flexible</em>.</p>
<p><b>Start making something</b></p>
<blockquote><p>&#8220;Ideas are cheap and plentiful&#8230;the real question is how well you execute.&#8221;</p></blockquote>
<p>Coming up with cool ideas all day won&#8217;t get you anywhere. Starting something will. Even if it&#8217;s lame, you&#8217;ll learn something that&#8217;ll make the next attempt better.</p>
<p><b>Build half a product, not a half-assed product.</b></p>
<blockquote><p>&#8220;Getting to great starts by chopping out what&#8217;s merely good.&#8221;</p></blockquote>
<p>The classic 37 signals <a href="http://37signals.com/svn/posts/2106-you-can-always-do-less">do less</a> argument, about less being better, and bloat being bad.</p>
<p><b>Launch now</b></p>
<blockquote><p>&#8220;Stop imagining what&#8217;s going to work. Find out for real.&#8221;</p></blockquote>
<p>I&#8217;m also reminded of the Reid Hoffman principle here:</p>
<blockquote><p>&#8220;If you aren&#8217;t embarrassed by what you launch with, you waited too long to launch.&#8221;</p></blockquote>
<p><b>Good enough is fine</b></p>
<blockquote><p>&#8220;When good enough get the job done, go for it. It&#8217;s way better than wasting resources or, even worse, doing nothing because you can&#8217;t afford the complex solution.&#8221;</p></blockquote>
<p>I think the above rule is really a specific version of this one. Get something basic done first &#8211; worry about making it great later!</p>
<p><b>Pick a fight</b></p>
<blockquote><p>&#8220;Having an enemy gives you a great story to tell customers&#8230;They take sides. Passions are ignited.&#8221;</p></blockquote>
<p>This is certainly an approach that 37 Signals employ, and it seems to have worked well for them. OnStartups have a good article on <a href="http://onstartups.com/tabid/3339/bid/6727/Startups-and-The-Power-Of-Polarization.aspx">the power of polarization</a> which goes into more detail about this idea.</p>
<p><b>Don&#8217;t confuse enthusiam with priority</b></p>
<blockquote><p>&#8220;The enthusiasm you have for a new idea is not an accurate indicator of its true worth. What seems like a sure-fire hit right now often gets downgraded to &#8220;nice to have&#8221; by morning.&#8221;</p></blockquote>
<p>Don&#8217;t drop everything to start on your latest idea. You&#8217;ll constantly be chasing new ideas, and never finish any of your old ones which might be just as good, if not better.</p>
<p><b>Take a deep breath</b></p>
<blockquote><p>&#8220;When people complain, let things simmer for a while. Let them know you&#8217;re listening&#8230;but explain that you&#8217;re going to let it go for a while and see what happens. You&#8217;ll probbaly find that people will adjust eventually.&#8221;</p></blockquote>
<p>Every time Facebook change their privacy settings there is a huge uproar. When websites change their design you hear complaints. Changes aren&#8217;t always for the best, but there are some people complain no matter what. The advice given here is to wait a while for things to settle down before making any decisions based on the feedback.</p>
<p><b>Four-letter words</b></p>
<blockquote><p>&#8220;Need, must, can&#8217;t, easy, just, only and fast. There words get in the way of healthy communication. They are red flags that introduce animosity, torpedo good discussions, and cause projects to be late.&#8221;</p></blockquote>
<p>This is one of my favourite points in the book. I&#8217;ll certainly be making an effort to avoid these assumption-ridden words in the future!</p>
<p><b>Inspiration is perishable</b></p>
<blockquote><p>&#8220;Inspiration is a magical thing, a productivity multiplier, a motivator. But it won&#8217;t wait for you. Inspiration is a now thing. If it grabs you, grab it right back and put it to work.&#8221;</p></blockquote>
<p>So true. A great reason why you should <em>start making something</em> the second you feel inspired to do so.</p>
<p>They were my favourite points, but the book is filled with many more. If you&#8217;ve also read the book I&#8217;d love to know what you though and what your favourite parts were, either in the comments section or on <a href="http://twitter.com/coderholic">twitter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coderholic.com/rework-roundup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recommended reading from Coders at Work</title>
		<link>http://www.coderholic.com/recommended-reading-from-coders-at-work/</link>
		<comments>http://www.coderholic.com/recommended-reading-from-coders-at-work/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 21:53:22 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.coderholic.com/?p=529</guid>
		<description><![CDATA[I really enjoyed reading Peter Siebel&#8217;s Coders at Work, in which he interviews many prominent developers including Donald Knuth, Ken Thompson and Peter Norvig. A question that gets asked to the majority of the developers is what programming books do they recommend. I&#8217;ve complied some of their suggestions into the following list: The Art of [...]]]></description>
			<content:encoded><![CDATA[<p>I really enjoyed reading Peter Siebel&#8217;s <a href="http://www.amazon.co.uk/gp/product/1430219483?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=1430219483">Coders at Work</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=1430219483" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, in which he interviews many prominent developers including Donald Knuth, Ken Thompson and Peter Norvig. A question that gets asked to the majority of the developers is what programming books do they recommend. I&#8217;ve complied some of their suggestions into the following list:</p>
<p><a href="http://www.amazon.co.uk/gp/product/0201485419?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0201485419"><img style="float: left; margin-right:10px; margin-bottom: 10px;" border="0" src="http://ecx.images-amazon.com/images/I/41c-uUIgtyL._SL110_.jpg"></a><img src="http://www.assoc-amazon.co.uk/e/ir?t=dowlingmeuk-21&#038;l=as2&#038;o=2&#038;a=0201485419" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><b><a href="http://www.amazon.co.uk/gp/product/0201485419?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0201485419">The Art of Computer Programming</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0201485419" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
</b>TAOCP is mentioned throughout Coders at Work. Some of the developers had read it all the way through, and really got stuck into the maths. Others, such as Doug Crockford had only used the book as a reference. Almost everybody agreed that this book should be on your shelf though.<br />
<br style="clear: left;"/></p>
<p><a href="http://www.amazon.co.uk/gp/product/0201657880?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0201657880"><img style="float: left; margin-right:10px; margin-bottom: 10px;" border="0" src="http://ecx.images-amazon.com/images/I/41ETT7KQRRL._SL110_.jpg"></a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0201657880" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><b><a href="http://www.amazon.co.uk/gp/product/0201657880?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0201657880">Programming Pearls</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0201657880" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
</b>A book about good programming practice with examples in C, this classic has stood the test of time.<br />
<br style="clear: left;"/></p>
<p><a href="http://www.amazon.co.uk/gp/product/0596510047?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0596510047"><img style="float: left; margin-right:10px; margin-bottom: 10px;" border="0" src="http://ecx.images-amazon.com/images/I/41A3tFaEK-L._SL110_.jpg"></a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0596510047" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><b><a href="http://www.amazon.co.uk/gp/product/0596510047?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0596510047">Beautiful Code</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0596510047" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
</b>The tagline for this book is &#8220;Leading Programmers Explain How They Think&#8221;. The book contains lots of example code, and descriptions and commentary from the code&#8217;s author. While this book is only recommended once in Coders at Work, almost all of the interviewees stress the importance of reading code, and this book can help with that.<br />
<br style="clear: left;"/></p>
<p><a href="http://www.amazon.co.uk/gp/product/0262510871?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0262510871"><img style="float: left; margin-right:10px; margin-bottom: 10px;" border="0" src="http://ecx.images-amazon.com/images/I/41VPCK8QCXL._SL110_.jpg"></a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0262510871" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><b><a href="http://www.amazon.co.uk/gp/product/0262510871?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0262510871">Structure and Interpretation of Computer Programs</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0262510871" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
</b>SICP is recommended several times in the book. It&#8217;s supposed to be a very in depth book, it looks at programming from a functional perspective, using Scheme. Zawinski says despite being &#8220;Lispy&#8221;, it provides a great introduction to programming without teaching a language.<br />
<br style="clear: left;"/></p>
<p><a href="http://www.amazon.co.uk/gp/product/0521663504?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0521663504"><img style="float: left; margin-right:10px; margin-bottom: 10px;" border="0" src="http://ecx.images-amazon.com/images/I/410CKVZM2EL._SL110_.jpg"></a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0521663504" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><b><a href="http://www.amazon.co.uk/gp/product/0521663504?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0521663504">Purely Functional Data Structures</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0521663504" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
</b>Describes data structures from a functional programming point of view, rather than the more common imperative perspective (such as Java and C++ data structure books).<br />
<br style="clear: left;"/></p>
<p><a href="http://www.amazon.co.uk/gp/product/1558607013?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=1558607013"><img style="float: left; margin-right:10px; margin-bottom: 10px;" border="0" src="http://ecx.images-amazon.com/images/I/41D4RKA43XL._SL110_.jpg"></a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=1558607013" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><b><a href="http://www.amazon.co.uk/gp/product/1558607013?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=1558607013">Higher Order Perl</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=1558607013" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
</b>Brad Fitzpatrick recommends this book, which is about functional programming techniques in Perl. The reviews on Amazon seem to suggest this this is an excellent programming book, and should even be interesting for non-Perl developers.<br />
<br style="clear: left;"/></p>
<p><a href="http://www.amazon.co.uk/gp/product/0735619670?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0735619670"><img style="float: left; margin-right:10px; margin-bottom: 10px;" border="0" src="http://ecx.images-amazon.com/images/I/51hDvTy1LlL._SL110_.jpg"></a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0735619670" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><b><a href="http://www.amazon.co.uk/gp/product/0735619670?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0735619670">Code Complete</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0735619670" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
</b>Jamie Zawinski describes this as &#8220;the book you wish your idiot coworker had read&#8221;. It goes through the whole development lifecyle, including design, desbugging, testing and refactoring.<br />
<br style="clear: left;"/></p>
<p><a href="http://www.amazon.co.uk/gp/product/020161586X?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=020161586X"><img style="float: left; margin-right:10px; margin-bottom: 10px;" border="0" src="http://ecx.images-amazon.com/images/I/41DGMPF6FJL._SL110_.jpg"></a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=020161586X" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><b><a href="http://www.amazon.co.uk/gp/product/020161586X?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=020161586X">The Practice of Programming</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=020161586X" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
</b>Co-authored by one of the creators of the C programming language, this book aims to teach you good programming practices to help you write faster and more maintainable code.<br />
<br style="clear: left;"/></p>
<p>The list above is just a sample of some of the books recommended in Coders at Work. The Joshua Block interview also mentions lots of interesting Computer Science papers. </p>
<p>The interviews are really great. Most aren&#8217;t particularly technical, but it is interesting to read about how these well-known programmers work, and to get some insight into some of the projects they&#8217;ve worked on. <a href="http://www.amazon.co.uk/gp/product/1430219483?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=1430219483">Coders at Work</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=1430219483" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> is well worth a read.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coderholic.com/recommended-reading-from-coders-at-work/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>25 Free Computer Science Books</title>
		<link>http://www.coderholic.com/25-free-computer-science-books/</link>
		<comments>http://www.coderholic.com/25-free-computer-science-books/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 20:46:35 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[books]]></category>

		<guid isPermaLink="false">http://www.coderholic.com/?p=103</guid>
		<description><![CDATA[As a computer scientist I&#8217;m always looking to improve my knowledge of the subject. There are lots of great sources of information available online, but nothing really beats the depth of knowledge that you can find in a book. It is possible to get the best of both worlds though, as many books are now [...]]]></description>
			<content:encoded><![CDATA[<p>
As a computer scientist I&#8217;m always looking to improve my knowledge of the subject. There are lots of great sources of information available online, but nothing really beats the depth of knowledge that you can find in a book. It is possible to get the best of both worlds though, as many books are now available online in full, and free of charge!
</p>
<p>
Below is a selection of 25 of the best free computer science books that I&#8217;ve found online, with a brief description of each one. Where the book is also available in printed form I&#8217;ve included a link to Amazon, using my affiliate link. If you&#8217;d like to buy one of the books but would rather not help towards the cost of running this blog then you can search for the books directly on the Amazon site.
</p>
<p><b><a href="http://www.cocoalab.com/?q=becomeanxcoder">Become An X coder</a></b><br />
A guide to MacOSX development with Cocoa using Objective-C. The book contains lots of examples and detailed screenshots.<br />
<br style="clear: left;"></p>
<p>
<img style="float: left;" src="http://www.coderholic.com/wp-content/uploads/books/cathedral-bazaar.jpg"/><b><a href="http://www.catb.org/~esr/writings/cathedral-bazaar/">The Cathedral and the Bazaar</a></b><br />
Eric Raymond&#8217;s brilliant book about Open Source software, and its impact on software development projects.<br />
<a href="http://www.amazon.co.uk/gp/product/0596001088?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0596001088">View on Amazon</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0596001088" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
<br style="clear: left;"></p>
<p>
<img style="float: left;" src="http://www.coderholic.com/wp-content/uploads/books/data-struct-alg-java.gif"/><b><a href="http://www.brpreiss.com/books/opus5/html/page9.html">Data Structures and Algorithms with Object-Oriented Design Patterns in Java</a></b><br />
Also available in C#, Python, Perl, Ruby, Lua, C++ and PHP versions.<br />
<a href="http://www.amazon.co.uk/gp/product/0471346136?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0471346136">View on Amazon</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0471346136" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
<br style="clear: left;"></p>
<p><b><a href="http://diveintoaccessibility.org/">Dive Into Accessibility</a></b><br />
Another Mark Pilgrim guide, on creating accessible websites.<br />
<br style="clear: left;"></p>
<p><b><a href="http://diveintogreasemonkey.org/toc/">Dive Into Greasemonkey</a></b><br />
Greasemonkey is a Firefox extension that allows you to write scripts that alter the web pages you visit. Mark Pilgrim presents lots of example code and case studies in this book.<br />
<br style="clear: left;"></p>
<p><b><a href="http://gettingreal.37signals.com/toc.php">Getting Real</a></b><br />
The influential book from 37 Signals which describes a smaller, faster, and better way to build web based software.<br />
<br style="clear: left;"></p>
<p><b><a href="http://doc.ddart.net/shell/awk/">Getting Started with awk</a></b><br />
Awk is the perfect tool for many system admin tasks. This book contains loads of great examples, and will turn you into an awk master in no time!<br />
<br style="clear: left;"></p>
<p><b><a href="http://www-cs-students.stanford.edu/~blynn/gitmagic/index.html">Git Magic</a></b><br />
A complete guide to the popular distributed version control software Git, from Linus Torvolds.<br />
<br style="clear: left;"></p>
<p>
<img style="float: left;" src="http://www.coderholic.com/wp-content/uploads/books/gpu-gems.jpg"/><b><a href="http://developer.download.nvidia.com/books/HTML/gpugems/gpugems_pref01.html">GPU Gems</a></b><br />
NVidia&#8217;s book on GPU graphics programming covers topics such as lighting, shadows, modelling materials, and performance issues.<br />
<a href="http://www.amazon.co.uk/gp/product/0321228324?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0321228324">View on Amazon</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0321228324" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
<br style="clear: left;"></p>
<p>
<img style="float: left;" src="http://www.coderholic.com/wp-content/uploads/books/htdp.jpg"/><b><a href="http://htdp.org/">How to Design Programs</a></b><br />
An introduction to computer programming and designing programs with the Scheme programming language.<br />
<a href="http://www.amazon.co.uk/gp/product/0262062186?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0262062186">View on Amazon</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0262062186" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
<br style="clear: left;"></p>
<p>
	<img style="float: left;" src="http://www.coderholic.com/wp-content/uploads/books/design-patterns-qt.jpg"/><b><a href="http://cartan.cas.suffolk.edu/oopdocbook/opensource/">Introduction to Design Patterns in<br />
	C++ with Qt 4</a></b><br />
	From the book itself: <em>C++ is taught &#8220;The Qt way&#8221;, with an emphasis on design patterns, and re-use of open source libraries and tools. By the end of the book, the reader should have a deep understanding of both the language and libraries, as well the design patterns used in developing software with them. </em><br />
	<a href="http://www.amazon.co.uk/gp/product/0131879057?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0131879057">View on Amazon</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0131879057" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
<br style="clear: left;"></p>
<p><b><a href="http://learnyouahaskell.com/chapters">Learn You a Haskell for Great Good!</a></b><br />
A funny title, but a serious book about the purely functional programming language Haskell.<br />
<br style="clear: left;"></p>
<p>
<img style="float: left;" src="http://www.coderholic.com/wp-content/uploads/books/device-drivers.gif"/><b><a href="http://www.xml.com/ldd/chapter/book/index.html">Linux Device Drivers</a></b><br />
An O&#8217;Reilly guide on how Linux device drivers work, and developing your own.<br />
<a href="http://www.amazon.co.uk/gp/product/0596005903?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0596005903">View on Amazon</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0596005903" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p>
<p><br style="clear: left;"></p>
<p>
<img style="float: left;" src="http://www.coderholic.com/wp-content/uploads/books/linux-network-admin.jpg"/><b><a href="http://www.oreilly.com/catalog/linag2/book/index.html">Linux Network Administrator&#8217;s Guide</a></b><br />
An O&#8217;Reilly guide to to network administration on Linux, covering topics such as configuration, firewalls, and DNS.<br />
<a href="http://www.amazon.co.uk/gp/product/0596005482?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0596005482">View on Amazon</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0596005482" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p>
<p><br style="clear: left;"></p>
<p>
<img style="float: left;" src="http://www.coderholic.com/wp-content/uploads/books/logic-prog-prolog.jpg"/><b><a href="http://www.ida.liu.se/%7Eulfni/lpp/">Logic, Programming and Prolog</a></b> (PDF)<br />
Broken up into three parts: Foundations, Programming in Logic, and Alternative Logic Programming Schemes. This books covers both the theory and practice of logic programming with Prolog in detail.<br />
<a href="http://www.amazon.co.uk/gp/product/0471959960?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0471959960">View on Amazon</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0471959960" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
<br style="clear: left;"></p>
<p>
<img style="float: left;" src="http://www.coderholic.com/wp-content/uploads/books/opengl-guide.jpg"/><b><a href="http://fly.srk.fer.hr/~unreal/theredbook/">The OpenGL Programming Guide</a></b><br />
Also known as &#8220;The Red Book&#8221;, this guide tells you all you need to know about the 3D graphics programming library.<br />
<a href="http://www.amazon.co.uk/gp/product/0321481003?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0321481003">View on Amazon</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0321481003" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
<br style="clear: left;"></p>
<p>
<img style="float: left;" src="http://www.coderholic.com/wp-content/uploads/books/phpunit.gif"/><b><a href="http://www.phpunit.de/pocket_guide/3.3/en/index.html">PHPUnit Pocket Guide</a></b><br />
The official documentation of the PHP unit testing framework. Contains everything you need to know to start writing automated tests for your PHP code.<br />
<br style="clear: left;"></p>
<p>
<img style="float: left;" src="http://www.coderholic.com/wp-content/uploads/books/practical-common-lisp.gif"/><b><a href="http://gigamonkeys.com/book/">Practical Common Lisp</a></b><br />
An introduction to Common Lisp. Covers the language in detail, and goes on to describe lots of real life software projects such as spam filters and an network enabled MP3 player.<br />
<a href="http://www.amazon.co.uk/gp/product/1590592395?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=1590592395">View on Amazon</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=1590592395" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
<br style="clear: left;"></p>
<p>
<img style="float: left;" src="http://www.coderholic.com/wp-content/uploads/books/lua.jpg"/><b><a href="http://www.lua.org/pil/">Programming in Lua</a></b><br />
A complete guide to the popular lightweight scripting language, written by its chief architect.<br />
<a href="http://www.amazon.co.uk/gp/product/8590379825?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=8590379825">View on Amazon</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=8590379825" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
<br style="clear: left;"></p>
<p>
<img style="float: left;" src="http://www.coderholic.com/wp-content/uploads/books/pragmatic-ruby.jpg"/><b><a href="http://www.ruby-doc.org/docs/ProgrammingRuby/html/index.html">Programming Ruby: The Pragmatic Programmer&#8217;s Guide</a></b><br />
A guide to the popular programming language Ruby from the Pragmatic Programmers.<br />
<a href="http://www.amazon.co.uk/gp/product/0974514055?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0974514055">View on Amazon</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0974514055" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
<br style="clear: left;"></p>
<p>
<img style="float: left;" src="http://www.coderholic.com/wp-content/uploads/books/scheme-programming-langauge.jpg"/><b><a href="http://www.scheme.com/tspl3/">The Scheme Programming Language</a></b><br />
A complete guide to the Scheme programming language.<br />
<a href="http://www.amazon.co.uk/gp/product/0262541483?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0262541483">View on Amazon</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0262541483" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
<br style="clear: left;"></p>
<p>
<img style="float: left;" src="http://www.coderholic.com/wp-content/uploads/books/soft-eng-ia.jpg"/><b><a href="http://philip.greenspun.com/seia/">Software Engineering for Internet Applications</a></b><br />
The textbook for an MIT course with the same name. This book discusses issues related to building online application, including user registration, content management, and scaling.</p>
<p><a href="http://www.amazon.co.uk/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.co.uk%2Fexec%2Fobidos%2FASIN%2F0262511916%2F&#038;tag=coderholic-21&#038;linkCode=ur2&#038;camp=1634&#038;creative=6738">View on Amazon</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=ur2&#038;o=2" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
<br style="clear: left;"></p>
<p><b><a href="http://philip.greenspun.com/sql/">SQL for Web Nerds</a></b><br />
Written by MIT professor Philip Greenspun, this book aims to teach SQL from a real world perspective rather than from a theoretical standpoint.<br />
<br style="clear: left;"></p>
<p>
<img style="float: left;" src="http://www.coderholic.com/wp-content/uploads/books/SICP.jpg"/><b><a href="http://mitpress.mit.edu/sicp/full-text/book/book.html">Structure and Interpretation of Computer Programs</a></b><br />
A classic computer science text that teaches some advanced programming concepts using Lisp.<br />
<a href="http://www.amazon.co.uk/gp/product/0262510871?ie=UTF8&#038;tag=coderholic-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0262510871">View on Amazon</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&#038;l=as2&#038;o=2&#038;a=0262510871" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
<br style="clear: left;"></p>
<p><b><a href="http://home.netcom.com/~tjensen/ptr/pointers.htm">A Tutorial on Pointers and Arrays in C</a></b><br />
An extremely detailed tutorial (10 chapters) on pointers and arrays in C. It starts with a description of a pointer and ends with function pointers.<br />
<br style="clear: left;"></p>
<p>
That is just a selection of some of the great books that are available for free online. If you don&#8217;t know where to look for more a good place to start looking try my <a href="http://www.coderholic.com/free-python-programming-books/">top 10 free python books</a> post. I&#8217;m sure I&#8217;ll be posting about more in the future too, so be sure to <a href="http://feeds.feedburner.com/coderholic">subscribe</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coderholic.com/25-free-computer-science-books/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>10 Free Python Programming Books</title>
		<link>http://www.coderholic.com/free-python-programming-books/</link>
		<comments>http://www.coderholic.com/free-python-programming-books/#comments</comments>
		<pubDate>Sat, 23 Aug 2008 15:18:00 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.coderholic.com/?p=75</guid>
		<description><![CDATA[Below is a collection of 10 great Python programming books that are available online in full, completely free of charge: Dive into Python This is a fantastic book that is also available in print. It covers everything, from installing Python and the language&#8217;s syntax, right up to web services and unit testing. This is a [...]]]></description>
			<content:encoded><![CDATA[<p>Below is a collection of 10 great Python programming books that are available online in full, completely free of charge:</p>
<p><strong><a href="http://www.diveintopython.org/">Dive into Python</a></strong></p>
<p><a href="http://www.amazon.co.uk/gp/offer-listing/1590593561?ie=UTF8&amp;tag=coderholic-21&amp;linkCode=am2&amp;camp=1634&amp;creative=6738&amp;creativeASIN=1590593561"><img class="alignnone size-medium wp-image-76" style="float: left; margin-right: 5px; border:none;" title="diveintopython" src="http://www.coderholic.com/wp-content/uploads/2008/08/diveintopython.jpg" alt="" width="89" height="110" /></a></p>
<p>This is a fantastic book that is also <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.co.uk%2FDive-Into-Python-Mark-Pilgrim%2Fdp%2F1590593561%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1219497763%26sr%3D8-1&amp;tag=coderholic-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">available in print</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=coderholic-20&amp;l=ur2&amp;o=1" border="0" alt="" width="1" height="1" />. It covers everything, from installing Python and the language&#8217;s syntax, right up to web services and <a href="http://site.typemock.com">unit testing</a>. This is a good book to learn from, but it&#8217;s also excellent to use a reference. I frequently find myself visiting the site! If you only read one book on this list make it this one.</p>
<p><a href="http://www.amazon.co.uk/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.co.uk%2FPython-Standard-Library-Nutshell-Handbooks%2Fdp%2F0596000960%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1219502286%26sr%3D8-1&amp;tag=coderholic-21&amp;linkCode=ur2&amp;camp=1634&amp;creative=6738"></a></p>
<p><strong style="clear: left;"><a href="http://www.pythonware.com/library/tkinter/introduction/index.htm">An Introduction to Tkinter</a></strong></p>
<p>Tkinter is a popular cross-platform Python GUI toolkit, and this book provides a good introduction with lots of examples. If you want to learn GUI development with Python then this book is a great place to start.</p>
<p><strong><a href="http://openbookproject.net//thinkCSpy/">How to think like a Computer Scientist</a></strong></p>
<p>This book uses Python to explain some Computer Science principals. It is full of examples, and each chapter has a collection of exercises for the reader to perform.</p>
<p><a href="http://effbot.org/librarybook/"><strong>The Standard Python Library</strong></a></p>
<p><a href="http://www.amazon.co.uk/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.co.uk%2FPython-Standard-Library-Nutshell-Handbooks%2Fdp%2F0596000960%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1219502286%26sr%3D8-1&amp;tag=coderholic-21&amp;linkCode=ur2&amp;camp=1634&amp;creative=6738"><img class="alignnone size-medium wp-image-78" style="border: none; margin-right: 5px; float: left;" title="stdlib" src="http://www.coderholic.com/wp-content/uploads/2008/08/stdlib.jpg" alt="" width="89" height="117" /></a></p>
<p><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&amp;l=ur2&amp;o=2" border="0" alt="" width="1" height="1" /><br />
This book provides a detailed description and usage examples for all of the modules in Python&#8217;s standard library. This fantastic reference is <a href="http://www.amazon.co.uk/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.co.uk%2FPython-Standard-Library-Nutshell-Handbooks%2Fdp%2F0596000960%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1219502286%26sr%3D8-1&amp;tag=coderholic-21&amp;linkCode=ur2&amp;camp=1634&amp;creative=6738">available in print</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&amp;l=ur2&amp;o=2" border="0" alt="" width="1" height="1" />.</p>
<p style="clear: left;"><strong><a href="http://pythonbook.coffeeghost.net/book1/index.html">Invent Your Own Computer Games with Python</a></strong></p>
<p>This book is aimed at novice programmers who are interested in writing simple computer games. Each chapter describes a different game and goes through the stages of design and development. A great book for beginners, but the book lacks more advanced content and doesn&#8217;t include any information about Python game development libraries such as <a href="http://www.pygame.org/news.html">PyGame</a>.</p>
<p><strong><a href="http://www.djangobook.com/en/1.0/">The Django Book</a></strong></p>
<p><a href="http://www.amazon.co.uk/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.co.uk%2FPro-Django-Development-Done-Right%2Fdp%2F1590597257%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1219500025%26sr%3D1-2&amp;tag=coderholic-21&amp;linkCode=ur2&amp;camp=1634&amp;creative=6738"><img class="alignnone size-medium wp-image-77" style="float: left; margin-right: 5px; border: none;" title="django" src="http://www.coderholic.com/wp-content/uploads/2008/08/django.jpg" alt="" width="84" height="110" /><br />
</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&amp;l=ur2&amp;o=2" border="0" alt="" width="1" height="1" /><br />
Django is a Python web framework (similar to Ruby&#8217;s <a href="http://www.rubyonrails.org/">Rails</a>) which &#8220;encourages rapid development and clean, pragmatic design&#8221;. This book covers the framework in detail, and is a great place to start if you&#8217;re thinking about creating a dynamic website using Python. This book is also <a href="http://www.amazon.co.uk/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.co.uk%2FPro-Django-Development-Done-Right%2Fdp%2F1590597257%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1219500025%26sr%3D1-2&amp;tag=coderholic-21&amp;linkCode=ur2&amp;camp=1634&amp;creative=6738">available in print</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&amp;l=ur2&amp;o=2" border="0" alt="" width="1" height="1" /></p>
<p><strong style="clear: left;"><a href="http://pylonsbook.com/">The Pylons Book</a></strong></p>
<p><a href="http://www.amazon.co.uk/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.co.uk%2FDefinitive-Guide-Pylons%2Fdp%2F1590599349%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1219499879%26sr%3D8-1&amp;tag=coderholic-21&amp;linkCode=ur2&amp;camp=1634&amp;creative=6738"></a></p>
<p><a href="http://www.amazon.co.uk/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.co.uk%2FDefinitive-Guide-Pylons%2Fdp%2F1590599349%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1219499879%26sr%3D8-1&amp;tag=coderholic-21&amp;linkCode=ur2&amp;camp=1634&amp;creative=6738"><img class="alignnone size-medium wp-image-78" style="border: none; margin-right: 5px; float: left;" title="stdlib" src="http://www.coderholic.com/wp-content/uploads/2008/08/pylons.jpg" alt="" width="89" height="117" /></a></p>
<p><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&amp;l=ur2&amp;o=2" border="0" alt="" width="1" height="1" /></p>
<p>Pylons is another Python web framework. The book is structured in a very similar way to the Django book, and is worth reading if you&#8217;re looking for an alternative framework. This book is <a href="http://www.amazon.co.uk/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.co.uk%2FDefinitive-Guide-Pylons%2Fdp%2F1590599349%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1219499879%26sr%3D8-1&amp;tag=coderholic-21&amp;linkCode=ur2&amp;camp=1634&amp;creative=6738">available in print</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=coderholic-21&amp;l=ur2&amp;o=2" border="0" alt="" width="1" height="1" /> too.</p>
<p style="clear: left;"><strong><a href="http://www.brpreiss.com/books/opus7/html/">Data Structures and Algorithms with Object-Oriented Design Patterns in Python</a></strong></p>
<p>This book provides a thorough introduction to data structures and algorithms using Python. This is definitely not a book for those wishing to learn Python. However, if you want to learn about data structures and algorithms, or you just wish to learn about their implementation in Python, I can&#8217;t recommend this book enough.</p>
<p><strong><a href="http://homepage.mac.com/s_lott/books/python/pythonbook-2.5.html">Building Skills in Python</a></strong></p>
<p>This book consists of 42 chapters, each packed full of exercises designed to help you build Python programming skills. The book &#8220;includes six projects from straight-forward to sophisticated that will help     solidify your Python skills&#8221;. A great book for those that already know Python, but would like to become more proficient.</p>
<p><a href="http://homepage.mac.com/s_lott/books/oodesign.html"><strong>Building Skills in OO Design</strong></a></p>
<p>Written by the same author as the book above, this book follows the same format. This book focuses on object-oriented application design (using Python, of course) to help you to develop better programs.</p>
<p><strong>More free books&#8230;</strong></p>
<p>Above are just some examples of the books that you can find online. Back in January I posted a list of <a href="http://www.coderholic.com/free-computer-science-books/">free computer science books</a>, and I&#8217;ve managed to find lots more since then! I&#8217;ll post about them soon, so be sure to subscribe to my <a href="http://feeds.feedburner.com/coderholic">RSS feed</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coderholic.com/free-python-programming-books/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Design Patterns</title>
		<link>http://www.coderholic.com/design-patterns/</link>
		<comments>http://www.coderholic.com/design-patterns/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 15:46:41 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[software design]]></category>

		<guid isPermaLink="false">http://www.dowling.me.uk/blog/design-patterns/</guid>
		<description><![CDATA[Knowledge of design patterns can be really useful when designing software. If you don&#8217;t know what a design pattern is, then from Wikipedia: In software engineering, a design pattern is a general reusable solution to a commonly occurring problem in software design. A design pattern is not a finished design that can be transformed directly [...]]]></description>
			<content:encoded><![CDATA[<p>Knowledge of design patterns can be really useful when designing software. If you don&#8217;t know what a design pattern is, then from Wikipedia:</p>
<blockquote><p>In software engineering, a <strong class="selflink">design pattern</strong> is a general reusable solution to a commonly occurring problem in software design. A design pattern is not a finished design that can be transformed directly into <span class="mw-redirect">code</span>. It is a description or template for how to solve a problem that can be used in many different situations.</p></blockquote>
<p>Design patterns were made famous by the book <a href="http://www.amazon.co.uk/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.co.uk%2FDesign-patterns-elements-reusable-object-oriented%2Fdp%2F0201633612%3Fie%3DUTF8%26qid%3D1203867430%26sr%3D11-1&amp;tag=dowlingmeuk-21&amp;linkCode=ur2&amp;camp=1634&amp;creative=6738">Design patterns: elements of reusable object-oriented software</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=dowlingmeuk-21&amp;l=ur2&amp;o=2" style="border: medium none  ! important; margin: 0px ! important" border="0" height="1" width="1" />, written by the Gang of Four, or GoF. Although I&#8217;ve never got round to reading it, it is fairly high on my to-read list!</p>
<p><a href="http://www.amazon.co.uk/gp/product/0201633612?ie=UTF8&amp;tag=dowlingmeuk-21&amp;linkCode=as2&amp;camp=1634&amp;creative=6738&amp;creativeASIN=0201633612"><img src="http://www.dowling.me.uk/blog/wp-content/uploads/2008/02/gof.jpg" alt="Design Patterns by the GOF" border="0" /></a><img src="http://www.assoc-amazon.co.uk/e/ir?t=dowlingmeuk-21&amp;l=as2&amp;o=2&amp;a=0201633612" style="border: medium none  ! important; margin: 0px ! important" border="0" height="1" width="1" /></p>
<p>Despite not having read the GoF book I&#8217;m still aware of some of the more common design patterns, such as the singleton, factory, and iterator patterns. Such is the nature of patterns that I&#8217;ve probably used some without even being aware,after all they are just common reusable software designs.</p>
<p>I recently came across an excellent <a href="http://sourcemaking.com/design_patterns">website</a> that gives details on all of the GoF design patterns, including descriptions, UML diagrams, and sample code in Java, C++ and PHP! The site isn&#8217;t good enough to displace the GoF book from my to-read list, but I&#8217;m sure I&#8217;ll find it useful for the mean time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coderholic.com/design-patterns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Computer Science Books</title>
		<link>http://www.coderholic.com/free-computer-science-books/</link>
		<comments>http://www.coderholic.com/free-computer-science-books/#comments</comments>
		<pubDate>Sun, 27 Jan 2008 14:50:32 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[books]]></category>

		<guid isPermaLink="false">http://www.dowling.me.uk/blog/2008/01/27/free-computer-science-books/</guid>
		<description><![CDATA[There are some really good computer science related books available online for free! Below are some of the great ones I&#8217;ve found, but I&#8217;m sure there must be some more. If you know of them please mention them in the comments. Dive Into Python The Django Book The Handbook of Applied Cryptography Practical Common Lisp [...]]]></description>
			<content:encoded><![CDATA[<p>There are some really good computer science related books available online for free! Below are some of the great ones I&#8217;ve found, but I&#8217;m sure there must be some more. If you know of them please mention them in the comments.</p>
<ul>
<li><a href="http://www.diveintopython.org/">Dive Into Python</a></li>
<li><a href="http://www.djangobook.com/en/1.0/">The Django Book</a></li>
<li><a href="http://www.cacr.math.uwaterloo.ca/hac/index.html">The Handbook of Applied Cryptography</a></li>
<li><a href="http://gigamonkeys.com/book/">Practical Common Lisp</a></li>
<li><a href="http://www.xml.com/ldd/chapter/book/index.html">Linux Device Drivers</a></li>
<li><a href="http://www.oreilly.com/catalog/linag2/book/index.html">Linux Network Administrators Guide</a></li>
<li><a href="http://www.brpreiss.com/books/opus4/html/book.html">Data Structures and Algorithms with Object-Oriented Design Patterns in C++</a></li>
<li><a href="http://mitpress.mit.edu/sicp/full-text/book/book.html">Structure and Interpretation of Computer Programs</a></li>
<li><a href="http://www.htdp.org/2002-09-22/Book/curriculum.html">How to Design Programs </a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.coderholic.com/free-computer-science-books/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
