Oct
09
2008
Recommended reading autumn 2008
Posted by admin under
Other

I rarely directly promote/recommend any products/books etc on this website. Simply because when it comes to asp.net/.net developer books for example, I just can't recommend any...I mean recommend. Sure I could list a dozen books or so probably the majority of programmers would be happy with. But personal recommendation from me
would have to mean I have actually bought/read and enjoyed it. And still am enjoying/using it.
Thing is, I just need the fingers on one hand to count the number of such books from the last 8 years or so...Generally speaking, when it comes to books in the programming genre, there is a gap for the little more advanced developers. Lots of beginner books/guides, not much for advanced techniques. Nothing wrong with that, I mean the beginner market is so
much bigger of course...
Anyway, this summer I didn't just relax and swim with my kids, some consulting contracts forced me to work a bit almost every day. And I also got this idea about really getting into LINQ. Now I was more of a beginner I guess, and also considering the time of year - I
felt a *real* book would be nice for a change. Being able to read a few chapters on the beach.
So: Book tip no 1
Pro LINQ Language Integrated Query in C# 2008.

APress. Joseph C. Rattz, Jr.
Besides explaining all LINQ variants (LINQ to Objects,LINQ to XML, LINQ to DataSet, LINQ to SQL) the first chapters really nicely explains the background and inner workings. had looked at some LINQ examples in magazines etc, and thought I already "knew" it (kind of "I've been programming for over 15 years, how hard and different can it be?"). Well, turned out it is kind of hard. And it is really different.
For example: one of the key concepts I learned in these chapters was deferred queries.
I mean an example like this, or should I say, the RESULT of an example like this explains a lot
List<string> Phrases = new List<string>();
Phrases.Add("hello");
Phrases.Add("good evening");
Phrases.Add("good morning");
IEnumerable<string> politephrases = Phrases.Where(s => s.Contains("good"));
Phrases.Add("good afternoon");
foreach (string s in politephrases)
Console.WriteLine(s);
I certainly looks like the result will be
good evening
good morning
But it is
good evening
good morning
good afternoon
Cause the "IEnumerable<string> politephrases=" stuff is simply a query DEFINITION, and it's executed in the foreach call.
I was glad to find out that buying that book did learn me something :) These first chapters are the only thing I have read, will read (I will never go into LINQ to sql etc) but still the book is highly recommended if you are starting out/trying to understand on LINQ.
Now my tip no 2:
Was on a business trip the other day. Had to wait a few hours on the airport. Went to the magazine shop. Bought Code Magazine, Sept/Oct 2008.
There is an article there, From delegate to Lambda, by
Mark Blomsma, http://www.develop-one.com. That is one of the best articles I ever read, all categories. He is definetely a coder, and with a fantastic gift of talking to other coders.
I mean, the article steps you through the code necessery to write your own mini-LINQ (believe me its not that hard!!). Thats the kind of article an developer needs to *understand* how LINQ works.
So the article deals is about lambda expressions, i.e the s => s.Contains("good") part. Which in short is just syntactic sugar, a easy to type way of defining a delegate.
Anyway, make sure you read that article!
And now on to my last tip, before I close this book shop. Not sure if any of you took me on the words about doing some plain C++ coding again ?
If so, the book I have beside me all day now:
C++ How to Program
P.J Deitel, H.M Deitel
Prentice Hall

Recommended. Cause it doesn't only talk about C++ standard in the academical way, but also some "real life" C++, which typically would include libraries such as boost.
-