View Review Details


Book:   Head First C#
Subject:   Awesome book
Date:   2009-04-24 18:25:15
From:   LiveOkinawa
Response to: Waste Of Money

Rating:  StarStarStarStarStar

Unlike the individual who commented on the book being a "waste of money", i thought this book was very good for a person who wants to start learning C#. The person mentioned above (who's comment was titled "Waste of money") is either illiterate, needs glass, or has the IQ of a frog.


The book does what most other books don't.


It starts you off by telling you what to do to create a rolodex/phone book/contacts list type program. It explains a little bit of what's going on, but nothing in depth. The point of the exercise is to get the reader into the "meat" of programming, without having to read 300 or more pages on Variables, Loops, Conditionals, Objects, Methods, Functions, etc.


However, after that first chapter, you start down with the basics. What you learn there you can use to modify any of the projects that you've done in the entire book to make them better (i did, and i had never used C# in my life...i'm a Coldfusion developer for the web!).


The following chapters usually present you with a "we want you to create this..." problem, and it tells you what it wants each part of the program to do (this button should do this, this image should do this, etc). However, it tells you what it wants YOU to do...it doesn't tell you how to do all of it. That is taken from knowledge from previous chapters for the most part. However, if you flip to the next few pages, it starts to actually show you how to tackle the problem, all of it, and in depth at that.


An example is the second or third program you right. It's a small form with a button, a checkbox, and a label. You set the label's background color to red from the start (so it's defaulted to red when you run the program). You then make the program change the color of the label from red to blue, or blue to red, based on what it currently is...when you click the button. However if the checkbox isn't checked, you need to make a messagebox (messagebox.show) pop up to tell the user that the box wasn't checked, so the color changer isn't enabled. It's very simple, but shows you easily how to use conditionals.


A deeper example into that is with the color changing. You could do "if the background color is red, then change it to blue" and then another saying "if it's blue, change it to red". But the book (after showing you that), says "If the background color is blue, change it to red, otherwise, change it to blue". It's hard to realize this in words, but coding wise learning to combine conditional statements into smaller, compact form, makes for great "thinking" exercises, and helps keep your code uniform and lightweight. This is just one of the things that stood out to me that most people don't pick up on.


After you create that, it then starts getting into the basics (variables, loops, conditional statements, objects, functions, etc).


The applications you create are pretty fun to do as well, and even the little examples within the chapters are very good. It has many "pool puzzles" that are just downright migrain-inducing, but you aren't forced to do it. It's more a "logic test" for you, than anything else.


All in all, the book is VERY good for beginners. It challenges the way you think, and gives some very good examples of basic programs (you end up creating a horse-racing program, a "bank" style program, a small role-playing-game that is easily (and i mean EASILY) expandable into something larger, and a space-invaders game).


I highly recommend this book. This is what i use to "teach" to people that want to learn this language at my work place.

Full Threads Oldest First
  • Opinions vary,  July 29 2009
    Rating: StarStarStarStarStar
    Submitted by RichardL1969   [Respond | View]

    It's be interesting to see which types of people find this book fantastic, and which find it really confusing, as I think assuming those that are confused must illiterate or stupid is arrogant and naive.

    People think in different ways. Perhaps it's a left brain/right brain thinker thing. Most people are left brain thinkers, and if something is arranged in a way that suits them perfectly, they'll find it totally logical. A right brained person could be presented with the same information, and just not be able to visualise the solution at all.

    Overall I think the book has a terrific approach, and they way it dealt with the basics was excellent. The problem I have with it is in the longer exercises, where I find I'm having to spend so much time trying to figure out what it is that the program, and in particular the methods, are supposed to do and how they should be used, that I've really had enough for the day when it comes to actually writing the code.

    I actually felt that I learned more on the shorter exercises, as the longer ones bored me, and I just wanted to get them over and done with. They also often seem contrived to give them a "fun" spin, and I rarely saw a benefit for some of the features in a real world application.

    For me, reading about a C# feature, I want to know how to write it and why I'd use it, and have a short punchy exercise demonstrating that I've understood it. I'm less keen on it being part of a long "logic puzzle" of an excercise. Perhaps those who enjoy logic puzzles will think differently.

    I would recommend the book though, as most do seem to find it fine, and it's certainly better than terminally dull books I've tried in the past. I just find I need my learning split into two or three hour long sessions in a day, and at times it's hard to achieve that with this book.

    My three stars reflects than when it's good it's very good, but I found the frequent need to understand the author's logic for a solution to be really painful at times.