<?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>Philosophical Geek &#187; Books</title>
	<atom:link href="http://www.philosophicalgeek.com/category/books/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.philosophicalgeek.com</link>
	<description>Code and musings by Ben Watson</description>
	<lastBuildDate>Fri, 12 Mar 2010 23:43:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The Book is Made Real</title>
		<link>http://www.philosophicalgeek.com/2010/03/09/the-book-is-made-real/</link>
		<comments>http://www.philosophicalgeek.com/2010/03/09/the-book-is-made-real/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 06:24:56 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.philosophicalgeek.com/2010/03/09/the-book-is-made-real/</guid>
		<description><![CDATA[ These arrived in the mail today.  
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.philosophicalgeek.com/wp-content/uploads/2010/03/DSC6969.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="_DSC6969" border="0" alt="_DSC6969" align="right" src="http://www.philosophicalgeek.com/wp-content/uploads/2010/03/DSC6969_thumb.jpg" width="244" height="165" /></a> <a href="http://www.amazon.com/gp/product/0672330636?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0672330636">These</a> arrived in the mail today. <img src='http://www.philosophicalgeek.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.philosophicalgeek.com/2010/03/09/the-book-is-made-real/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C# 4.0 How-To Available Now!</title>
		<link>http://www.philosophicalgeek.com/2010/03/08/c-4-0-how-to-available-now/</link>
		<comments>http://www.philosophicalgeek.com/2010/03/08/c-4-0-how-to-available-now/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 21:41:15 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.philosophicalgeek.com/2010/03/08/c-4-0-how-to-available-now/</guid>
		<description><![CDATA[
Well, it’s finally out! Amazon no longer lists the book as available for pre-sale, and it should be shipping to purchasers today or tomorrow. If you’re a B&#38;N shopper, you can also order it there, or grab it in stores within a few days.
From the product description:
Real Solutions for C# 4.0 Programmers
Need fast, robust, efficient [...]]]></description>
			<content:encoded><![CDATA[<p><iframe style="width: 120px; height: 240px" marginheight="0" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;bc1=FFFFFF&amp;IS2=1&amp;nou=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;t=philosophic0d-20&amp;o=1&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;md=10FE9736YVPPT7A0FBG2&amp;asins=0672330636" frameborder="0" marginwidth="0" scrolling="no" align="left"></iframe>
<p>Well, it’s finally out! <a href="http://www.amazon.com/gp/product/0672330636?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0672330636">Amazon</a> no longer lists the book as available for pre-sale, and it should be shipping to purchasers today or tomorrow. If you’re a B&amp;N shopper, you can also order it <a href="http://search.barnesandnoble.com/C-40-How-to/Ben-Watson/e/9780672330636/?itm=4&amp;USRI=c%23+4.0">there</a>, or grab it in stores within a few days.</p>
<p>From the product description:</p>
<h3>Real Solutions for C# 4.0 Programmers</h3>
<p>Need fast, robust, efficient code solutions for Microsoft C# 4.0? This book delivers exactly what you’re looking for. You’ll find more than 200 solutions, best-practice techniques, and tested code samples for everything from classes to exceptions, networking to XML, LINQ to Silverlight. Completely up-to-date, this book fully reflects major language enhancements introduced with the new C# 4.0 and .NET 4.0. When time is of the essence, turn here first: Get answers you can trust and code you can use, right now!</p>
<p>Beginning with the language essentials and moving on to solving common problems using the .NET Framework, <i><b><i>C# 4.0 How-To</i> </b></i>addresses a wide range of general programming problems and algorithms. Along the way is clear, concise coverage of a broad spectrum of C# techniques that will help developers of all levels become more proficient with C# and the most popular .NET tools.</p>
<p><b>Fast, Reliable, and Easy to Use!</b></p>
<ul>
<li>Write more elegant, efficient, and reusable code </li>
<li>Take advantage of real-world tips and best-practices advice </li>
<li>Create more effective classes, interfaces, and types </li>
<li>Master powerful data handling techniques using collections, serialization, databases, and XML </li>
<li>Implement more effective user interfaces with both WPF and WinForms </li>
<li>Construct Web-based and media-rich applications with ASP.NET and Silverlight </li>
<li>Make the most of delegates, events, and anonymous methods </li>
<li>Leverage advanced C# features ranging from reflection to asynchronous programming </li>
<li>Harness the power of regular expressions </li>
<li>Interact effectively with Windows and underlying hardware </li>
<li>Master the best reusable patterns for designing complex programs </li>
</ul>
<p>I’ll be doing a book giveaway at some point as well, once I get my own shipment. Stay tuned!</p>
<p>Get it from <a href="http://www.amazon.com/gp/product/0672330636?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0672330636">Amazon</a></p>
<p>Get it from <a href="http://search.barnesandnoble.com/C-40-How-to/Ben-Watson/e/9780672330636/?itm=6&amp;USRI=ben+watson">Barnes and Noble</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.philosophicalgeek.com/2010/03/08/c-4-0-how-to-available-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Review: The Code Book &#8211; the most entertaining book on cryptography you&#8217;ll ever read</title>
		<link>http://www.philosophicalgeek.com/2009/11/03/review-the-code-book-the-most-entertaining-book-on-cryptography-youll-ever-read/</link>
		<comments>http://www.philosophicalgeek.com/2009/11/03/review-the-code-book-the-most-entertaining-book-on-cryptography-youll-ever-read/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 03:30:22 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://www.philosophicalgeek.com/2009/11/03/review-the-code-book-the-most-entertaining-book-on-cryptography-youll-ever-read/</guid>
		<description><![CDATA[I recently wandered into a thrift store and as is usual in these stores I headed to the book section.(I live by the maxim that you can never own too many books.) The only thing that really caught my eye was a hardcover edition of The Code Book: The Science of Secrecy from Ancient Egypt [...]]]></description>
			<content:encoded><![CDATA[<p>I recently wandered into a thrift store and as is usual in these stores I headed to the book section.(I live by the maxim that you can never own too many books.) The only thing that really caught my eye was a hardcover edition of <a href="http://www.amazon.com/gp/product/0385495323?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0385495323">The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography</a><img style="border-bottom-style: none !important; border-right-style: none !important; margin: 0px; border-top-style: none !important; border-left-style: none !important" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0385495323" width="1" height="1" /> by Simon Singh. A quick perusal indicated it would be worth the shelf space.</p>
<p>However, I severely underestimated how much I would enjoy this book. I’m about half way through and find it so interesting and compelling a read that I feel I have to write about it.</p>
<p>The thing that really strikes me about this book is how <strong>entertaining</strong> and <strong>readable</strong> it is. I am not a big crypto or security guru, so I came to this book largely ignorant of of the topics and history. </p>
<p>The book is a wonderful blend of how encryption works with the history that surrounded its development. For such a seemingly-complex topic, Singh seems to have hit the perfect blend of history and instruction. Starting with the rudimentary Caesarian ciphers (basically, letter substitution) he builds up the techniques in the millenia-old one-upsmanship game between those who encipher and those who attempt to decipher. He starts with frequency analysis and history progresses he builds upon the previous techniques in explaining ever-more sophisticated attacks.</p>
<p>Surrounding this technical (yet still easy to understand) instruction is a fairly thorough narration of the history where these ciphers played a crucial role, from ancient Egypt, Julius Caesar, Mary Queen of Scots’ plot against Queen Elizabeth I, to legends of buried treasure protected by unbreakable ciphers, to the formidable German Enigma machine&#8211;</p>
<p>And let me be clear—he will teach you exactly how Enigma worked! It’s not that complicated, once you understand the principles that came before it.</p>
<p>Similarly, he explains how first the Polish and then the British cracked the Enigma as it evolved from the 1930’s to the end of the war, the mistakes the Germans made, and the things that, for example, the German Navy did to increase the security of it so that it became essentially unbreakable without external help (i.e., finding a codebook).</p>
<p>He discusses the Navajo code talkers (there is more to it than simply speaking an obscure language!), public key security, and finally quantum computing.</p>
<p>If you enjoy computer security topics, history, or just like to geek out, this is a great book to read.</p>
<p>Coincidentally, Simon Singh is also at the center of an unfortunate controversy in the UK surrounding some (I believe justified) comments he made about the British Chiropractic Association’s practices of encouraging procedures that could be considered unsafe. Rather than defend the practices with facts, they have decided to sue him for libel (the UK is infamous for having draconian libel laws that strongly favor accusers). You can learn more at <a href="http://www.simonsingh.net/">his website</a>.</p>
<p>You can also read a thorough explanation of the events at the <a href="http://blogs.discovermagazine.com/badastronomy/2009/06/03/singh-the-blues/">Bad Astronomy blog</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.philosophicalgeek.com/2009/11/03/review-the-code-book-the-most-entertaining-book-on-cryptography-youll-ever-read/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C# 4.0 How-To now available for pre-sale!</title>
		<link>http://www.philosophicalgeek.com/2009/10/15/c-4-0-how-to-now-available-for-pre-sale/</link>
		<comments>http://www.philosophicalgeek.com/2009/10/15/c-4-0-how-to-now-available-for-pre-sale/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 03:51:47 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.philosophicalgeek.com/2009/10/15/c-4-0-how-to-now-available-for-pre-sale/</guid>
		<description><![CDATA[ For the last year, aside from starting a great job with Bing, I’ve also been working on a book about C# 4.0 and the upcoming .Net framework. The news: it is finally available for presale! This book is not your typical C# reference. It’s designed to be an easy guide to how to accomplish [...]]]></description>
			<content:encoded><![CDATA[<div align="left"><a href="http://www.amazon.com/gp/product/0672330636?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0672330636"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 30px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="csharp_howto_ben_watson" border="0" alt="csharp_howto_ben_watson" align="left" src="http://www.philosophicalgeek.com/wp-content/uploads/2009/10/csharp_howto_ben_watson.jpg" width="164" height="244" /></a> For the last year, aside from starting a great job with Bing, I’ve also been working on a book about C# 4.0 and the upcoming .Net framework. The news: it is finally available for presale! This book is not your typical C# reference. It’s designed to be an easy guide to how to accomplish specific tasks, using a problem/solution approach. Some examples:</div>
<ul>
<li>How to use P/LINQ (new in .Net 4!) </li>
<li>Override Equals and implement IEquatable&lt;T&gt; correctly </li>
<li>Enforce coding contracts (new in .Net 4!) </li>
<li>Convert numbers to strings in arbitrary bases </li>
<li>Various ways of rounding, including “snapping” to specific intervals.</li>
<li>Dynamic discovery of WCF services </li>
<li>Make your Silverlight 3 application run out-of-the-browser </li>
<li>Speed up array access </li>
<li>Easily split work among multiple processors </li>
<li>Localize WinForms, WPF, ASP.Net, and Silverlight apps </li>
</ul>
<p>…and <strong>hundreds</strong> of other topics, covering everything from the basics of C# to WPF, ASP.Net, interaction with the operating system, common application patterns and more. I cover all the new stuff that’s in both the C# language and the .Net 4 framework classes, as well as existing functionality.</p>
<p>Each topic begins with a brief description of when/where/why you would need to use the technique, followed by a brief explanation and source code.</p>
<p>I often just want a reference I can quickly dive into to remind me of how something is done. This book is my attempt to put in writing what I find valuable, both when I was learning C# and now when I just need to locate a sample quickly.</p>
<ul>
<li>C# 4.0 How-To at <a href="http://www.amazon.com/gp/product/0672330636?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0672330636">Amazon</a></li>
<li>C# 4.0 How-To at <a href="http://search.barnesandnoble.com/C-40-How-to/Ben-Watson/e/9780672330636/?itm=1&amp;usri=c++4+0+how%2Dto">Barnes and Noble</a></li>
</ul>
<p>Over the next few months I’ll talk more about what’s in the book, and hopefully get back into blogging more programming topics.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.philosophicalgeek.com/2009/10/15/c-4-0-how-to-now-available-for-pre-sale/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Software Creativity and Strange Loops</title>
		<link>http://www.philosophicalgeek.com/2008/11/03/software-creativity-and-strange-loops/</link>
		<comments>http://www.philosophicalgeek.com/2008/11/03/software-creativity-and-strange-loops/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 02:11:15 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[A Better Future]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Thoughts On Tech and More]]></category>
		<category><![CDATA[creativity]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[intelligence]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[star trek]]></category>
		<category><![CDATA[strange loop]]></category>

		<guid isPermaLink="false">http://www.philosophicalgeek.com/2008/11/03/software-creativity-and-strange-loops/</guid>
		<description><![CDATA[I’ve been thinking a lot lately about the kind of technology and scientific understanding that would need to go into a computer like the one on the Enterprise in Star Trek, and specifically its interaction with people. It’s a computer that can respond to questions in context—that is, you don’t have to restart in every [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve been thinking a lot lately about the kind of technology and scientific understanding that would need to go into a computer like the one on the Enterprise in Star Trek, and specifically its interaction with people. It’s a computer that can respond to questions in context—that is, you don’t have to restart in every question everything needed to answer. The computer has been monitoring the conversation and has thus built up a context that it can use to understand and intelligently respond.</p>
<p>A computer that records and correlates conversations real-time must have a phenomenal ability (compared to our current technology) to not just syntactically parse the content, but also construct semantic models of it. If a computer is going to respond intelligently to you, it has to understand you. This is far beyond our current technology, but we’re moving there. In 20 years who knows where this will be. In 100, we can’t even imagine it. 400 years is nearly beyond contemplation.</p>
<p>The philosophy of computer understanding, and human-computer interaction specifically is incredibly interesting. I was led to think a lot about this while reading Robert Glass’s <a href="http://www.amazon.com/gp/product/0977213315?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0977213315">Software Creativity 2.0</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0977213315" width="1" border="0" />. This book is about the design and construction of software, but it has a deep philosophical undercurrent running throughout that kept me richly engaged. Much of the book is presented as conflicts between opposing forces:</p>
<ul>
<li>Discipline versus Flexibility </li>
<li>Formal Methods versus Heuristics </li>
<li>Optimizing versus <a href="http://en.wikipedia.org/wiki/Satisficing">satisficing</a> </li>
<li>Quantitative versus qualitative reasoning </li>
<li>Process versus product </li>
<li>Intellectual versus clerical </li>
<li>Theory versus practice </li>
<li>Industry versus academe </li>
<li>Fun versus getting serious </li>
</ul>
<p>Too often, neither one of these sides is “right”—they are just part of the problem (or the solution). While the book was written from the perspective of software construction, I think you can twist the intention just a little and consider them as attributes of software itself, not just how to write it, but how software must function. Most of those titles can be broken up into a dichotomy of Thinking versus Doing.</p>
<p><strong>Thinking</strong>: Flexibility, Heuristics, Satisficing, Qualitative, Process, Intellectual, Theory, Academe</p>
<p><strong>Doing</strong>: Discipline, Formal Methods, Optimizing, Quantitative, Product, Clerical, Practice, Industry</p>
<p>Computers are wonderful at the doing, not so much at the thinking. Much of thinking is synthesizing information, recognizing patterns, and highlighting the important points so that we can understand it. As humans, we have to do this or we are overwhelmed and have no comprehension. A computer has no such requirement—all information is available to it, yet it has no capability to synthesize, apply experience and perhaps (seemingly) unrelated principles to the situation. In this respect, the computer’s advantage in quantity is far outweighed by its lack of understanding. It has all the context in the world, but no way to apply it.</p>
<p>A good benchmark for a reasonable AI on the level I’m dreaming about is a program that can synthesize a complex set of documents (be they text, audio, or video) and produce a comprehensible summary that is not just selected excerpts from each. This functionality implies an ability to understand and comprehend on many levels. To do this will mean a much deeper understanding of the problems facing us in computer science, as represented in the list above.</p>
<p>You can start to think of these attributes/actions as mutually beneficial and dependent, influencing one another, recursively, being distinct (at&#160; first), and then morphing into a spiral, both being inputs to the other. Quantitative reasoning leads to qualitative analysis which leads back to qualitative measures, etc. </p>
<p>It made me think of Douglas R. Hofstadter’s opus <a href="http://www.amazon.com/gp/product/0465026567?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0465026567">Godel, Escher, Bach: An Eternal Golden Braid</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0465026567" width="1" border="0" />. This is a fascinating book that, if you can get through it (I admit I struggled through parts), wants you to think of consciousness as the attempted resolution of a very high-order <em>strange loop</em>. </p>
<blockquote><p>The Strange Loop phenomenon occurs whenever, by moving upwards (or downwards) through the levels of some hierarchical system, we unexpectedly find ourselves right back where we started. </p>
</blockquote>
<p>In the book, he discusses how this pattern appears in many areas, most notably music, the works of <a href="http://search.live.com/images/results.aspx?q=escher&amp;FORM=BIRE#">Escher</a>, and in philosophy, as well as consciousness.</p>
<blockquote><p>My belief is that the explanations of “emergent” phenomena in our brains—for instance, ideas, hopes, images, analogies, and finally consciousness and free will—are based on a kind of Strange Loop, an interaction between levels in which the top level reaches back down towards the bottom level and influences it, while at the same time being itself determined by the bottom level. In other words, a self-reinforcing “resonance” between different levels… The self comes into being at the moment it has the power to reflect itself.</p>
</blockquote>
<p>I can’t help but think that this idea of a strange loop, combined with Glass’s attributes of software creativity are what will lead to more intelligent computers. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.philosophicalgeek.com/2008/11/03/software-creativity-and-strange-loops/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Review: Pragmatic Unit Testing in C# with NUnit, 2nd Ed.</title>
		<link>http://www.philosophicalgeek.com/2008/06/04/review-pragmatic-unit-testing-in-c-with-nunit-2nd-ed/</link>
		<comments>http://www.philosophicalgeek.com/2008/06/04/review-pragmatic-unit-testing-in-c-with-nunit-2nd-ed/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 16:38:01 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[unit testing]]></category>

		<guid isPermaLink="false">http://www.philosophicalgeek.com/2008/06/04/review-pragmatic-unit-testing-in-c-with-nunit-2nd-ed/</guid>
		<description><![CDATA[I saw this book when I bought Programming WPF a few weeks ago and it looked promising enough to buy. I&#8217;ve been doing unit testing in C# for a few years now, but I thought there were always things to learn and maybe I&#8217;d pick up a few new ideas.
It is easy to contrast this [...]]]></description>
			<content:encoded><![CDATA[<p><iframe style="width: 120px; height: 240px" align="left" marginwidth="3" hspace="5" marginheight="0" src="http://rcm.amazon.com/e/cm?t=philosophic0d-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=0977616673&amp;nou=1&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" frameborder="0" scrolling="no"></iframe>I saw this book when I bought <a href="http://www.amazon.com/gp/product/0596510373?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596510373">Programming WPF</a> a few weeks ago and it looked promising enough to buy. I&#8217;ve been doing unit testing in C# for a few years now, but I thought there were always things to learn and maybe I&#8217;d pick up a few new ideas.</p>
<p>It is easy to contrast this book with Beck&#8217;s <a href="http://www.amazon.com/gp/product/0321146530?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321146530">Test Driven Development: By Example</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0321146530" width="1" border="0"/>, and the two books definitely have a very different feel.</p>
<p>Beck&#8217;s book has a very evangelical feel to it, and it&#8217;s main purpose is to teach a mind set more than technical details. I believe this is important&#8211;maybe of first importance&#8211;but once you understand that, the rest of the book is a little simplistic for more experienced developers.</p>
<p>Pragmatic Unit Testing, on the other hand, focuses much more on the practical aspects (hmmm&#8230;.I highly suspect that&#8217;s where the title comes from&#8230;.) of unit testing. I liked the ideas on how to use categories and attributes to segregate tests that take too long to run on a regular basis. I also liked the section on singletons and getting around time-dependencies. The DateTime.Now problem is something I&#8217;ve had to deal with quite a bit in our server-side software that has a lot of time-dependant behavior. (In most cases, the problems were solved with refactoring the time into a function parameter.)</p>
<p>There are also good discussions of more mundane issues like how to deploy NUnit, where to put tests in a project, team practices, GUIs, threading, and C#-specific issues.</p>
<p>The discussion about mock objects (a very basic introduction) is also quite clear and understandable&#8211;more so than many resources I&#8217;ve seen on the web, which often assume you already know all about them.</p>
<p>Something I don&#8217;t like: the acronyms (BICEP, CORRECT, A TRIP). They kind of bug me. I like the <strong>ideas</strong> behind the acronyms and I think it&#8217;s more important and effective (for me, anyway) to internalize the principles of testing rather than remembering specific acronyms and the words they go with. YMMV.</p>
<h3>Last Word&#8230;</h3>
<p>I will probably only read Test Drive Development: By Example once,&nbsp; but I will definitely come back to <strong>Pragmatic Unit Testing</strong> occasionally to refresh my ideas.</p>
<p><!--adsense--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.philosophicalgeek.com/2008/06/04/review-pragmatic-unit-testing-in-c-with-nunit-2nd-ed/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>5 Books to make you stupider</title>
		<link>http://www.philosophicalgeek.com/2008/02/29/5-books-to-make-you-stupide/</link>
		<comments>http://www.philosophicalgeek.com/2008/02/29/5-books-to-make-you-stupide/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 15:49:37 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Link/News]]></category>
		<category><![CDATA[Humor]]></category>

		<guid isPermaLink="false">http://www.philosophicalgeek.com/2008/02/29/5-books-to-make-you-stupide/</guid>
		<description><![CDATA[Well, after a week of investigation, I&#8217;ve settled on a social network for books: Shelfari. It&#8217;s attractive, easy-to-use, easy to manipulate many books at once, they have a mobile version, and I have one friend on it (who invited me).
&#160;Goodreads.com also looked nice, and it almost won. bookwormr.com, the one I originally found was just [...]]]></description>
			<content:encoded><![CDATA[<p>Well, after a week of investigation, I&#8217;ve settled on a social network for books: <a href="http://www.shelfari.com/" target="_blank">Shelfari</a>. It&#8217;s attractive, easy-to-use, easy to manipulate many books at once, they have a <a href="http://m.shelfari.com/" target="_blank">mobile version</a>, and I have one friend on it (who invited me).</p>
<p>&nbsp;<a href="http://www.goodreads.com/" target="_blank">Goodreads.com</a> also looked nice, and it almost won. <a href="http://www.bookwormr.com/" target="_blank">bookwormr.com</a>, the one I originally found was just too immature at this point. I&#8217;m also wondering what features are going to set it apart from the pack, especially when there are so many well-established sites that do the same thing.</p>
<p>Meanwhile, if you want to read some books that will definitely NOT make you smarter, check out <a href="http://www.cracked.com/article_15959_5-books-that-can-actually-make-you-stupider.html" target="_blank">5 Books that can actually make you stupider</a>.</p>
<p><a href="http://www.shelfari.com/pepethecow" target="_blank">Visit my Shelfari page</a>.</p>
<p>&nbsp;</p>
<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4072c577-c57e-4c7d-a8a2-e0aad5778cd0" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/books" rel="tag">books</a>,<a href="http://technorati.com/tags/shelfari" rel="tag">shelfari</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.philosophicalgeek.com/2008/02/29/5-books-to-make-you-stupide/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Online reading list &#8211; bookwormr</title>
		<link>http://www.philosophicalgeek.com/2008/02/20/online-reading-list-bookwormr/</link>
		<comments>http://www.philosophicalgeek.com/2008/02/20/online-reading-list-bookwormr/#comments</comments>
		<pubDate>Wed, 20 Feb 2008 19:16:22 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Link/News]]></category>

		<guid isPermaLink="false">http://www.philosophicalgeek.com/2008/02/20/online-reading-list-bookwormr/</guid>
		<description><![CDATA[I found a great site I wanted to share with everybody: bookwormr.
To explain:
I&#8217;ve got 3 large books on my nightstand at the moment:

Scotland: The Story of a Nation &#8211; Magnus Magnusson &#8211; Much of my heritage is Scottish, and I got intensely interested in Scottish history during our trip to Edinburgh last year.
Code Complete &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>I found a great site I wanted to share with everybody: <a target="_blank" href="http://www.bookwormr.com/">bookwormr</a>.</p>
<p>To explain:</p>
<p>I&#8217;ve got 3 large books on my nightstand at the moment:</p>
<ul>
<li><a href="http://www.amazon.com/gp/product/0802139329?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0802139329">Scotland: The Story of a Nation</a><img border="0" width="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0802139329" height="1" style="margin: 0px; border-style: none! important" /> &#8211; Magnus Magnusson &#8211; Much of my heritage is Scottish, and I got intensely interested in Scottish history during our trip to Edinburgh last year.</li>
<li><a href="http://www.amazon.com/gp/product/0735619670?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0735619670">Code Complete</a><img border="0" width="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0735619670" height="1" style="margin: 0px; border-style: none! important" /> &#8211; Steve McConnell &#8211; I&#8217;ve read this before, but it&#8217;s a good book to review every year or so and pick up new tips.</li>
<li><a href="http://www.amazon.com/gp/product/0394709306?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0394709306">The Complete Grimm&#8217;s Fairy Tales</a><img border="0" width="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0394709306" height="1" style="margin: 0px; border-style: none! important" /> &#8211; there are many variations on this book. I have a very old, out-of-print edition. I read a few of these a week&#8211;they&#8217;re mostly quite short.</li>
</ul>
<p>Those are all fairly large books and I&#8217;ve been working on them simultaneously. Meanwhile, I keep getting book recommendations from various places (blogs, podcasts, family). It&#8217;s to the point where if I don&#8217;t write them down, I&#8217;ll forget. I&#8217;ve sort-of kept track of books I want to read on my shelf, in an Outlook note, in e-mails to myself, but I was in need of a central repository for this.</p>
<p>So I stumbled upon <a target="_blank" href="http://www.bookwormr.com/">bookwormr</a>, which is (almost) exactly what I want.</p>
<p>It&#8217;s still in its infancy stages, but I think it shows great promise. And it is usable now, despite some rough edges. The owner seems very amenable to suggestions via the <a target="_blank" href="http://blog.bookwormr.com/">blog</a>.</p>
<p>How it works:</p>
<ul>
<li>Search for books (it uses Amazon as its database)</li>
<li>Add them to one of your three lists (already read, reading, want to read)</li>
<li>You can tag, review, and rate the books.</li>
<li>See what others are reading.</li>
</ul>
<p>The author also has a wordpress plug-in and a Facebook app to go along with it. I&#8217;m going to try out both.</p>
<p>Features I&#8217;d like to see:</p>
<ul>
<li>Easier way to add multiple books at a time</li>
<li>Ability to sort lists according to a ranking system of my own (the author is planning on adding the ability to sort on author, title, book rating overall)</li>
</ul>
<p>Update: <a target="_blank" href="http://www.bookwormr.com/user/show/username/pepethecow">here&#8217;s my bookwormr profile</a>.</p>
<p style="display: inline; margin: 0px; padding: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:ecaaa641-97a2-4127-a468-6d7f3c6cd71f" class="wlWriterSmartContent">Technorati Tags: <a rel="tag" href="http://technorati.com/tags/bookwormr">bookwormr</a>,<a rel="tag" href="http://technorati.com/tags/reading%20list">reading list</a>,<a rel="tag" href="http://technorati.com/tags/social%20network">social network</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.philosophicalgeek.com/2008/02/20/online-reading-list-bookwormr/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>20 Things to do when the Internet goes down</title>
		<link>http://www.philosophicalgeek.com/2007/12/14/20-things-to-do-when-the-internet-goes-down/</link>
		<comments>http://www.philosophicalgeek.com/2007/12/14/20-things-to-do-when-the-internet-goes-down/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 20:52:21 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[organization]]></category>
		<category><![CDATA[outlook]]></category>
		<category><![CDATA[podcasts]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.philosophicalgeek.com/2007/12/14/20-things-to-do-when-the-internet-goes-down/</guid>
		<description><![CDATA[Even if the Internet connection goes out, your computer does not become a dumb brick. There were days these last few days where I didn&#8217;t bother turning it on. Then I realized all the things I could still do.
(My home Internet connection finally came back this morning. I&#8217;m bit upset that they didn&#8217;t figure it [...]]]></description>
			<content:encoded><![CDATA[<p>Even if the Internet connection goes out, your computer does not become a dumb brick. There were days these last few days where I didn&#8217;t bother turning it on. Then I realized all the things I could still do.</p>
<p>(My home <a href="http://www.philosophicalgeek.com/2007/12/03/no-internet-at-home/">Internet connection finally came back</a> this morning. I&#8217;m bit upset that they didn&#8217;t figure it out earlier. It turned out that the first technician grossly misdiagnosed the problem. He put in an order for a new drop to be put in. Turned out it was just a broken modem. Why didn&#8217;t they try that earlier? Worse, why didn&#8217;t <strong><em>I</em></strong> think of it earlier. To be honest, I did think of it, but didn&#8217;t push it. Now I just need to get my money back from Comcast.)</p>
<p>Without further ado, here&#8217;s my suggestions for what to do when the Internet goes out:</p>
<p><strong>On the computer:</strong></p>
<ol>
<li>Organize photos in <strong>Picasa</strong> &#8211; I have nearly 6,000 photos on my computer. Many of them need to be deleted, organized, tagged, labeled, e-mailed, etc. (Yes, e-mailed&#8211;I can queue them in Outlook until the connection comes back).</li>
<li>Organize <strong>My Documents</strong> &#8211; I&#8217;ve let My Documents folder get very messy. Lots of files that don&#8217;t need to be there anymore. Others need to be filed, or re-filed.</li>
<li><strong>Organize e-mail</strong> &#8211; I&#8217;ve got hundreds of folders in Outlook. I&#8217;ve tried to keep my Inbox empty and put things into <a href="http://www.philosophicalgeek.com/2007/10/08/getting-the-most-out-of-outlook-2007/">@Action, @Someday, or @WaitingFor</a> folders before they find a permanent home, but sometimes it still gets out of hand.</li>
<li>Organize and fill in information in <strong>Windows Media Player</strong>. I still have music tagged with the wrong genre&#8230;</li>
<li><strong>Program</strong>. I&#8217;ve got two major programming projects I&#8217;m working on. They don&#8217;t depend on the Internet. The Internet is NICE if you need to learn something, but there&#8217;s always plenty of stuff to do that doesn&#8217;t require it. Write unit tests, run code coverage, design graphics, do all the <em>other</em> stuff if you must.</li>
<li>Write e-mails to family. Long ones. Your mom will thank you.</li>
<li>Catch up on <strong>podcasts</strong>. I got through ten episodes of Ask a Ninja, and nearly all backlogged podcasts. Now I&#8217;ll have a flood when I sync tonight.</li>
<li>Write <strong>blog</strong> entries. I use <a target="_blank" href="http://get.live.com/writer/overview">Windows Live Writer</a>. I should have done more of this.</li>
<li>Play a game.</li>
<li>Better, write a game.</li>
<li>Setup appointments and events in <strong>Outlook </strong>for the next year.</li>
<li>Read some <a target="_blank" href="http://www.philosophicalgeek.com/2007/11/21/books/">classic programming texts</a>.</li>
<li>General <strong>computer maintenance</strong>. Defrag your disk, delete temp files, delete old installation files you haven&#8217;t used in 5 years (yes, I have some of those&#8230;). Use <a target="_blank" href="http://www.philosophicalgeek.com/software/diskslicer/">DiskSlicer</a> to find where your space is going.</li>
<li>Do <strong>long-avoided projects</strong>. I have approximately 20 hours of audio I need to edit and split into tracks. I&#8217;ve been putting it off for a very long time.</li>
</ol>
<p><strong>Off the Computer:</strong></p>
<ol>
<li>Practice the piano.</li>
<li>Read books. I&#8217;ve just started <a href="http://www.amazon.com/gp/product/0060512806?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0060512806">Cryptonomicon</a> by Neal Stephenson. Very good, so far. Go buy it. If you&#8217;re a geek, you&#8217;ll like it. How can you not love a 2 page diversion into the mathematics of when a bike chain will interfere with a broken spoke and fall off? Other than the geekiness, it&#8217;s a good story.</li>
<li>Learn to cook a new dish.</li>
<li>Do crosswords.</li>
<li>Exercise.</li>
<li>Relax.</li>
</ol>
<p>Or just go to the library and use the Internet. I only did this a few times, despite it being within walking distance from where I live.</p>
<p style="display: inline; margin: 0px; padding: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c2cc5b8d-190e-4f12-8e0b-84588753e2c7" class="wlWriterSmartContent">Technorati Tags: <a rel="tag" href="http://technorati.com/tags/internet">internet</a>,<a rel="tag" href="http://technorati.com/tags/comcast">comcast</a>,<a rel="tag" href="http://technorati.com/tags/off%20the%20grid">off the grid</a>,<a rel="tag" href="http://technorati.com/tags/piano">piano</a>,<a rel="tag" href="http://technorati.com/tags/boredom">boredom</a>,<a rel="tag" href="http://technorati.com/tags/computer">computer</a>,<a rel="tag" href="http://technorati.com/tags/programming">programming</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.philosophicalgeek.com/2007/12/14/20-things-to-do-when-the-internet-goes-down/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Effective Software Developer&#8217;s Book List</title>
		<link>http://www.philosophicalgeek.com/2007/11/21/books/</link>
		<comments>http://www.philosophicalgeek.com/2007/11/21/books/#comments</comments>
		<pubDate>Wed, 21 Nov 2007 22:24:30 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[literature]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.philosophicalgeek.com/2007/11/21/books/</guid>
		<description><![CDATA[What books should all serious developers read and study? This is a list of books that I have either found particularly helpful in my own growth as a programmer, or that are popular on various required-reading lists. I have bolded books I consider absolute required reading (probably multiple times) for all software developers.
I&#8217;ve gathered these [...]]]></description>
			<content:encoded><![CDATA[<p>What books should all serious developers read and study? This is a list of books that I have either found particularly helpful in my own growth as a programmer, or that are popular on various required-reading lists. I have <strong>bolded</strong> books I consider absolute required reading (probably multiple times) for all software developers.</p>
<p>I&#8217;ve gathered these books from multiple sources, beginning with <a href="http://stevemcconnell.com/">Steve McConnell&#8217;s</a> list in the back of <a href="http://www.amazon.com/gp/product/0735619670?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0735619670">Code Complete</a>.</p>
<p>By the way, just because a book is listed in the Introductory section does not mean you shouldn&#8217;t read it because you&#8217;re advanced.</p>
<p>Why the Have I Read? column? To keep me honest, and to serve as my own checklist.</p>
<p>(Updated 11/28 &#8211; PeopleWare)<br />(Updated 12/7 &#8211; Design of Everyday Things)<br />(Updated 1/26 &#8211; Beautiful Code, Essay section)<br />(Updated 6/3 &#8211; Pragmatic Unit Testing in C# with NUnit)</p>
<h2>Introductory</h2>
<table cellspacing="0" cellpadding="2" width="463" border="0">
<tbody>
<tr>
<td valign="top" width="379"><strong><br />
<h4><strong>Book</strong></h4>
</p>
<p></strong></td>
<td valign="top" width="82"><strong><br />
<h4><strong>Have I Read?</strong></h4>
</p>
<p></strong></td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0735619670?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0735619670"><strong>Code Complete: A Practical Handbook of Software Construction</strong></a><strong><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0735619670" width="1" border="0"/></strong><br /><em>Steve McConnell</em></td>
<td valign="top" width="82">Y</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0738205370?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0738205370">Conceptual Blockbusting: A Guide to Better Ideas</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0738205370" width="1" border="0"/><br /><em>James L. Adams</em></td>
<td valign="top" width="82">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0201657880?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0201657880">Programming Pearls (2nd Edition) (ACM Press)</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0201657880" width="1" border="0"/><br /><em>Jon Bentley</em></td>
<td valign="top" width="82">Y</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0321117425?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321117425">Facts and Fallacies of Software Engineering</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0321117425" width="1" border="0"/><br /><em>Robert Glass</em></td>
<td valign="top" width="82">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/020161622X?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=020161622X">The Pragmatic Programmer: From Journeyman to Master</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=020161622X" width="1" border="0"/><br /><em>Andrew Hunt and David Thomas</em></td>
<td valign="top" width="82">Y</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/020163385X?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=020163385X">Object-Oriented Design Heuristics</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=020163385X" width="1" border="0"/><br /><em>Arther Riel</em></td>
<td valign="top" width="82">Y</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0321193687?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321193687">UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd Edition) (The Addison-Wesley Object Technology Series)</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0321193687" width="1" border="0"/><br /><em>Martin Fowler</em></td>
<td valign="top" width="82">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0131489062?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0131489062">Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition)</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0131489062" width="1" border="0"/><br /><em>Craig Larman</em></td>
<td valign="top" width="82">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0321109295?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321109295">Refactoring Workbook</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0321109295" width="1" border="0"/><br /><em>William Wake</em></td>
<td valign="top" width="82">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0201835959?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0201835959"><strong>The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition)</strong></a><strong><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0201835959" width="1" border="0"/></strong><br />Frederick Brooks</td>
<td valign="top" width="82">Y</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0262032937?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0262032937">Introduction to Algorithms</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0262032937" width="1" border="0"/><br />Thomas Cormen</td>
<td valign="top" width="82">&nbsp;</td>
</tr>
</tbody>
</table>
<h2>Intermediate</h2>
<table cellspacing="0" cellpadding="2" width="463" border="0">
<tbody>
<tr>
<td valign="top" width="379"><strong>Book</strong></td>
<td valign="top" width="82"><strong>Have I Read?</strong></td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0201741172?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0201741172"></a><a href="http://www.amazon.com/gp/product/0201741172?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0201741172">Software Configuration Management Patterns: Effective Teamwork, Practical Integration</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0201741172" width="1" border="0"/><br /><em>Stephen Berczuk and Brad Appleton</em></td>
<td valign="top" width="82">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0977213315?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0977213315">Software Creativity 2.0</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0977213315" width="1" border="0"/><br /><em>Robert Glass</em></td>
<td valign="top" width="82">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0471358460?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0471358460">Testing Computer Software, 2nd Edition</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0471358460" width="1" border="0"/><br /><em>Cem Kaner, Jack Falk, Hung Q. Nguyen</em></td>
<td valign="top" width="82">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/1556159005?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1556159005">Rapid Development</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=1556159005" width="1" border="0"/><br /><em>Steve McConnell</em></td>
<td valign="top" width="82">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0735618798?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0735618798">Software Requirements, Second Edition</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0735618798" width="1" border="0"/><br /><em>Karl Wiegers</em></td>
<td valign="top" width="82">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.construx.com/Page.aspx?cid=2133">&#8220;Manager&#8217;s Handbook for Software Development&#8221;</a> (PDF)<br />NASA Goddard Space Flight Center</td>
<td valign="top" width="82">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0321127420?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321127420">Patterns of Enterprise Application Architecture (The Addison-Wesley Signature Series)</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0321127420" width="1" border="0"/><br /><em>Martin Fowler</em></td>
<td valign="top" width="82">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0321146530?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321146530">Test Driven Development: By Example (The Addison-Wesley Signature Series)</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0321146530" width="1" border="0"/><br /><em>Kent Beck</em></td>
<td valign="top" width="82">Y</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0977616673?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0977616673">Pragmatic Unit Testing in C# with NUnit, 2nd Edition</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0977616673" width="1" border="0"/><br /><em>Andy Hunt, Dave Thomas, Matt Hargett</em></td>
<td valign="top" width="82">Y</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0321213351?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321213351">Refactoring to Patterns (The Addison-Wesley Signature Series)</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0321213351" width="1" border="0"/><br /><em>Joshua Kerievsky</em></td>
<td valign="top" width="82">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0596007124?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596007124">Head First Design Patterns (Head First)</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0596007124" width="1" border="0"/><br /><em>Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra</em></td>
<td valign="top" width="82">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0321205685?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321205685">User Stories Applied: For Agile Software Development (The Addison-Wesley Signature Series)</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0321205685" width="1" border="0"/><br /><em>Mike Cohn</em></td>
<td valign="top" width="82">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0131857258?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0131857258">Agile Principles, Patterns, and Practices in C# (Robert C. Martin Series)</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0131857258" width="1" border="0"/><br /><em>Robert Martin</em></td>
<td valign="top" width="82">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0321268202?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321268202">Applying Domain-Driven Design and Patterns: With Examples in C# and .NET</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0321268202" width="1" border="0"/><br /><em>Jimmy Nilsson</em></td>
<td valign="top" width="82">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0321278658?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321278658">Extreme Programming Explained: Embrace Change (2nd Edition) (The XP Series)</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0321278658" width="1" border="0"/><br /><em>Kent Beck</em></td>
<td valign="top" width="82">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0465067107?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0465067107"><strong>The Design of Everyday Things</strong></a><strong><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0465067107" width="1" border="0"/></strong><br />Donald A. Norman</td>
<td valign="top" width="82">Y</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0596510047?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596510047">Beautiful Code: Leading Programmers Explain How They Think</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0596510047" width="1" border="0"/></td>
<td valign="top" width="82">&nbsp;</td>
</tr>
</tbody>
</table>
<h2>Professional</h2>
<table cellspacing="0" cellpadding="2" width="468" border="0">
<tbody>
<tr>
<td valign="top" width="379"><strong>Book</strong></td>
<td valign="top" width="87"><strong>Have I Read?</strong></td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0321154959?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321154959"></a><a href="http://www.amazon.com/gp/product/0321154959?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321154959">Software Architecture in Practice (2nd Edition) (The SEI Series in Software Engineering)</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0321154959" width="1" border="0"/><br /><em>Len Bass, Paul Clements, and Rick Kazman</em></td>
<td valign="top" width="87">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0201485672?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0201485672">Refactoring: Improving the Design of Existing Code (The Addison-Wesley Object Technology Series)</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0201485672" width="1" border="0"/><br /><em>Martin Fowler</em></td>
<td valign="top" width="87">Y</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0201633612?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0201633612">Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series)</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0201633612" width="1" border="0"/><br /><em>Eric Gamma, Richard Helm, Ralph Johnson, John Vlissides</em></td>
<td valign="top" width="87">Y</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0201192462?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0201192462">Principles Of Software Engineering Management</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0201192462" width="1" border="0"/><br /><em>Tom Gilb</em></td>
<td valign="top" width="87">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/1556155514?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1556155514">Writing Solid Code</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=1556155514" width="1" border="0"/><br /><em>Steve Maguire</em></td>
<td valign="top" width="87">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0321125215?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321125215">Domain-Driven Design: Tackling Complexity in the Heart of Software</a><br /><em>Eric Evans</em></td>
<td valign="top" width="87">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0131177052?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0131177052">Working Effectively with Legacy Code (Robert C. Martin Series)</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0131177052" width="1" border="0"/><br /><em>Michael Feathers</em></td>
<td valign="top" width="87">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0131479415?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0131479415">Agile Estimating and Planning (Robert C. Martin Series)</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0131479415" width="1" border="0"/><br /><em>Mike Cohn</em></td>
<td valign="top" width="87">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.amazon.com/gp/product/0321150783?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321150783">Lean Software Development: An Agile Toolkit (The Agile Software Development Series)</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0321150783" width="1" border="0"/><br /><em>Mary Poppendieck and Tom Poppendieck</em></td>
<td valign="top" width="87">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="379"><em><a href="http://www.amazon.com/gp/product/0321437381?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321437381">Implementing Lean Software Development: From Concept to Cash (The Addison-Wesley Signature Series)</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0321437381" width="1" border="0"/><br /></em><em>Mary Poppendieck and Tom Poppendieck</em></td>
<td valign="top" width="87">&nbsp;</td>
</tr>
</tbody>
</table>
<h2></h2>
<h2>Essays</h2>
<table cellspacing="0" cellpadding="2" width="467" border="0">
<tbody>
<tr>
<td valign="top" width="379"><strong>Essay</strong></td>
<td valign="top" width="86"><strong>Have I Read?</strong></td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://norvig.com/21-days.html" target="_blank"></a><a href="http://norvig.com/21-days.html" target="_blank"><strong>Teach Yourself Programming in Ten Years</strong></a><br /><em>Peter Norvig</em></td>
<td valign="top" width="86">Y</td>
</tr>
<tr>
<td valign="top" width="379"><a href="http://www.fastcompany.com/magazine/06/writestuff.html" target="_blank">They Write the Right Stuff</a><br /><em>Charles Fishman</em></td>
<td valign="top" width="86">Y</td>
</tr>
<tr>
<td valign="top" width="379"><em><a href="http://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340.html" target="_blank"><strong>The Humble Programmer</strong></a><br /></em><em>Edsger Dikstra</em></td>
<td valign="top" width="86">Y</td>
</tr>
</tbody>
</table>
<h2>Management</h2>
<table cellspacing="0" cellpadding="2" width="469" border="0">
<tbody>
<tr>
<td valign="top" width="381"><strong>Book</strong></td>
<td valign="top" width="86"><strong>Have I Read?</strong></td>
</tr>
<tr>
<td valign="top" width="381"><a href="http://www.amazon.com/gp/product/0932633439?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0932633439"></a><a href="http://www.amazon.com/gp/product/0932633439?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0932633439">Peopleware: Productive Projects and Teams</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0932633439" width="1" border="0"/><br /><em>Tom DeMarco</em></td>
<td valign="top" width="86">Y</td>
</tr>
</tbody>
</table>
<h2></h2>
<h2>Windows</h2>
<table cellspacing="0" cellpadding="2" width="469" border="0">
<tbody>
<tr>
<td valign="top" width="381"><strong>Book</strong></td>
<td valign="top" width="86"><strong>Have I Read?</strong></td>
</tr>
<tr>
<td valign="top" width="381"><a href="http://www.amazon.com/gp/product/0735619174?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0735619174"></a><a href="http://www.amazon.com/gp/product/0735619174?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0735619174">Microsoft Windows Internals, Fourth Edition: Microsoft Windows Server(TM) 2003, Windows XP, and Windows 2000 (Pro-Developer)</a><br /><em>Mark Russinovich and David Solomon</em></td>
<td valign="top" width="86">Y</td>
</tr>
<tr>
<td valign="top" width="381"><a href="http://www.amazon.com/gp/product/157231995X?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=157231995X">Programming Windows, Fifth Edition</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=157231995X" width="1" border="0"/><br /><em>Charles Petzold</em></td>
<td valign="top" width="86">Y</td>
</tr>
<tr>
<td valign="top" width="381"><a href="http://www.amazon.com/gp/product/1572319968?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1572319968">Programming Applications for Microsoft Windows</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=1572319968" width="1" border="0"/><br /><em>Jeff Richter</em></td>
<td valign="top" width="86">Y</td>
</tr>
<tr>
<td valign="top" width="381"><a href="http://www.amazon.com/gp/product/1572316950?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1572316950">Programming Windows With MFC</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=1572316950" width="1" border="0"/><br /><em>Jeff Prosise</em></td>
<td valign="top" width="86">Y</td>
</tr>
</tbody>
</table>
<h2></h2>
<h2>.Net</h2>
<table cellspacing="0" cellpadding="2" width="469" border="0">
<tbody>
<tr>
<td valign="top" width="380"><strong>Book</strong></td>
<td valign="top" width="87"><strong>Have I Read?</strong></td>
</tr>
<tr>
<td valign="top" width="380"><a href="http://www.amazon.com/gp/product/0735616485?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0735616485"></a><a href="http://www.amazon.com/gp/product/0735616485?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0735616485">Inside C#, Second Edition</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0735616485" width="1" border="0"/><br />Tom Archer and Andrew Whitechapel</td>
<td valign="top" width="87">Y</td>
</tr>
<tr>
<td valign="top" width="380"><strong><a href="http://www.amazon.com/gp/product/0735621632?ie=UTF8&amp;tag=philosophic0d-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0735621632">CLR via C#, Second Edition (Pro Developer)</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=as2&amp;o=1&amp;a=0735621632" width="1" border="0"/><br /></strong><strong><em>Jeff Richter</em></strong></td>
<td valign="top" width="87">Y</td>
</tr>
</tbody>
</table>
<p><!--adsense#Referral--></p>
<p class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:ccc70091-2a46-4190-aab8-08e8055c6f05" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/books" rel="tag">books</a>, <a href="http://technorati.com/tags/software%20engineering" rel="tag">software engineering</a>, <a href="http://technorati.com/tags/self%20improvement" rel="tag">self improvement</a>, <a href="http://technorati.com/tags/developer%20education" rel="tag">developer education</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.philosophicalgeek.com/2007/11/21/books/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Farewell, Robert Jordan</title>
		<link>http://www.philosophicalgeek.com/2007/09/17/farewell-robert-jordan/</link>
		<comments>http://www.philosophicalgeek.com/2007/09/17/farewell-robert-jordan/#comments</comments>
		<pubDate>Mon, 17 Sep 2007 14:40:55 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[fantasy]]></category>

		<guid isPermaLink="false">http://www.philosophicalgeek.com/2007/09/17/farewell-robert-jordan/</guid>
		<description><![CDATA[According to his blog, Robert Jordan passed away yesterday. He fought a tough illness for quite a while. I became a big fan of The Wheel of Time a few years ago and forced myself to stop reading the books until the final one comes out. 
I loved the books because they were immense, detailed, [...]]]></description>
			<content:encoded><![CDATA[<p>According to <a href="http://www.dragonmount.com/RobertJordan/?p=90" target="_blank">his blog</a>, Robert Jordan passed away yesterday. He fought a tough illness for quite a while. I became a big fan of <a href="http://en.wikipedia.org/wiki/The_Wheel_of_Time" target="_blank">The Wheel of Time</a> a few years ago and forced myself to stop reading the books until the final one comes out. </p>
<p>I loved the books because they were immense, detailed, complex, and very engaging. He was in the middle of writing it, and he has left notes and given an oral narration of the end of the series, but it just won&#8217;t be the same.</p>
<div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:3d33cae9-2813-41d3-ac1e-1e407c6b2667" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/Robert%20Jordan" rel="tag">Robert Jordan</a>, <a href="http://technorati.com/tags/The%20Wheel%20of%20Time" rel="tag">The Wheel of Time</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.philosophicalgeek.com/2007/09/17/farewell-robert-jordan/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fahrenheit 451</title>
		<link>http://www.philosophicalgeek.com/2007/01/01/fahrenheit-451/</link>
		<comments>http://www.philosophicalgeek.com/2007/01/01/fahrenheit-451/#comments</comments>
		<pubDate>Mon, 01 Jan 2007 15:05:50 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[movies]]></category>

		<guid isPermaLink="false">http://www.philosophicalgeek.com/2007/01/01/fahrenheit-451/</guid>
		<description><![CDATA[I just read the book Fahrenheit 451 by Ray Bradbury. This is the first time I&#8217;ve read it, never having come across it in school, like most people seem to. To me, it was the greatest argument against getting a&#160;TV. My wife and I decided towards the beginning of our marriage to never subscribe to [...]]]></description>
			<content:encoded><![CDATA[<p>I just read the book <a href="http://www.amazon.com/gp/search?ie=UTF8&amp;keywords=fahrenheit%20451&amp;tag=philosophic0d-20&amp;index=books&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Fahrenheit 451</a><img height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=philosophic0d-20&amp;l=ur2&amp;o=1" width="1"/> by <a href="http://www.raybradbury.com/">Ray</a> <a href="http://en.wikipedia.org/wiki/Ray_Bradbury">Bradbury</a>. This is the first time I&#8217;ve read it, never having come across it in school, like most people seem to. To me, it was the greatest argument against getting a&nbsp;TV. My wife and I decided towards the beginning of our marriage to never subscribe to cable TV. My parents never did while I was growing up. We will probably get a TV at some point, but it won&#8217;t be hooked up to anything but a DVD player.</p>
<p>The theme of the book was not exactly what I expected: I had always heard it was about government censorship, and it is&#8211;sort of. The more important theme running through it is the danger of intellectual laziness. It portrayed a world where various minority groups demand that offensive books be banned, eventually leading to the solution of burning nearly all non-trivial books (operating manuals and such). </p>
<p>The point is that the problem started with the people, not the government. They demanded softer forms of entertainment: TV in it current form, comics, music. And all of those media were dumbed down to the point of banality as well.</p>
<p>Those media don&#8217;t HAVE to be so mindless, but in their present form they largely are. Books that challenge or expand our thinking are crucial parts of our society and personal development. This is something I&#8217;ve been taught since a very young age&#8211;and it&#8217;s why I&#8217;ve got about 2,000 books in my home right now, waiting to be read or re-read, and why I can&#8217;t resist buying a new book almost every month!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.philosophicalgeek.com/2007/01/01/fahrenheit-451/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Complete 2</title>
		<link>http://www.philosophicalgeek.com/2005/05/20/code-complete-2/</link>
		<comments>http://www.philosophicalgeek.com/2005/05/20/code-complete-2/#comments</comments>
		<pubDate>Fri, 20 May 2005 02:03:32 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.benwatson.org/?p=11</guid>
		<description><![CDATA[I finally bought myself a copy of Steve McConnell&#8217;s Code Complete, 2nd Edition. I&#8217;ve read about a third of it so far and love it. It&#8217;s by far the most practical and useful book on programming I have ever read.
But how to learn it all? Sure, an experience programmer will pick up many of these [...]]]></description>
			<content:encoded><![CDATA[<p>I finally bought myself a copy of Steve McConnell&#8217;s <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0735619670/002-6963847-2548062?v=glance">Code Complete, 2nd Edition</a>. I&#8217;ve read about a third of it so far and love it. It&#8217;s by far the most practical and useful book on programming I have ever read.</p>
<p>But how to learn it all? Sure, an experience programmer will pick up many of these ideas over time, but how can I start implementing ALL of them?</p>
<p>I think my plan is to read it through once, and then while I sit at my desk at work (or home), leave it open to a random page so I can think about the displayed topic.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.philosophicalgeek.com/2005/05/20/code-complete-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
