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
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 anurlattribute 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
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
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
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
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
Equalsmethod orICloneableon 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
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
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
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:
- Eric Gunnerson - A Programmer's Introduction to C#
(first edition)
- Matthew Telles - C# Black Book
(dutch version: "C# Grand Gru")
- Jakob Nielsen - Designing Web Usability
- Douglas J. Reilly - Designing Microsoft(r) ASP.NET Applications
- Rebecca M. Riordan - Microsoft ADO.NET Step by Step
(dutch version)
- Thomas Erl - Service-Oriented Architecture (A Field Guide to Intergrating XML and Web Services)
Posted by karma at 13:30:43. Filed under: Other Programming








Comments
Add Comment