||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: Programming, C#, .NET
Title: Teach Yourself Microsoft Visual C# 2005 In 24 Hours
Author: James Foxall
Publisher: SAMS Publishing
Level: Beginning programming
Verdict: OK to a point, but not enough depth for anyone serious about learning C#
Pitched squarely at the aspiring developer who has never programmed before, this book provides 24 focused chapters - a nominal one hour each - with which to learn how to program GUI applications for .NET using the C# language. The book comes with a CD containing Microsoft's 'Visual C# 2005 Express Edition', so that the reader can easily get up and running and writing code.
The emphasis is very much on the visual side of things, with building GUI applications - as opposed to console apps - with Windows Forms a key activity. There's a lot of focus on using Visual Studio for form design, showing how to get the most out of the development environment when putting together a good looking application front end. And of course the book shows how to wire up code behind the forms to make the GUI actually do something useful.
While the emphasis on building the front end is solid, there's more of a problem with the coding side of things. The author clearly wants to avoid some of the complexities of object oriented programming and several times he states that such and such a topic is beyond this text. However, C# is an object oriented language and anyone who is serious about learning to program in it has to face up to the fact that it can be complicated. No matter whether you are a home developer or a would-be pro, an understanding of key concepts, such as inheritance, polymorphism, encapsulation and so on is essential for making progress.
Of course it can be argued that this is just a beginners book and that anyone wanting to go further can pick up a second book or use the internet. However, the sometimes imprecise use of language in this book leaves the door open for later confusion. For example the author frequently talks about an interface when referring to a user-interface, whereas an interface in C# has a very different and distinct meaning in terms of defining a class. Similarly the author suggests a coding style which is outdated and does not conform to the more recent and common coding styles recommended for C#.
These criticisms aren't to say that the book provides no value to the reader. The book does help the reader in being able to get started quickly and to learn how to create small applications that look good and are functional. However, the problem is that there's no fast way to expertise, and trying to ignore complexities ultimately doesn't help the reader who wants a solid grasp of C# programming.