Here's a way to view and search all the books I own
(that google's database knew about).
My favorite fantasy series is George R. R. Martin's "Song of Fire and
Ice". That consists of A Game of Thrones, A Clash of
Kings, A Storm of Swords and the forthcoming A Feast
for Crows. Don't spend your time on Jordan -- at least give
Martin a try first.
I think Terry Brooks second book, The Elfstones of Shannara, is
his best work. I also enjoy Robin Hobb's stuff and some of the more
recent David Gemmell novels. Deborah Chester's series that starts
with The Ring is quite good too.
I recently read Neal Stephenson's
Cryptonomicon and really liked it. I also read Diamond
Age which was not as good but was still enjoyable. I liked
Ender's Game by Orson Scott Card
but I didn't really like anything else I've ever read by him. The
parallel novel about Bean, Ender's Shadow is ok.
A friend of mine recommended Life of Pi. I was a little
dubious after reading the jacket summary but I bought it and read it
anyway. It's a great story... a book that can be read on a lot of
different levels with a lot of symbolism. But at the same time an
interesting story... and a story that your mind keeps revisiting once
you've finished it.
I read The Curious Incident of the Dog in the Night-Time
and enjoyed it.
I recently read Dan Brown's The DaVinci Code and thought it
was entertaining and had an interesting premise. I also read
Angels and Demons by the same author. It's even better than
DaVinci. I have read two other books by Brown though
(Deception Point and something about the NSA and didn't like
either one of them).
I did like The Sun, the Moon and the Stars by Steven Brust.
A friend of mine told me to read
A Prayer for Owen Meanie by John Irving which I really
enjoyed. From there I read a couple of other Irving books and have
enjoyed them all. I liked Ken Follet's
The Pillars of the Earth.
One of my hobbies is working on a chess playing computer program. The
problem is that I am a pretty lousy chess player... so to write the
parts of the engine that require chess skill (in addition to just
programming skill) I've resorted to reading books. These are the
best ones I've found:
Power in Chess by GM Hans Kmoch is the basis of a lot of my
pawn evaluator code. How
to Reassess Your Chess by IM Jeremy Silman is another good
book for writing chess evaluation code.
Books about the world in which we live.
Fog Facts: Searching for Truth in the Land of Spin by
Larry Beinhart. And The Best Democracy Money Can Buy by
Greg Palast. Similar books in some ways -- they deal with, among
other things, why some news stories are "Big News" and others
are buried in the back of the paper. How much do you trust your
news source? How much should you? Even when most mainstream news
outlets report a contraversial story they usually end up bogging
it down with so much spin that is it difficult to get a true picture
of what happened. If journalists had more integrity and courage
than it would have been much harder for George Bush to steal the
Beyond Fear: Thinking Sensibly About Security in an Uncertain
World by Bruce Schneier. Schneier is a computer security
consultant and expert. Another book by him, Applied
Cryptography is the classis reference on the subject. In
Beyond Fear... Schneier applies his extensive knowledge about
security in the incorporeal world of computers to the physical
world. He makes several profound observations about security
procedures and what is being done in the United States post 9/11.
War Is a Force That Gives Us Meaning by Chris Hedges. This
is a very thought-provoking book written by a war correspondent about
the affects of war on human beings and his observations about the
psyche of war. In many ways its a sad and unsettling book, full of
first hand accounts of what happens in a country at war and deep
insight into the mankind's depravity. At the same
time it's an insightful book that will definitely provoke thought.
There are also some inspirational first hand accounts of people's
self-sacrifice, courage and resolve. Highly recommended.
Gödel, Escher, Bach: an Eternal Golden Braid and
I Am A Strange Loop both by Douglas Hofstadter. Both are
books that touch on so many different topics that they are hard
to categorize into one genre of non fiction. Each is about the
human mind, philosophy, artificial intelligence, mathematics,
logic, formal languages, and thought... among other things. Very
interesting stuff. GEB is harder to read while I Am
A Strange Loop is more readily accessible. Both are great.
These are some technical books that I have found to be well written,
informative and generally useful. If you are interested in their
subject matter, I highly recommend them.
First, general programming books. My first job out of college was
at Microsoft. At the time I thought that I knew quite a lot about
writing good code. A hell of a lot more than the
hacks writing crash-prone Win9x or Office, I was certain. The first
book that my new boss gave me to read, years ago, was Writing
Solid Code by Steve Maguire. I can honestly say this book
changed the way I code and is partly responsible for me becoming a
more mature, professional software developer. I can highly recommend
this book to anyone.
When I moved to the Windows Kernel group I wanted to come up to speed
on the kernel quickly without reading the entire codebase. So I read
Inside Windows NT which has been revised and improved in
Inside Windows 2000, 3rd Edition by Solomon and
Russinovich. There's simply no better guide to the inner workings of
the NT kernel without access to the source code. I also highly
recommend Undocumented Windows NT by Dabak, Phadke and Borate.
Undocumented Windows 2000 Secrets by Sven B. Schretber is good
as is Windows NT Native API Reference by Gary Nebbett.
Some recommended books for x86 assembly language and machine
architecture are Assembly Language Step-by-Step by Duntemann,
The Undocumented PC, 2nd Edition by Frank van Gilluwe.
The guys at Mindshare (Tom Shanley) publish a great series on the x86
architecture. Specifically I have read and can recommend ISA
System Architecture, 3rd Edition and Protected Mode
Software Architecture. The latter is much clearer and more
readable than the relevant Intel manuals.
A lot of people have asked me what books I read to learn about
computer chess programming. Well there are very few books out there
on computer chess and even fewer good ones. All the Right Moves:
A VLSI Architecture for Chess by Carl Ebeling is good but more
geared towards hardware. Ernst Heinz's
Scalable Search in Computer Chess excellent but much of the
book's material can be found on his website.
The best sources of computer chess information for the
prospective programmer around are the Computer Chess Club and the
Some other excellent miscellaneous technical books: Bruce Schneier's