Review of C# 5.0 Programmer’s Reference

A number of readers have asked me about the next book to get after reading one of my C# books, such as Start Here! Learn Microsoft Visual C# 2010 or C# Design and Development. Of course, it’s hard to recommend a next book unless you know where the reader is headed. After all, many of my books offer a starting point or deal with a specific area of interest. Based on the feedback I’ve received, in most cases, what the reader really wants is a compendium such as C# 5.0 Programmer’s Reference by Rod Stephens. This 918 page book is truly huge and contains a great deal of information within the pages between the covers.

The beginning of the book offers a different (and updated) perspective of what my books offer. It’s a starting point for your adventure in programming. Rod and I have complimentary writing styles, so if you didn’t quite pick up a concept in my book, Rod’s explanation will almost certainly make the difference for you. Most importantly, Rod’s book offers that latest updates for C# developers that my books can’t offer because they’ve been out for a while.

By the time you get to Part IV of the book, you’re moving away from the material that I offer into some more advanced programming topics. For example, I don’t really talk much about printing in my books. All of these topics are treated in greater depth than the material in my books—generally because I’m covering the topic at a level and in a manner that the less experienced developer will understand. So it’s essential not to skip these topics even if you’ve read about them before.

Part V is where this book really excels. I was especially taken with the chapter on parallel programming. Just about every machine on the planet provides multiple processors today, yet applications don’t use them nearly as often as they should, which results in wasted processing cycles and poor performance. Rod also provides an outstanding discussion of cryptography. If you’ve read the trade press recently, you know that securing data is becoming harder and harder, yet more important all the time.

Every chapter ends with a set of exercises. This makes the book invaluable in the classroom. An instructor can assign the book a bit at a time and have exercises ready to check the student’s comprehension of the material. Appendix A contains the answers for the exercises, so the answers are easy to check. It could be possible to create a student version of the book that lacks Appendix A so the instructor can check the student’s answers without worry about peeking.

What makes this book a compendium, a reference book, is the appendices in the back of the book. There is an appendix for nearly everything you can imagine. Do you need a quick refresher on data types? Well, you can find it in Appendix B. Appendix J will give you the quick scoop about Language INtegrated Query (LINQ). Look in Appendix T when you need to know more about regular expressions. The point is that the appendices make it easy to perform quick lookups when you’re in a hurry.

The bottom line is that if you need a book that will do more than just sit on your shelf, this is the one to get. You could easily use this book to get a great refresher on C# usage, an update on the new features provided by C# 5.0, a great classroom experience, and that reference book that you need later when you need to rediscover something under pressure.

 

Tea Time with a New Toy

What warms the hands as well as the heart, especially on a blustery Autumn night? A nice cup of tea.

How can you make a new acquaintance feel special or comfort an old friend? With a nice cup of tea.

I love to drink tea. I like it strong and I like it hot!

 

Recently, I received a gift from a friend who knows about my love affair with tea. It is called an “Almigh’ Tea Bag” from Supreme Housewares. This cute little thing is made completely from silicone. It is shaped like a tea bag with tag intact! I’ve carried it to work with me and tried it out with several different cups and mugs.

Cup, Saucer and Tea Bag
Cup, Saucer and Tea Bag

The base of the bag comes off so you can stuff the insides with your own mix of herbs and spices. Some like it strong, some like it light. With the Almigh’ Tea Bag, you can make it just like you want it.

Almigh'Tea Bag
Almigh’ Tea Bag

Here are some of the advantages that I found with this item as compared to the metal spoons or tea balls that you have in your utensil drawer at home.

  1. It is adorable.
  2. It is inexpensive.
  3. There is no metal to ruin your microwave.
  4. It travels well in your “go to work” mug.
  5. To clean out the tea leaves, simply turn it inside out. The leaves come out very easily.
  6. Small quantities as well as buying in bulk will save you money.
  7. No waste, even the used leaves can be added to the compost.
  8. Fresh tea leaves and herbs give more robust flavor.
  9. You aren’t stuck with a whole box of tea in a flavor that you didn’t like.
  10. It is easy to experiment with flavor combinations.

 

My experiment included whole cloves,              star anise and orange mint
My experiment included whole cloves, star anise and orange mint

There are also other uses for this tool that are yet to be explored. I wonder how it will do for a small “bouquet garni” in a small beef stew? I also wonder how Coffee Beans will work, if they are course ground and stuffed inside with course ground hazelnuts? As you can tell, playing with this teabag may keep me occupied for some time.  It is definitely an item that I will be adding to my stocking stuffer list for Christmas this year! The bag comes in four colors: yellow (shown), green, red, and ivory.

If you have any ideas about what can be stuffed into the “Almigh’ Tea Bag”, or have had any experience with it, I would love to hear from you.  Please respond here or send an email to John at John@JohnMuellerBooks.com.

Review of Guardline Wireless Driveway Alarm

One of the more interesting things about working out of your home is that you get a number of business visitors. I don’t receive visitors every day, so there is no need for a receptionist or anything that fancy. However, given that I don’t know these people most of the time and it would be a good idea to know they’re on my property, ensuring I know they’re coming up the driveway is a good idea. So, I decided to get a wireless driveway alarm. After looking at quite a few of them in detail and trying out one other model that simply didn’t live up to the vendor claims, I purchased the Guardline Wireless Driveway Alarm.

This particular product is a little more expensive than a few others on the market, but not unreasonably so. It has a number of features that makes it a better choice than the competition. For one thing, it has a longer wireless range than the others I looked at, about 1,000 feet. The signal from the remote sensors is quite strong in my house, so I can move the receiver just about anywhere and expect notification of someone coming up the driveway.

I was also able to obtain sensors as a separate purchase. The system supports four different zones. Each zone has a separate sensor. The receiver displays a different light for each zone and you can also configure each zone to have a different sound. So, you don’t actually have to look at the receiver to know when someone is coming up the drive (or moving around on your property in general).

What intrigues me is that you can also purchase separate receivers. If you have a multilevel house like I do, having multiple receivers saves you from having to carry the receiver from location-to-location. I may eventually have one receiver for each floor of the house.

So far, I haven’t experienced a single false alarm. This fact actually surprises me quite a lot because I live in the country. I had expected that the chickens might escape notice, but so far none of the deer in the area has managed to trigger the sensor either. On the other hand, the sensors have faithfully noted absolutely every visitor I’ve had so far. I can actually see where someone is at on my property based on the zone that is triggered at any given time.

Take my advice and use the quick setup to start with. The book makes everything sound way too complicated. The system comes with a quick setup sheet that makes setup a breeze. All you really need to do is put batteries into each unit, assign each sensor to a specific zone, and then give each zone a unique sound.

The sensors require battery power, which makes sense given that this is a wireless setup. The receiver does include a battery backup, but it normally runs on AC power. A nice feature is that the receiver also provides a battery test for the remote sensors. Simply run the test and you know whether a sensor has batteries that require replacement. A sensor will also light an LED on the receiver when its battery power is low.

Installing the hardware is also quite easy. You get everything needed except something to drill holes for the anchors. The anchors are long enough that they work fine with rounded surfaces. I was able to stick one of the sensors on a wooden fencepost without problems. The sun shields on the sensors keep false positives to a minimum. Make sure you point the sensors downward, as recommended in the instruction, to keep late day false alarms at bay.

About the only negatives for this unit are the price (you do get what you pay for in this case) and the somewhat annoying tones for the zone alarms. Actually, I can live with both issues without problem—only a few of the tones are horribly annoying and it’s probably a good idea that they are so that I won’t breeze right through an alarm while working.

Overall, the Guardline Wireless Driveway Alarm is a high quality produce that should provide me with years of service. It is a little expensive, but that expense is more than offset by the long reception range it provides and the lack of false alarms. Just how will it ages remains to be seen.

 

Review of Essential Algorithms

Working in computer science means knowing how to work with computer languages, but it also means knowing how to use math to obtain the results you want. Some math is relatively straightforward, but some becomes so complicated that you really do need some type of process or procedure for working with it. Essential Algorithms by Rod Stephens, “defines steps for performing a task in a certain way.” The first chapter begins by defining what an algorithm is and moves on from there to show you how they can help improve your ability to write complex applications.

The examples are written in a pseudocode that the author explains in Chapter 1. In fact, the explanation is accompanied by some examples of how to turn the pseudocode into an actual programming language. I’m almost positive some readers will take exception to the use of pseudocode because it doesn’t relate the example in their specific programming language, which would make implementation of the code as easy as possible for the reader. In this case, the use of pseudocode is impossible to avoid because the book would be far less useful without it.

This text could easily be used in a college. Each chapter ends with exercises that help the reader understand the concepts better (or at least determine whether any of the material actually sunk in). The answers to the examples appear in an appendix at the end of the book. However, in a college setting it might be possible to create a student version of the book without the appendix and a teacher version that includes the answers. The author also uses many of the same examples that I used when I was a student in college, but with an emphasis on diagrams to pictorially show how the examples work. The addition of graphics makes the examples considerably easier to understand.

The early chapters discuss specific kinds of algorithms that are used in every programming language that exists. For example, the author tackles the topic of randomizing data and ensuring that the randomizing process is fair. Of course, getting truly random data on a computer is impossible, but it’s possible to create random sequences of such complexity that the average human would never notice they aren’t random. This book discusses the topic at a length that I wish the text I had used in college would have provided.

Don’t get the idea that Essential Algorithms is light on the computer science aspects of using algorithms. For example, you’ll find coverage of all the basic structures used by most languages: linked lists, arrays, stacks, and queues. I could have wished for coverage of dequeues because many languages modify dequeues to create stacks and queues. Understanding how this essential structure works would have been great.

There are separate chapters for sorting and searching. These two tasks are performed so often by applications that an in depth knowledge really is a necessity for any computer scientist. All the common sorts are covered in sufficient detail that the reader should understand them with relative ease: insertion, selection, bubble, heap, quick, and merge. In addition, you find the counting and bucket sorts (two types of sorts that are completely missing my my college text—I took the time to check). The list of searches are likewise complete: linear, binary, and interpolation.

The opening chapters are finished with chapters on hash tables and recursion. I thought the chapter on hash tables was a bit light and their use as dictionaries in languages such as Python is only mentioned in passing. The chapter on recursion was far better done. I found the material on the various kinds of curves: Koch, Hilbert, and Sierpinski, exceptional.

The middle of the book (starting with Chapter 10) is taken up with trees, networks, and strings. There should be enough material here for anyone who really wants to learn the information. The author seems to hit his stride in these chapters—they’re both interesting and well written.

The end of the book starts with cryptography in Chapter 16. It’s the part of the book that just about anyone will find helpful and it’s also the part that separates this book from being a mere college text and more of a reference book. The chapter on complexity theory is exceptionally nice. Even if you’re already an expert in other areas of this book, it’s likely that you’ll find some new ideas in this part of the book—enough ideas to make it well worth the purchase price.

Overall, Essential Algorithms is the text I wish I had when studying the topic in college and it’ll make a fine addition to my bookshelf. I’ll likely use it as a reference book when trying to understand how various programming languages are implementing a practical need, such as determining how to work with structures such as stacks. I don’t delve deeply into security issues very often, but I’m sure that material will see use as well. There are some holes in the book, but I wouldn’t consider them deal killers and could provide great fodder for the author in the form of articles and blog posts. This is a great book and one that you need on your shelf.

 

Review of Gravity

An essential requirement for any movie I watch is that it must be entertaining. Gravity fulfills this requirement in a unique way. It’s one of the few movies I’ve ever seen where the 3D version is most definitely better than the 2D version and it’s the only movie I’ve ever seen where 3D is actually a requirement. The manner in which this film is presented makes the 3D version so much better than the 2D version that seeing it in 2D is to miss part of the movie’s appeal. The use of 3D brings home the vastness of space, even when that space is in the immediate vicinity of earth.

Despite the categories you might have seen assigned to this film, it really doesn’t have anything to do with science fiction. This is a survival film that just happens to have its venue in space. It’s also pure fiction. You need to disregard a few laws of physics and suspend reality just a bit to enjoy the film. A lot of the film’s detractors decry the technical problems of the film and spend their time pointing out flaws, rather than enjoying what really is an entertaining film. If you want a balanced view of what’s wrong with this film technically and why you should ignore these issues, read What Does A Real Astronaut Think Of ‘Gravity’?. The point is, this is a movie, not a documentary.

Sandra Bullock does an outstanding job in the film. In fact, this is one of the better roles I’ve seen her in, even better than Miss Congeniality and Practical Magic. The way in which she moves throughout the film makes it quite believable that she really is in space doing all of these things. Her reactions to the challenges she faces are also quite convincing. I never found myself at the edge of my seat—the outcome was understood from the beginning, but I did find myself completely absorbed in how she would meet the challenges.

George Clooney is window dressing for the most part in this movie. Yes, he has a few interesting minutes, but for the most part the focus is on Sandra Bullock throughout. If anything, his performance lacked punch and he came off as a “know it all” with a complete lack of discipline. The movie could have been better still if they had used another actor or if his role had been changed to look more professional. Clooney really wasn’t the best choice for this film—what it really needed is someone who could act convincingly as both a professional astronaut and a mentor. He really is more suited to movies such as Ocean’s Eleven.

The plot for this movie is a bit thin. You really do know the outcome from the outset. Even so, Gravity does have some good moments and the filming is spectacular. It’s the kind of movie that you watch just a few times, but enjoy immensely the few times you do watch it. Once you get past the filming and the few surprises the movie has to offer, it really does lack substance. I’m glad that I saw it and I’ll watch it again given the chance, but it’s not the sort of movie that I’m likely to add to my collection.

 

Getting Ready for the Crafting Months

I’m not quite ready to kick back and enjoy the wood stove yet, but I may be getting there. The wood pile is starting to look mighty nice and the cool evenings are definitely inviting. In a week or two, I imagine that we’ll need to start having evening fires and that’s when the crafting will begin. Of course, I participate in a number of crafts, but this winter I plan to focus on making some socks. Warm socks are a must have item during the cold winter months.

In Knitting for the Gentleman Farmer you see a pair of socks I made using my Knifty Knitter, but I’d like to do more. The socks I’ve made so far are more akin to slippers, than something you’d put on your feet before your shoes. So, I recently purchased Loom Knitting Socks: A Beginner’s Guide to Knitting Socks on a Loom with Over 50 Fun Projects (No-Needle Knits), which is a book designed for us who like to avoid needles because they’re a tad hard to handle. This book tells you quite a lot about making socks in just a few pages. For example, you discover how to size your socks properly so they don’t slide around on the wearer’s feet (as mine are prone to do).

The book uses looms of various sorts, one of which is the Knifty Knitter. I may end up getting a few other loom types, which wouldn’t bother me at all. It would be nice to create socks that I could wear anywhere with shoes and that simply isn’t possible using the Knifty Knitter. I’ll also have to get used to working with thinner yarn and possibly add a bit more light so I can actually see what I’m doing.

What I like best about this book is that the author takes time to demonstrate how you can create an amazing array of patterns using a loom. The Knifty Knitter instructions only show how to create a straight knit—nothing very fancy at all. I’ll be able to use the techniques I learn in this book to create nicer looking hats, blankets, and scarves as well (generally, I don’t make other items, even though I certainly could).

Unlike a lot of books on the market, this one provides realistic levels for each of the patterns. In addition, there is a nice mix of models (young, old, male, and female). It gets tiring to see books that feature all of the patterns being worn by a young woman. Seeing a guy wear some of the items is a nice change for me and will make me feel more comfortable giving those particular sock patterns to my male friends.

Now all I need is a full tea kettle and some of Rebecca’s amazing herbal teas. With the fire started, tea in hand, and some music playing, my Knifty Knitter (and other looms yet to be purchased) will see a lot of use this winter. I’ll provide updates on some of the other looms I try later in the winter.

 

In Praise of Editorland

A good friend of mine, who just happens to be a really good editor too, runs a blog site called Editorland. If you’re like me, you have a shelf full of books that purport to tell you how to write better. These books do provide you with the mechanics of writing better—they provide a common framework of rules that everyone follows to make writing clearer, succinct, and expressive. However, they all lack something that Editorland provides—an experienced hand.

Experience is hard to find in books, articles, or even most places online. It’s not just a matter of learning when to break the rules or to observe the rules to an extreme—being a good editor (or a good author, for that matter) consists of far more than rules. For example, creativity is a good thing, even for a journalist, but certain kinds of creative prove troublesome to an extreme. Burying the topic of a story well into the story is never a good idea and Bill lets you know about it as part of his one blog post.

Sometimes it’s a matter of when to use a hyphen or the proper spelling of a word. The blog posts cover a wide variety of topics that will interest anyone who writes and is tired of not finding good answers in the books on their shelf. The idea of Editorland is to make you a better editor (or author) in discovering how to feel your way through a topic and how to use both words and punctuation effectively. Writing is an art, no matter what sort of writing you do—it can’t be taught in the same way that an engineering discipline can be taught. Experience is the best teacher.

The best part of Editorland is that you can go back through the years of posts that Bill has created and learn quite a bit about the art of writing. The topics seem fresh, even when they were written quite some time ago. In short, if you write, give Editorland a try to see for yourself that it has quite a lot to offer.

 

Review of Math for the Zombie Apocalypse

Making learning fun is something every author struggles with and few authors achieve. Math for the Zombie Apocalypse is one of the few books out there that actually make a mundane topic like mathematics fun. The essential content of this book is the same as the content for any beginning math book you have ever read. There is no way to get around the requirement of having to learn addition, subtraction, multiplication, and division. However, this book accomplishes its task with panache.

The reader is instantly engaged in a favorite topic of children today, avoiding zombies. Of course, it’s one thing to say that you want to avoid zombies, but it’s quite another to actually accomplish the task. Throughout the book, the reader is asked how he or she would prove their mettle against hoards of zombies roaming the land. The answer is to use math to figure out how to stay alive while less skilled acquaintances become zombies themselves.

Of course, the book is meant entirely in fun. The humor is grand and of the sort that children will enjoy immensely. However, the result of reading the book is that a child sees a useful purpose in learning math—even though this purpose is quite fictional in nature. Most math books out there are dry, humorless tomes filled with mind numbing repetition that will lull the most stalwart child to sleep. There is no reason that a child can’t learn new skills in a fun-filled environment. Before the reader realizes it, he or she has learned new and useful skills.

Fortunately, this isn’t the only book the author intends to write. You’ll want to wait to see the new additions to the for the Apocalypse series, but for now, make sure you check out Math for the Zombie Apocalypse, especially if you have a child that is having a hard time learning the basics. This is the sort of book that I wish had been available when I was growing up and one that I hope others see as being a valuable way to get kids interested in an essential topic. The press, teachers, parents, and even a few students complain about the low scores children achieve in basic math today, but this book does something about the problem.

 

Review of MCSD Certification Toolkit (Exam 70-483): Programming in C#

You’re really excited about becoming a Microsoft Certified Solutions Developer (MCSD)! How do you proceed to make your venture a success? Having been through several certifications myself, I understand the importance of having a great certification guide to help you overcome some of the less intuitive parts of the examination process. Tiberiu Covaci, Gerry O’Brien, Rod Stephens, and Vincent Varallo have provided such a guide with MCSD Certification Toolkit (Exam 70-483): Programming in C#. Anyone planning to take exam 70-483 will benefit from this book because it presents the exam topics in a highly organized manner.

Let me get one of the gripes out about the book before I discuss all of the good material though. It seems as if every certification guide I’ve ever looked at includes topics such as, “Why Get Certified?” The problem with these topics is that they waste space and bore the reader. The reader already knows why certification is important, so there is no need to discuss the topic. The reasons for getting certified vary, of course, but the vast majority of people can sum it up in one word, money. Certification will open a door to a better job, help the candidate keep an existing job, or move the candidate one step further up the corporate ladder. The topic is unimportant because the only thing the reader wants to know is how to ace the exam (or at least get a passing score). I feel strongly that the authors could have used the space spent in preaching to the choir to provide additional helps and aids. If your tolerance for less useful material is low, then you’ll want to skip directly to page 11 of the book and start reading “How to Study for the Exam Using This Book.”

After you get past Chapter 1, the rest of the book starts to take on a predictable pattern. You read the theory behind each of the topics that the exam will test. Code Labs give you hands on experience putting the theory into practice. My favorite sections are the Real-World Case Scenario, which helps you understand how the theory is actually used to write an application that could exist in the real world. A problem with many certification guides is that they pursue a purely academic course—this book avoids that particular problem and gives you practical knowledge as well.

Each chapter ends with a Chapter Test Questions section that contains a few questions you can use to check what you have absorbed. The questions will typically be useful for one or two uses, so you need to ensure you read the chapter and go through the exercises before you attempt to try the test questions. Otherwise, you won’t really know whether you have absorbed the material. Personally, I found the number of questions a bit small. The authors could have beefed up this section to provide the reader with a better idea of how the exam will appear.

The Cheat Sheet and Review of Key Terms sections provide an outstanding method for refreshing your memory the day before the exam. One of the mistakes I (and probably many others) made in preparing for a certification exam is to study too hard the night before. If you don’t know the material the night before, you most definitely won’t pass the exam because these exams are designed to thwart people who cram. A reminder, an overview of what you should know, is really all you need the night before. Relaxing and getting the rest you need are essential.

I wasn’t quite sure about the Additional Reading and Resources section found in each chapter. This section is helpful, but only if you’re using the book as a reference after the exam, rather than as a means for preparing for the exam. The authors could have possibly skipped this section in favor of providing more questions or other kinds of hands on learning activities (one of my favorite CNE books used puzzles as a learning aid). Then again, having the book as a reference after the example will likely prove useful too—just don’t cloud your mind with too many competing sources of information before the exam. The trick is to keep your mind clear and focused on your objective (passing the exam).

Overall, the text is written in a clear manner and you’ll find that the authors carefully lead you from one topic to the next. Developers who are already familiar with C# application development may find the book a bit boring because it really does cover all the details. The book is more designed for someone who hasn’t programmed using C# in the past. In fact, the authors recommend that more advanced readers simply skim the book and look for areas of weakness, which seems to be a winning strategy.

Of course, the big question is whether a book is worth the price you pay for it. In this case, you’re getting a bargain. The book is well written and will serve the needs of anyone who needs to take the 70-483 exam. Certification usually brings some significant benefit, so anything you spend on materials today will reap financial rewards in the future. Getting a book is also a lot less expensive than taking a course. Using this book will save you money in the long run.

 

Review of Visual Basic 2012 Programmer’s Reference

As you might expect, Visual Basic 2012 Programmer’s Reference is a heavy tome at 798 pages. Of course, those pages could be filled with fluff, but that isn’t the case with this book. Rod Stephens does a great job of covering a wide variety of topics that anyone who wants to know how to write Visual Basic applications will need to know. The book starts with the assumption that you have never worked with Visual Studio before. Actually, it’s a good start for some developers who have been coding a while because they are self-taught and really haven’t explored everything Visual Studio has to offer.

The first part of the book discusses using the tools of the trade—a topic that most books seem to miss for whatever reason. I’m not talking a quick overview either. Rod provides six full chapters, 77 pages, worth of material on how to use the Visual Studio IDE for various kinds of application development including both Windows Forms and Windows Presentation Foundation (WPF). This may not seem very important at first, but quite a few readers of my books have problems with the IDE they’re using and even more have no idea that the IDE supports certain functionality. In short, many developers don’t have a firm grasp of the tool that they’re using to write code, so they can’t perform their best work. However, if you’re already completely familiar with the IDE, it’s probably a good idea to skip this part of the book because it is quite detailed. Missing from this part of the book is material on working with Metro applications. In fact, that material doesn’t appear until Chapter 21, so this really isn’t a strong Windows 8 offering from a building Metro applications perspective.

The second part of the book is entitled, “Getting Started,” which I view as a misnomer. Yes, you’re getting started writing code, but anyone who skips the first part really hasn’t gotten a good start. This part of the book introduces the reader to controls, forms, and other objects used to create applications. There are six chapters of this sort of material. Again, you can’t expect to create great applications if you don’t know what objects are already available to you. Developers who don’t really know what objects are available will tend to reinvent the wheel or assume that the language isn’t capable of performing a specific task. Rod does an outstanding job of making the reader aware of what is available and how to use it effectively. There are 100 pages worth of extremely useful material of this sort.

Chapter 13 should have begun a new part. Rod leaves controls, forms, and other objects in this chapter to begin working with applications. It’s one of the few organizational errors in the book, but one that is easily forgiven. The next six chapters, 160 pages worth, discuss basic programming topics such as variable data types and the use of programming structures. Chapter 18 provides an excellent discourse on error handling and will be one of the chapters that even experienced developers will want to read.

Chapters 19 and 20 provide extremely basic, but thorough coverage of database topics. This is not a book about database development. Rather, it exposes you to the topic of database development and you’ll need to obtain another book on the topic to finish your education. This said, what this book is really doing is helping you understand database development at an extremely basic level so that the second book you get, the one specifically about database development, will make sense.

Chapter 21 (which is only 12 pages), likewise, is an extremely basic view of Metro development. Again, this isn’t a Windows 8 book and it doesn’t appear that the author ever intended it to fulfill that role. What Chapter 21 does is introduce you to Metro in a basic way so that you can go on to work with a Windows 8-specific book and make sense of the material it contains. That said, I did notice that Chapter 21 does miss out on a few fundamentals, such as obtaining a license for developing apps. Rod doesn’t appear to mention that the target application will only work when running Windows 8 either (at least, I wasn’t able to get it to run on Windows 7).

Starting with Part III, you learn about Object-Oriented Programming (OOP) techniques in detail. Chapter 22 is a must read chapter because it provides the theory that many books on the market lack. It describes what OOP is all about. It’s tough to understand coding examples when you don’t understand the basis for those examples and Rod fills all of the gaps for you. In the chapters that follow, Rod leads the reader through basic class development, structures, and namespaces. The book then continues with some specifies on collection classes and generics. Again, all of this material is designed around a person who really doesn’t know anything about Visual Basic, so Rod takes time to explain the details not found in other books.

Part IV of the book fills out some basic information needed to create standard desktop applications, such as printing in Chapter 27 and the use of configuration information in Chapter 28. The use of streams and filesystem objects come next in Chapters 29 and 30 respectively. The book closes out with an enormous array of appendices (22 of them) that contain all sorts of useful reference information. After you’ve gone through the book, the example applications and this reference material continue to provide you with long term value.

Overall, this is the book that you want when learning Visual Basic. It provides the details needed to write robust applications quickly. However, getting this information is like getting any other sort of education—it takes time and you must work through the examples. This isn’t a quick reference book, nor is it going to provide you with details about specific technologies such as database development or writing Metro apps. Where the book does touch on specifics, it covers those specifics at a basic level with an emphasis on helping people understand the underlying technology. If you’re looking for a book that provides quick answers, a cookbook approach to solving problems, or detailed information about specific technologies, you really do need to look elsewhere. On the other hand, if you’re tired of being confused by online examples and tutorials that don’t really teach you anything, then this is the book you want.