Archive for O’Reilly

Book Review: Programming C# 5.0

catI recently read Programming C# 5.0 by Ian Griffiths as part of O’Reilly’s Blogger Review program. For those who care about formats, I read the epub format and not the print one. Overall the book isn’t bad, but there are some issues that left me less than impressed. My primary issue with the book is that it isn’t clear who it is intended for. Certainly, targeting a generic C# book is going to be hard given the wide variety of areas C# is used in (Azure, XNA / MonoGame, WinRT, etc) and it seemed like there was a need for the book to be a little more specific in terms of domain.

There also are some issues in terms of the skill (or rather experience) level of the book’s target audience. It starts by explaining the history of C# and .Net and in particular how it related to Microsoft’s Java strategy — in that C# was their answer to Java. All of that is very interesting and probably something that a C# developer should know. However, things quickly fall of the rails when the author explains what ints and other basic types are. This trend continues for about four chapters but then the book quickly moves on to more advanced and more interesting topics.

Despite this odd and somewhat jarring inability to figure out who this book is for and what the scope of the text should be there is a good deal of value to get out of the text. For instance, the text teaches not just programming in C# but how to program in idiomatic C# and to a lesser degree how to follow the accepted, though admittedly somewhat informal and subject to personal tastes, conventions established by Microsoft and the .Net community.

Overall, I would recommend this book to someone in school or who is new to programming and suggest that person read it straight through. For more advanced users or users who have a few years of development experience in another language, I’d still suggest picking this book up but skipping to about chapter four or five.


Book Review: Think Like a Programmer

I’ve been busy recently and haven’t had a whole lot of team to read any new technical books and was in the middle of reading  Think Like a Programmer by O’reilly media for their blogger review program. I regret to say that this is the first and only truly disappointing text I’ve read in all of my years of reading O’reilly books.

To be fair, the book is aimed a Computer Science and Software Engineering students and I am neither of those things; I’m at the point where I knew most of the overarching concepts in the book and the ones I didn’t proved to be little more than the type of trivia that “engineers” feel separates them from the unwashed masses — ie the rest of us. In all fairness, V. Anton Spraul is very knowledgeable and that comes through clearly throughout the book.

The bottom line, is that I would recommend this book strongly to any first year technical students or others who have little to no real development experience but would recommend that if you’ve shipped at least on substantial project that you skip this one.

Review: Mastering Grails 101

I like Ruby and have a soft spot for Java and all things Java, since it was my favorite programming language before I started my professional career and the language that got me my first coding gig. So you’d think that I’d love Grails, a platform that aims to be the best of both worlds. You’d be wrong. However, O’reilly’s tutorial on Grails is pretty good. However, I am not sure that I would recommend it for anyone but a professional developer, as the presenters do seem to assume that the viewer has some professional (mostly Java) experience.

Like all O’reilly videos the production qualities were superb; the video and audio were both crystal clear and I had no problem viewing the code samples on screen. The presenters were very knowledgeable and took time to walk you through some of the more confusing aspects of Grails. The content was  introductory enough that most developers who have had a little Java  experience (in a professional environment of course) would be able to grasp most, if not all, of the concepts and examples laid out by the presenters.

Of course, nothing is perfect. The short length of the individual videos is downright annoying. Some of them are as shorts as three minutes long and you have to manually click to load up the next video in the web player. There is no reason for this. Oreilly of all organizations should be able to either cut multiple chapters into longer videos or enable autoplay on their player. Still, it is hard to fault the presenters for the presentations platform’s failings.

Overall, I would recommend this series to any Java developer that is thinking of taking a step or sto toward the Ruby on Rails side of life or to anyone who has heard of Grails and is curious as to what the hype is about. This series is not appropriate for students or hobbyists.

Review: Revolution in the Valley

Revolution in the Valley is the story of that first Apple development team that brought the world the Macintosh and in doing so changed computing history by making the computer a personal item focused on communication rather than computation.

Popular mythology portrays the development of the original Macintosh as a somewhat religious experience. In fact, that was not really the case. As with any large scale project there are problem, conflicts, and unforeseen bugs that raise both costs and tempers. Revolution in the Valley gives the reader what a more accurate account of the not only the development culture at Apple during its early days but also how large scale projects work in the really world when real people who don’t necessarily agree on the best ways to implement feature X.

As this is not a technical training or reference, there are really no prerequisites to reading but that does not mean that more experienced developers or even designers won’t get a lot out of the book; in fact, I always find it interesting to see how those early developers of the personal computer 1980’s  solved  complex technical issues with such limited hardware and software resources; after all there was no Github or BitBucket when the Macintosh was being developed.

In short, I would recommend this to anyone who works on or will be working on larger scale software projects.

For all the Apple haters, I know that my posts have been pretty Apple-centric for the last month or so, but I do have some interesting Android and other posts plans.

I.M. Wright’s Hard Code Review

Eric Bechner’s I. M Wright’s “Hard Code:” A Decade of Hard Learned Lessons from Microsft is one of the three books that I read over my vacation. In the interest of full discloser this review is written for O’Reilly’s Blogger Review program and this is a only a striaght review of the text; I will be looking at some of the ideas in the book in greater detail in later posts.


Overall the book is great and is applicable to pretty much any software developer of any level and I especially feel that the book should be read by students who are interested in working in a large software development firm or the IT department of a large corporation.


However, readers of the text should approach it with the understanding that they are not reading this text to learn how to develop software, but rather to learn how to navigate in the software development industry; i.e. you will not read anything about the intricasies of .NET, C#, or C++ in this book, but you will learn how to effectively interface with managers and co-workers.


There are parts of the book of course that are very particular to Microsoft, but these sections are few and far between and still provide an interesting read and many of the lessons from the Redmond specific chapters can be applied to many other large organizations. This is a must read for anyone interested in advancing their software development career in a corporate environment or if you are just interested in seeing how software development works in large companies.