Amazon.com Customer Reviews
Delivers as Promised - Review written on September 18, 2008
Rating: 5 out of 5
4 customers found this review helpful.
Background:
After getting a degree in engineering and landing a job finance, I was tasked with writing an extensive analysis program in C#. Eventually I hobbled through the first draft and many many updates using dry, technical reference books and online searches. Recently, I decided to increase the breadth of knowledge to take on other programming projects of my own choosing.
Approach:
Head First C# matched up perefctly with my expectations. The book does not assume much prior knowledge, so someone, like me, with no background in computer science can work through it without much (if any) additional reference. However, unlike other (frustrating) programming books for beginners, it goes right into practical applications, setting itself apart. Despite not neccessarily going from simple to complex in subject matter, each chapter does build nicely on those before it. I would easily recommend this as a primer to C#, or for those like me, who need to expand their practical knowledge.
Style:
In the introduction, the book explains how its style is meant to capture and hold your attention so you actually absorb the material. I appreciated the informal writing style and creative use of fonts, but the gems here are the sections where you are given basic program outlines, some code fragments and asked to complete the program (with a healthy degree of freedom). Some reviewers complain about the amount of errors in the book. Maybe I'm not as attentive to detail, but while you will find some errors, none of them interfered with my progression through the book.
Content:
In addition to this book, you will probably want a reference book or two. Of course, it would take at least a couple dozen books to cover EVERYTHING you can do in C#. Now that I've read this book, though, I at least have a good idea what other books would be useful for me. With some of what I learned from Head First C#, I've created video games, card games and database applications. The variety of topics covered and demonstration of their application makes this a valuable read.
*Learn* C# - Review written on July 12, 2008
Rating: 5 out of 5
16 customers found this review helpful, 1 did not.
Head First C# was my first experience with the Head First series, although I have since also purchased the excellent Head First Design Patterns (Head First).
This book is designed to teach you C# from the beginning. Technical books can generally be categorized as either tutorials or reference texts -- and this is absolutely in the tutorial category. It's intended to be read and worked through in order, from start to finish. If you already know C# and are looking for a reference text, look elsewhere. If you're an experienced C++ programmer looking to learn C# but are already very familiar with object oriented programming, consider checking out the excellent and concise Accelerated C# 2008 (Accelerated). If you're an experienced C# programmer and just want to learn the advanced features of C#2 and C#3, you'll again want to look elsewhere, and you couldn't do better than C# in Depth: What you need to master C# 2 and 3.
But if you want to *learn* C# and object-oriented programming, and especially if you have little or no prior programming experience, look no further than this fantastic book. If you're reading reviews of the book, then you probably know two things: it has an unusual style and some quirky humor, and it has a bit more than it's fair share of errors. These two things are true, but there's a lot more about the book that you should know, and that's mostly what I want to talk about in this review. Before I move on, though, let me say two things. First, the conversational style and the humor are sometimes overstated -- this is a book about programming, and it's not a joke a minute or anything. I know that you can't Search Inside here on Amazon to see what the book is like, which I assume is because of the visuals-heavy design and unusual layout of the text, but just do a quick search for the book's website and you can download a full sample chapter and some other excerpts. Judge for yourself before dismissing an excellent book based on its unusual (but effective!) design. Second, the errata *are* extensive, but they don't get in the way of your learning. This book shines for its well-chosen examples, its focus on your learning (you'll be talked to rather than at), and its great overall structure -- and none of the errata interfere with any of that at all. If the extensive errata lists do bother you, I wrote a small free program that can sort through them for you and filter out the types of errors or page ranges you're not interested in. (You can find the link stickied at the web forum for Head First C#.)
There are also some features of the book that I don't see mentioned often enough, and which I want to comment on briefly before getting to the heart of the review. First, I love that the introduction is actually useful, giving you valuable insights on why the authors made the design choices they did (why text is in the pictures, rather than beneath them as captions, for example), and offering advice on how best to approach the book if you want to maximize your learning experience. I highly recommend reading it. Second, it's worth mentioning the way that the book uses the (free) Visual Studio 2008 IDE to make graphical Windows applications throughout, rather than focusing on a text editor and console applications like many other introductory texts. Visual Studio is a powerful IDE, and it *helps* you learn with syntax highlighting and Intellisense -- I'm very glad that the Head First C# authors chose to incorporate its use into the book, because it often allowed me to focus on concepts at first rather than syntax, picking that up gradually through repeated use with the IDE's guidance. Third, you'll be making some genuinely impressive software over the course of the book -- between the use of Visual Studio and the authors' being unafraid to assign projects that take several pages just to *describe*, you'll get a much better feel for what it's like to make real software than you would from the small "toy" examples that are more common in many other introductory books. (But don't worry, there's plenty of guidance, including fully annotated solution code for most of them, and a helpful web forum if you get stuck.) Finally, the book has the advantage of going to print for the first time after C# 3.0 and .NET 3.5 were released, and it fluently combines the various iterations of the language, teaching C# *as it now exists* from the ground up in an order that makes sense for someone learning now from scratch, rather than taking the more common but less sensible route of introducing C#1.0 features before C#2 before C#3. This is great, because it allows the authors to introduce some of the powerful and convenient features of the newer editions of the language and framework -- the stuff that really makes C# appealing as a language -- quite early in the book.
The funny thing about Head First C# is that the conversational tone, the humor, the quirky layout, and the pictures make the book seem completely un-academic. At first glance, it's as far from an academic textbook as you could possibly get! But I've come to realize that reading through the book from the beginning, doing all the exercises, is as close to the structured learning experience of an academic course as you can get in book form. The brilliance of Head First C# isn't in the phrasing of any given sentence or the coding style in a particular snippet -- it's in the overall structure of the book and especially in the examples chosen for exercises, which allow you to build up your knowledge incrementally while still reviewing past material. (Which is why the errata really aren't a big deal.) I've seen some reviews point out the book's "redundancy" as a flaw, and I just shake my head. The book is often repetitious, but never redundant, and always deliberately -- seeing the same material repeatedly from different perspectives and at different times is absolutely key to learning anything, and the repetition is one of the best features of the Head First series in general and this book in particular.
So there are errors. So there's a bit of fuzziness in the phrasing sometimes. So it doesn't cover Advanced Language Topic A or B. So what? This book is a teaching tool. It's a full course -- instructor, fellow students, textbook, homework, projects, review sessions, and conversations with peers -- stuffed onto paper, rolled up, printed, and stuck between covers.
I've learned C#, and I've *retained* what I've learned. I've had fun doing it. And if you too want to learn C# and programming, I can't recommend Head First C# highly enough.
Be Careful: The Head First approach fits you or not - Review written on May 29, 2008
Rating: 1 out of 5
5 customers found this review helpful, 2 did not.
Just browsed through this book, so I cannot tell anything about the C# content, but I definitely decided not to buy it. This is why:
I like it when programming books are theoretical, not too dry, and help me to gain a good perspective/knowledge of the language. My top favorite example of a good programming book is: The Ruby Programming Language. A extremely refreshing, well written, well designed, sound book.
Head First is conceptually a total difference.
You like it:
The method uses a extremely playful way of teaching. The layout is very playful, with lot's of funny fonts and funny pictures. There is really a lot to see and to experience. Learning has never been so much fun. Finally a book that really helps you to learn, instead of being so dull and dry, like all those other programming books.
You don't:
I would say: there are a lot of irrelevant nonsense pictures, the layout is extremely inconsistent, messy, distracting. All kind of texts with random font-sizes scream to you for attention, like a horde of hyperactive children. Only looking at the pages makes you tired. There is no way you can easily get information out of this book. Trying to read it makes you decide to throw it away immediately.
The other reviews show that there are a lot of people who like this approach, something I cannot fathom. But that's life I guess, everybody is different. everybody learns different.
Conclusion:
The head first approach fits you or not. You hate it, or you'll love it.
Personally, I hate it. It doesn't fit my learning-style. Maybe it does fit yours.
Book badly needs an editor - Review written on April 07, 2008
Rating: 3 out of 5
39 customers found this review helpful, 5 did not.
As an experienced programmer, I've found this book to be very good at getting me "up and running" and writing my own C# code (I'm about 1/3 of the way through).
However, the book is clearly intended to be appropriate for less experienced programmers as well, and I think it would be very confusing for someone who didn't already have a fair amount of programming experience.
Specifically there are a lot of typos and errors in this book which would, I think, make it very difficult for a beginner to know whether they're doing the right thing or not. In a lot of cases, I find it difficult to tell what I'm supposed to be doing in a given case because, for example, I'll be told to create a particular field or method for an object, and then I won't be told (directly or indirectly) what I'm supposed to use it for. Then, in the exercise "solution", I will see what the field is used for, but that functional requirement was never stated as part of the exercise description.
Sometimes the reader will be told to create a particular field or method as "private" and then, two pages later, the solution will show it as a "public" field. As an experienced programmer, I can usually guess that the book has made an error in a case like this, but I could easily see a beginner wasting a lot of time due to errors like this in the book.
Here are the specific errors I've found just today:
Page 265:
The "Sharpen Your Pencil" exercise shows a line that states:
Bees[6] = Bees[2];
But the solution shows it as
Bees[6] = Bees[0];
Which makes it impossible for the reader to come up with the correct solution.
Page 271:
The user is instructed to create a method called "ScareLittleChildren()" but is not told what it is supposed to do or when to invoke it. The user is also told to have the "Honk()" method pop up a message box that says "Boo! Gotcha!"
On the following page, the solution has the "Boo! Gotcha" functionality moved to the "ScareLittleChildren()" method.
Page 292:
The user is told that the "diningRoom" object needs to implement the "IHasExteriorDoor" interface, when the previous page explicitly stated that the locations with exterior doors are the front yard, the back yard, the living room and the kitchen.
The user is also never told what to do differently with the Locations that have exterior doors (in terms of implementing the form that drives this exercise). Locations can have "exits" and "doors", but we are never explicitly told whether "doors" are considered "exits"; most people would consider those words synonyms in common usage, but it's only by close examination of the data diagram and sample code that the user can guess that it's probable that the two terms should be considered mutually exclusive.
Page 295:
The exercise solution shows an override method for OutsideWithDoor.Description but not for RoomWithDoor.Description.
These are just the errors that I've found today. I noticed a bunch the day before yesterday, too, when I was working through an earlier section of the book. As I said, I would think that such frequent errors would make the book very confusing for a beginner. It's too bad, since I remember a time (the mid-90s) when O'Reilly books were known for their extremely thorough attention to detail. Pity that no longer appears to be the case.
Massive clutter makes this style very difficult - Review written on March 18, 2008
Rating: 2 out of 5
23 customers found this review helpful, 5 did not.
OK, first of all, I'm not a tech book snob. I buy Dummies books and have been happy with them (if a little guilty) as introductory texts. I think we all have experienced the numbing quality of a certain kind of technical writing, and I'm always on the lookout for books that are written with the same enthusiasm I feel for a topic, and that are written to be understood by regular people. Like me.
So, I was quite interested in this book based on its description; it really sounded like they had worked hard to make this series accessible. (And I'm sure they did work really hard at it!) But I have to say I think the result is terrible. I tried a number of times to get into it, thinking perhaps I just needed to acclimate myself to the style and I'd start to appreciate it. But I've had to face the fact that I simply think it's a bad book.
Essentially, I think they've gone way overboard with the informal concept. The pages are so cluttered with doodles and pictures and snippets of text and faux-handwriting and arrows that it's just plain hard to follow the conceptual thread of the instruction. The information is so fragmented that there is no coherence, no flow, and and it's nearly impossible to get a complete grasp of the concepts they're trying to get across in the lessons. The reader has to work extra hard just trying to figure out what the heck they're trying to teach him, because they spend so much effort trying to disguise the information by burying it in "interesting" formatting like crossword puzzles and games and all sorts of other foofaraw. Foofaraw, I say!
The introduction says this is how our brains learn best, but I shudder to think what it says about us if that's true. Truly, when working through this book I felt like I was being treated like a child who is incapable of serious thought and who needed to be infotained into learning something. This really does seem like a book that's intended to maintain the attention of ADHD children by any means necessary.
I love O'Reilly and I appreciate what they're trying to do with this series, and I almost feel bad criticizing their efforts. It seems I'm in the vast minority here, too, since this book gets raves... but I feel like I'm pointing out that the emperor has no clothes. I'm continuing my search for a well-written C# book that is accessible and explains things to me like an intelligent adult, and actually helps me learn programming concepts.
A last note: although O'Reilly doesn't seem to support the "Search Inside This Book" feature at Amazon, you can go to their website and look at a sample chapter from this book. They have the entire Chapter 5 in PDF form, and it's a good example of what the book is like. I highly recommend you go look at it before purchasing this book. You can decide for yourself whether you like it or not!