Skip to main content.

Sunday, July 17, 2005

Ever since I completed college a couple of years ago, I've started reading more and more computer books. The first ones were gifts by Nucleus donators, but later on I also started buying my own. I've found these books to be a great way to learn about new areas of programming. They also greatly improved my passive knowledge.

In this article, I've compiled a list of highlights in my current, past and future reading.

Current Reading

I'm currently in the middle of reading two books:

  • Advanced .NET Remoting (Second Edition) - Ingo Rammer & Mario Szpuszta
    Advanced .NET Remoting

    The quote on the cover hits the nail on the spot: "If you use .NET Remoting, then you no doubt know the name Ingo Rammer". It's true: whenever you're searching Google for remoting topics, you'll end up reading Ingo Rammers articles and FAQs about it.

    Prior to starting to read this book, I had already been working on a .NET Remoting based project for a couple of months, so I'm reading the book mostly to fill the missing gaps and to provide new insights and words of caution. I'm currently reading the more advanced topics on (custom) message sinks and transport channels..

    Though the contents of this book is very good, I'm quite irritated by the lack of editing: besides the dozens of typos that could have been easily solved using a spellchecker, the autors moved some content around between the first and second edition of the book, without checking if everything was still consistent.

    Another issue in my eyes is that Ingo uses a helper class (RemotingHelper) which makes it possible to specify the URL for a server activated object in the client-side config file instead of in the code itself. While I have nothing against that, it makes it very confusing for someone just opening the book at a certain example instead of reading from front to back cover. It will make him believe that an url attribute can be specified in the client-side config for an SAO, which is totally untrue. If I were the author, I would have tried keeping the examples as hackless as possible.

    Nevertheless, a good read!

  • Eric & Elisabeth Freeman - Head First Design Patterns
    Head First Design Patterns

    You're probably all familiar with the sofware engineering classic Design Patterns book by the Gang of Four (GoF). It was used in one of the courses during my years at university. I've always felt the need to re-read the book ever since to see if I would be able to understand the patterns better now, but never got around to it. The text was just too boring and abstract to read casually.

    In comes Head First Design Patterns. It teaches the desing patterns in a totally different fashion, using lots of pictures, drawings, arrows, fun writing... You might want to look at a sample chapter to get a better idea on how the Head First approach works.

    The text is over-redundant at times, but the approach definately works: currently having worked through the first few chapters, I understand the strategy, observer and decorator patterns better than ever before. I also finally understand how the factory method design pattern differs from the abstract factory pattern, and how the "factory pattern" as I knew it previously is actually not a pattern at all.

Recent reading

Some books I've recently (or not so recently, whatever) read and really liked:

  • Pragmatic Unit Testing in C# with NUnit - Andrew Hunt & David Thomas
    Pragmatic Unit Testing (in C# with NUnit)

    For some reason, I only first encountered unit testing in early 2005. "Unit testing" consists of writing write little code pieces that each test a very small, limited area of your code, usually a method. Through these tests, a developer can prove that its code works in the intended way. By continuously running these tests (as part of the build process, or scheduled at regular intervals), you'll easily find out which methods broke after changing some code. Writing unit test also forces you to create a better design.

    This book is a really nice one. It's only about 150 pages and covers all of the aspects involved in writing unit tests: what they are, why to use them, how you write them for NUnit, properties of good tests, gotchas, ... You'll also read about mock objects, which are some sort of stand-in dummy objects taking the place of real objects.

    For an introduction on unit testing with NUnit, see CodeProject - Test-Driven Development in .NET. For an article about unit-testing in PHP, see TeRanEX: UnitTesting PHP

  • Andrew Troelsen - COM and .NET Interoperability
    .NET and COM Interoperability

    I got this book from the free eBook downloads at Apress. If I had known the contents would be that interesting, I would probably have bought the book itself.

    Instead of diving into COM to/from .NET interop immediately, the first half of the book (over 300 pages) provides an extensive introduction: DLL exports, COM server basics, a COM server in raw C++, COM servers made easy by ATL and VB 6.0, .NET types & objects, COM Type information, .NET Type information, ... All of these the building blocks needed to fully understand COM and .NET interoperability are explained through examples.

    While reading the introduction already provided a lot of juice, the real chapters added even more. For each interop direction (COM to .NET or .NET to COM), there are 3 chapters: Basic, Intermediate and Advanced topics. Once again, these cover about anything you'll ever run across. The book ends with a chapter about Enterprise Services (formerly known as COM+ or MTS).

    700+ pages of pure reading pleasure. If you're into this kind of thing, naturally ;-)

  • Jeffrey Richter - Applied Microsoft .NET Framework Programming
    Applied .NET Framework Programming

    This was the first "decent" book I got to read on the .NET Framework. I had read a C# book before, but besides learning the syntax of a new language I didn't learn much from there. Applied Microsoft .NET Framework Programming is different. It doesn't teach you any C# syntax. Instead, it focuses on the .NET framework in general. What it is, how it works, etc. It covers things like the Framework Class Library (FCL), Common Type System (CTS), Common Language Specification (CLS), Common Language Runtime (CLR), Intermediate Language (IL), Code signing and versioning, boxing, string interning, reflection, ... It even has some chapters on garbage collection fundamentals (mark and compact) and application domains.

    Other parts of the book cover fundamental types. I've consulted this book multiple times while implementing the Equals method or ICloneable on custom types.

    A must read for anyone that wants a deeper understanding than "This code sort of works, but I don't know why".

  • Eric Meyer - More Eric Meyer on CSS
    More Eric Meyer on CSS

    Eric Meyer is one of the major public CSS gurus. The More Eric Meyer on CSS book is not a CSS course in itself. To the contrary: it even assumes you already know CSS quite well. The book works through 10 real-life CSS projects in a hands-on fashion. Step-by-step, a raw HTML page gets styled. For each change, Eric Meyer explains how and why, occasionally bumping into browser-related issues.

    After reading this book, I ended up experimenting with styline a list: CSS timeline. Since that time, I haven't been doing much CSS work, so I think I've probably forgotten most of what I had learned already :(

  • Steve Krug - Don't make me think
    Don't Make me Think

    This is a cute and thin book on web usability. Unlike other books, it's far from dull. No HTML code samples or long paragraphs of text. Instead, simple observations and common sense solutions are presented, with lots of pictures to assist the text.

    Btw, there's a Second Edition of the book to be released in august 2005.

Future Reading

I have a couple of books lying around that I still need to read. They're listed below (books most likely to being read first are on top):

  • Joe Clark - Building Accessible Websites
    Designing Accessible Websites

    I picked up this book earlier this year at the Boekenfestijn, a cheap book event. It had been on and of my wishlist before that. It's about building accessible websites, but you should've guessed that already. When I'm in a good mood, I care about this whole accessibility thing. However, since I'm writing more code and less webpages nowadays, XHTML and CSS knowledge is slowly fading away :(

  • Serge Lidin - Inside Microsoft .NET IL Assembler

    Another book I picked up at the Boekenfestijn. It's about the deep internals of the .NET Framework: Intermediate Language (IL). Knowing about how this work is generally not necessary, but I like to read about these things.

More future reading

When I'm coming across books that look interesting, I'm usually dropping them into my Amazon.co.uk wishlist. Current topics include pragmatic programming, PHP5, refactoring and security.

Consolation Prize

To be complete: some more books I've read, but wouldn't really recommend:

Comments

(If you haven't already it) i will recommend the RoR book. (http://www.pragmaticprogram...)

Posted by anand at Sunday, July 17, 2005 15:13:33

Thanks for the hint, Anand. I have no knowledge of Ruby or Rails yet, but I'll work on that.

Posted by karma at Sunday, July 17, 2005 15:40:33

Add Comment

This item is closed, it's not possible to add new comments to it or to vote on it