Sending Comments and Asking Questions

Anyone who reads my blog for very long understands that supporting my books is a big deal for me. I actively work with my readers because I realize that you have the choice of using books written by other authors. Let’s just say that my support system is one of the reasons you really do want to buy my books. My blog not only answers common questions you have, but also adds examples and other information to the information you already receive through my books, so make sure you keep you eyes peeled for additional information here as well.

The last time I discussed this topic was in 2011 in my Contact Me, Please! post. The same things apply now as they did then. I’ll answer your book-specific questions as soon as I possibly can and in as much detail as I can. However, I won’t write your school term paper for you, accept a marriage proposal, or provide free consulting (amongst other things readers have asked me to do in the past). If you’re having problems with an example or can’t find the book’s source code, please be sure to ask because I want your experience with my books to be nothing less than phenomenal.

I also encourage you to be a beta reader. You can see the posts I’ve made for several recent books. The biggest reason for me to ask readers to participate in the book building process is to ensure you get the book you want. I also want to avoid Errors in Writing. As far as I know, I’m the only technical author on the planet that invites reader comment during the writing process, but I truly feel your input is essential, so I request it in every way I can. As I get new book contracts, you’ll continue to see requests for beta readers posted on my blog.

You can always contact me at [email protected] with any comments and questions you have. This includes both books and blog posts. Let me know about any concerns you might have and I’ll do my best to solve them. In the meantime, happy reading !

 

Writing the Introduction and Summary

I read a lot of books in a year. In fact, it’s not unusual for me to read a book or two every month of the year. While it may take three or more months to read something for pleasure, such as a favorite fantasy novel, technical books usually receive my intense interest for less than a month. Once I pick it up, I’ll keep reading until I’ve finished the book. Unlike many readers, I do read technical books end-to-end so that I can pick up new writing techniques, as well as information. When it comes to technical books, I’ve found that there are usually two flaws that make me scratch my head: the introduction and summary.

The introduction is akin to an advertisement or possibly an invitation. You want to provide a reader with a good reason for viewing the material. After all, the reader’s time is precious and there are many authors on the market peddling their wares. An invitation to read a particular chapter is not only necessary, it’s essential if you want the reader to spend time with the book. A good introduction highlights the reasons why the reader should continue and tempts the reader with the fine fare you’ve diligently created. However, introductions should also be short. You have about 30 seconds to convince someone to read a chapter—possibly less in this day of the sound bite. Instead of focusing on the question of what, the author should tell the reader why. It’s important to say why the reader should read the chapter and describe how much the reader stands to gain by doing so.

Summaries are eschewed by most readers for good reason—they’re boring. In many cases, it’s obvious the author didn’t devote much thought to the summary, so it isn’t hard to figure out why the reader doesn’t devote any time to it. Over the years, I’ve stopped calling the end of the chapter a summary because the term has picked up such a terrible meaning. Rather, I use a heading that at least promises to excite the reader a little. My summaries do tend to follow a formula that I modify as needed to satisfy the requirements of the target reader for my book. I write three or four paragraphs that answer these questions:

 

  • What is the most important bit of information the reader can take away from the chapter?
  • Now that the reader has new information, how can the reader apply it in a specific way?
  • How does the next chapter expand on the content of this chapter (or what new topic does it cover)?

In working with the introduction and summary, I’m careful not to develop new information. I simply direct the information I cover in the body of the chapter in a specific way. Yes, the summary does imply new information in the form of a call to action, but the call to action is not the topic I’m discussing, but rather invites to the reader to apply what the chapter has taught in order to make the lessons more permanent.

The content of the introduction and summary does vary by publisher. Specific series have specific requirements and I always do my best to make use of these requirements in a way that helps the reader obtain the most from that particular chapter. In addition, beta readers have often requested that I include some special feature in either the introduction or summary to help make the chapter more useful. I listen to these comments carefully because the beta readers probably know better than I do what will attract another reader’s attention.

Summaries can be especially hard. There are times where I’ll rework a summary several times to get the effect I want. In some cases, my summaries will include questions or other special features because simply telling the reader to go out and use the information learned seems inadequate to address the topic at hand. No matter how you write your introductions and summaries though, you do need to treat them as an important part of the chapter. The first invites the reader into the chapter and the other bids the reader adieu. Both provide the reader with a lasting impression of your skill as an author and both change the way the reader views the content of the rest of the chapter.

What is your reaction to technical book introductions and summaries? Do you often feel as I do, that they are simply bolted on as a means to start and end the chapter, but not much else? What would you like to see in an introduction or summary? Let me know your thoughts on the topic at [email protected].

 

How the Internet Affects the Information You Receive

For many years now (centuries, in fact) professional authors, editors, and production staff have worked hard to provide you, the reader, with high-quality material. It isn’t always error free (see Errors in Writing), but these paid professionals do their best to assure the material you get is of the best possible quality. The Internet has changed all that. Today, anyone can write anything and publish it online. Search engines ensure that people can find the information, and you now have the option of reading information that has never been verified, edited, or checked in any way for accuracy or fitness of purpose. We have traded quality for quantity.

I’ve realized that there was a problem for a long time now. Sales of articles, white papers, books, and other forms of writing have declined for all authors for quite some time because people feel they shouldn’t have to pay for something they can obtain free. It’s true, a bargain is always appealing no matter what that bargain might be. However, there is a hidden price for this free material and I’m also pleased to find that some media sources are trying to open a forum for discussing the costs of free writing. The latest article I’ve read on the topic, “Today’s Internet: All the fake news that’s fit to publish,” discusses the topic in clear terms. I strongly encourage everyone to read it because the article does accurately describe the cost to you, as a reader, of the free information available online.

Before the e-mails start popping up in my inbox, yes, I do have a vested interest in convincing you that buying a book is superior to obtaining the information online. After all, I’ve written 90 books to date and I’m currently engaged in writing book 91. It would be remiss of me not to mention that your purchase does help me pay my mortgage and electrical bill. However, my goal in writing this piece is not to line my pockets—I’m truly interested in helping you obtain the best information possible because you need good information to make good decisions. In fact, look at my past blog posts and you’ll find that the quality of your reading experience has always been my prime consideration. I write books because I enjoy writing and knowing that my writing helps people. There are other ways I could earn a living (such as consulting) that would put far more money in my pocket than writing does.

There is always going to be a certain amount of angst over buying something that you can possibly get free. People often make house and auto repairs themselves or ask Jane down the street to do it for them to avoid paying a professional to perform the task. Likewise, you have the option of using the free online sources of information to avoid paying professional authors to obtain, verify, and write that information for you. The quality of the material you receive will generally reflect the source that you obtain it from. Of course, there are people who do write quality material online and provide it to you free (in many cases, through the support of a vendor or organization). The point is that you need to find an information source you can trust in order to use that information to make decisions or learn new skills.

One additional benefit of relying on a professional author that you don’t obtain with an Internet source is support. Most professional authors will post addenda, answer questions, and provide value-added materials, much as I do in this blog, as part of publisher-supported sites, and through e-mail. When working with an Internet author, questions are often ignored and remain unanswered years after they’re asked. The price you pay for a book or other professionally written material includes support that you probably won’t get from other sources. As with anything in life, you must consider the tradeoffs of the decisions you make.

How do you feel about the quality of information you receive from the Internet? Do you see any benefit at all from buying books written by a professional? As I seek better ways to serve your needs, the answers to these questions are becoming increasingly important to me. Let me know your thoughts on the topic at [email protected].

 

Review of The Art of Readable Code

I encounter a lot of unreadable code because I work through a lot of code I download from the Internet for learning purposes and rework code from failed projects. So, it was with great interest that I opened The Art of Readable Code by Dustin Boswell and Trevor Foucher. After reading this relatively short book, I’m convinced it should be picked up as a college text. If developers would follow even half the advice in the book, many of the truly weird errors in code today would simply disappear because developers wouldn’t end up overwriting the good parts of other developer’s code due to a lack of understanding it.

The authors rely heavily on humor to make good points about writing code that is easy to read by others. The cartoons are engaging and fun. I wouldn’t necessarily call them funny—some of the jokes are tongue-in-cheek and others are a bit dry, but they’re all in good taste and make important points. As for the good points in the book, I don’t think I’ve ever seen anyone suggest that a developer actually turn to a thesaurus to find a better name for a variable, but the authors make this point on page 9. The point is made in a humorous way—not as a command as I’ve seen some authors do. I did laugh relatively often. For example, “The Ultra Hard Metal Nail Smashing Rod” reference on page 13 gave me quite a laugh. You’ll need to see the reference for yourself to understand it.

You’ll want to pay attention to the frequent Advice blocks in this book. In fact, if you’re short on time, skim the book looking for these blocks (and the Key Idea blocks I describe in the next paragraph) and you’ll improve your coding technique significantly. Some of the advice is obvious to a veteran programmer. For example, on page 25 the authors advise putting max_ or min_ in front of programming elements that describe some sort of limit. (If only novice programmers would follow that simple advice.) I only wish that the Advice blocks appeared with greater regularity later in the book. I would have welcomed advice from the authors on some of the more complex topics.

The Key Idea block is another useful addition in the book. For example, on page 122 you find the authors advocating that you create code that only performs one task at a time. Even though this idea seems quite obvious, you’ve probably seen code that is trying to do too much and ends up not doing anything well. The authors back up their Key Ideas with good coding examples (some relatively complex). Unlike the Advice block, the Key Idea block does appear with good consistency throughout the book and the authors have used it quite well.

The section on Eliminating Variables that starts on page 94 was especially useful for me. I often create intermediate variables while writing an application to aid in debugging it. The authors provide techniques that greatly simplify code without making it much more difficult to debug later. Even so, sometimes you really do need that intermediate variable for a while. The point is that you should simplify your code as it nears production to reduce complexity, provide fewer failure points, and improve performance.

As with any book you buy, this one does forward the author’s agenda. If you follow all of the advice in the book, your programming style will closely reflect the style that the authors use. Anyone who has written a lot of code knows that there are many perfectly acceptable styles of coding. The point is to make your code readable so that someone coming behind you can pick up on your style and quickly discover how your code works. For example, I still prefer to use a form of Hungarian Notation for my applications. Because I apply the notation consistently, my code is readable, but many developers feel that the notation is outmoded. Whether you use Hungarian Notation or not is not the point, the readability of your code is. The authors express their view of Hungarian Notation on page 17—as with many other parts of this book, they take a firm middle ground approach that should serve the reader well.

There is a lot to like about this book. As I said at the beginning of the review, colleges would do well to incorporate it into their curriculum. The authors do press their style of coding strongly at times, but I imagine that if I were writing this book I would do the same things, so I can hardly fault them on this point. The content is a bit simplistic for the veteran programmer at the beginning, so you might want to start around Chapter 7. Overall, I think this is a good and much needed book.

Methods of Learning

More than a few readers write me about the best way to learn. Many of them are asking about the best way to learn how to become a programmer-a topic I discuss in my Becoming a Programmer post. However, more and more often, readers are asking me about learning in general. The fact is that I can point you to different techniques for learning, but I can’t determine what will work best for you. You’re the only person who can make that determination and you won’t know until you try a number of techniques. In a society ever more devoted to success at all costs, learning requires that you fail in order to make gains. When you fail, you learn what doesn’t work and possibly why it doesn’t work. So, trying various techniques is the only way to discover what works best for you and that process involves some level of failure. This is a philosophy that educational providers like Venture Lessons embody, interactive lessons that you can fail in will teach you so much more than lecturers.

I imagine that my answer frustrates a lot of people because they don’t want to fail at something, so they ask what works best for me. Mind you, what works for me probably won’t work for you. I personally learn best by working through examples written by other people. When it comes to programming, I rely on application examples written by other developers and scrutinize them intensely using the debugger so that I can see precisely how they work. Then I create applications of my own that use those techniques to ensure I actually do understand how things work. Likewise, I use examples from other woodworkers, gardeners, or other professionals as a basis for my own hands on learning experiences. In addition to these hands on techniques, I also read a large number of books and articles every year. Often, all I really need to learn a new technique, is a good explanation of it. I read books and magazines in every area that interests me-everything from application development and computer hardware to new gardening techniques and animal husbandry. In some cases, I also attend lectures and seminars to augment my learning, but given that lectures and seminars tend to be expensive, I focus on my primary means of learning new things whenever possible.

Don’t limit yourself to what I use though. There are many other ways of learning that are just as viable and just as important. The only requirements of learning is comprehension (the ability to understand what you’ve learned) and retention (the ability to remember what you have learned). How you achieve your goal is up to you. Here are a few other methods you might consider trying in addition to those that I commonly use.

 

  • Instructor Led Training: There is a good reason that children go to school. An instructor (teacher) can answer questions about a particular skill immediately and fully. The interactive communication that occurs helps the student learn faster and with fewer problems.
  • Tutorials: A tutorial is essentially a set of precisely written procedures meant to guide the student along a particular learning path. It’s a combination of reading and doing that helps someone develop a skill quickly.
  • Interactive Media: This is a newer form of the tutorial that relies on sight and sound to convey meaning. Interactive media includes animations and graphics that help a viewer visualize the content better. Hands on exercises included with the interactive media help the student know when a particular training goal is achieved.
  • Observation: The subtle art of observation isn’t mentioned very often anymore-probably because people are too busy or impatient to use it. I know that I’ve learned more than one new task though simply by watching someone else do it. Observing someone means watching and thinking about what they’re doing. You don’t necessarily ask any questions (and may annoy the person you’re observing when you do).
  • Experimentation: Of all of the methods used to learn, this method provides the highest gains when successful, but also incurs the greatest amount of failure. It’s a matter of asking a question, deciding on how best to answer that question, and then creating an environment in which to determine the answer. In order to ensure that the question is answered correctly, you often have to repeat the experiment a number of times in various environments. Experimenters often discover new knowledge or rediscover lost knowledge, but at the cost of failing a lot.
  • Cooperation: A cooperative learning environment is one in which two peers have part of an answer and choose to share their part with someone who has another part of the answer. The exchange benefits both parties because both now have two parts of the answer. Of course, a cooperative learning environment requires trust on the part of both people.
  • Dissection: When I was younger, I couldn’t be bothered to keep anything in one piece. I dissected everything in an attempt to discover how it worked. Often, that meant not putting the item back together because the dissection process is destructive. Even so, you’d be amazed at how many things you can learn by dissecting an object to see how it’s put together.


This list is incredibly short. Over the years I’ve seen people learn an amazing array of knowledge using all sorts of techniques that boggle the mind. In every case, the successful learner has experimented with various techniques until he or she finds the techniques that work best. These techniques won’t work best for someone else, but they work best for you. I encourage you to fail in order to learn. Don’t be afraid of trying something and then discovering it doesn’t work because that’s the only real way to learn anything. Let me know about your favorite learning technique at [email protected].

 

Review of the Sword of Truth Series

The Sword of Truth series is written by Terry Goodkind. It features a number of interesting characters, but the focus is on two characters, Richard and Kahlan. Richard’s grandfather, Zedd, also plays a major role in the book series, but not in the way Richard does. Richard is the Seeker of Truth, which would be an auspicious goal for any hero. The other characters come and go as needed to fill out the various scenes. It’s not that the book series lacks depth due to too few characters—quite the contrary, the book series is actually quite detailed and rich. The series consists of these books (in the order that you should probably read them):

 


Anyone familiar with the series will see that I left Debt of Bones out of the list. Yes, this book is also part of the series, but take my advice, save it for later. The eleven books that contribute to the main part of the series will take quite a while to read and reading Debt of Bones does present a few spoilers that I would rather not have known. It’s a good book to read after the fact, much like watching Legend of the Seeker (the ill fated television series based on the book) adds to the experience. It’s possible that there are other additions to the Sword of Truth series, but this review doesn’t discuss any of them.

I’m going to try hard not to spoil anything for anyone who hasn’t already read the series by providing a detailed overview of the plot. If you really want to spoil your reading experience, read the reviews on Amazon. However, the series does contain everything needed for a good fantasy. There are the usual heroes and villains. The hero has a pretty girl to protect. As in any good fantasy, magic is a must and you’ll eventually encounter mystical creatures such as dragons.

Terry is a great writer in many ways. His writing style reminds me quite a bit of Tom Clancy, another favorite author of mine. Rather than gloss over the details, Terry writes about them with vigor. It almost feels as if you’re seeing the fantasy world through a camera—the vivid details are nothing short of fantastic. However, reading the details isn’t everyone’s cup of tea, so you’ll see lots of complaints that Terry doesn’t move the plot along quickly enough. It’s true, the plot does seem to drag at times because you’re reading about details that may not matter much to the story. From my personal perspective, I greatly enjoyed the detail because it helped me envision the world of Richard and Kahlan in ways that would have been impossible otherwise.

A problem with the series is that it runs across so many books. Terry must repeat details for readers who could read the books out of order and not know about details in other books. I tried reading one book out of order and the repetition wasn’t a problem at all. However, reading the books in order did leave me feeling at times like I was getting buried in repetition. The series would have been far better if Terry had limited it to four or possibly five books. Leaving out a little of the non-essential detail and all of the repetition would have accomplished the task in a far more elegant manner. However, this is a minor nit that plagues an otherwise well-written series.

Some people have complained that Pillars of Creation should never have been included in the series. I disagree. Part of the reason that this series has kept me interested is that Terry takes side quests. You wander about the four main lands of the series: Westland, The Midlands, D’hara, and The Old World and really examine things. If Terry had never used the material from Pillars of Creation in other parts of the series and used that material effectively, I probably would have said that the book didn’t belong in the series either, but the fact is that Terry does use that material to good effect. It’s one of those situations where you must read with the idea that the author requires time to develop part of the plot for you.

A few people were appalled by some of the graphic detail in the books. I must admit that I could have probably done without a little of that detail myself. There is only so much that I want to know about the blood, gore, broken bones, and other horrors that the protagonist has faced. In this case, the exquisite detail of Terry’s writing didn’t serve to make the series more enjoyable, not unless you’re of the Marquis de Sade persuasion. There were a few small sections that I scanned briefly because I didn’t relish the graphic details in them.

Richard represents many good elements that I have found in few books. His emphasis on loving life and living it to the fullest because you want to do so is presented in unique fashion. Terry does seem to get on the stump at times and I found the long diatribes distracting, but I did approve highly of the way in which Richard presented the facts to others and encouraged them to live their lives. In fact, I’ll go so far as to say that these passages often motivated me to grasp life a bit more strongly and robustly.

The sign of a great author is the ability to do the unexpected—to entertain in a way that surprises the reader. I feel that Terry has succeeded to a high degree in this regard. His solutions to the problems created for the hero and his associates to overcome in the book series are interesting and incomparable. The fact that readers got so worked up about some of the solutions that many of them chose to write reviews about them tells me that the author has achieved that rarest of goals—a strong emotional response. The readers are obviously engaged and fully appreciate the characters that Terry has provided.

Now that I have finished the series, one of the biggest questions I must answer is whether I’d read the series again. A book series of this sort is best when it attracts a second or third reading. I must admit that I’m going to put Richard and Kahlan away for a while, but I definitely plan to take them for another stroll in a few years after I have forgotten enough book details to make the reading enjoyable once again. This is the kind of series where the surprises that the author has included are a distinct part of the series as a whole. You want to read because you don’t know what the author will do with the characters next.

Is this a good book series? It’s not Tolkien, in that the styles are different and the sort of fantasy differs as well. Terry produces a great book that’s an easy read and something that will most definitely entertain, but I don’t really feel it’s a classic. Of course, time could easily prove me wrong. Given what I know now, I’d still buy the books and I’d still enjoy them. I hope that Terry sees fit to produce another series—perhaps one that omits a few of the fit and finish problems with this one.

 

Developing the Reader Profile

A lot of people have written to ask me about writing books—about the techniques I use to develop a useful book. So far, all of my books are technical in nature. Not all of them are computer-related, but the majority are. The sorts of books that I write is changing and you’ll likely see me write books in other areas in the future. Whether I ever write fiction remains to be seen, but I do plan to branch out into other areas. No matter what I end up writing, I expect that I’ll use many of the same techniques when writing future books as I use to write my current books. Mainly, I need to find a way to communicate the ideas that I understand in a form that the reader can understand. It doesn’t matter what those ideas are—they exist in my head and I need to get them out of my head and into the reader’s head.

When I’m putting an outline together, I try to put myself in my reader’s shoes. Sometimes that means actually doing a little play acting and trying out things to see how I’d feel if I were the reader. Yes, conveying technology, or any other topic for that matter, means understanding the reader and how the reader feels. It means respecting the reader as a person and understanding that the reader has specific needs, as well as specific skills. Sometimes I’ll talk to the beta readers who are reading my books about issues or bounce ideas off the technical editor for my book. I’ll review materials online and see what people are discussing online. In short, I develop a profile of my reader and roll it around in my head until I can start to see a technology from the viewpoint of my reader. It’s not an easy thing to do, but it’s a necessary skill to develop.

In a way, I’m creating a relationship with what I think my reader will be. Beta readers do offer the opportunity to interact with actual readers, but my reading audience is relatively large, so it really does come down to creating a rapport with an idealized reader—one who encompasses everything I expect that my reader will be. The relationship takes form in a profile that I write down and review relatively often as I write the book. As I come across additional insights during the writing process, I develop the profile of my reader more fully. I keep constantly asking myself how I would talk about the subject at hand if I were sitting in a coffee shop (or some other relaxing environment) with the reader.

To a certain extent, I need to consider the reader’s need for self help. I can’t provide any reader with a specific answer for most problems the reader will encounter. To do so, I’d need to write immense books that no one would want to read because they’d be too bulky. I can provide the reader with knowledge and insights, but I can’t provide the reader with a precise response to any given problem because at the time I write my book, the problem is undefined. So the communication takes the form of ideas, rather than a specific procedure, in most cases.

Authors are hindered by a number of factors. The most important of these issues is the inability to communicate with the reader in real time. It’s the reason that I try to make myself so accessible through e-mail and by writing this blog. Even with these additional levels of communication, however, there are still barriers to communication. For example, I can’t easily read your body language to determine whether my response is actually helpful—I must make my best guess. When writing a book, I have to anticipate your needs and hope that my guesses are good ones because they are, in fact, guesses.

The reader profile doesn’t have to take a specific form, but it does need to provide you with a complete picture of the reader. Even if you define a few reader aspects incorrectly, having a reader profile will help you remain focused throughout the writing process on a particular reader. Here are the sorts of questions I ask myself when creating a reader profile:

 

  • What is the reader’s education level?
  • Will this reader understand these specific concepts?
  • When will the reader be reading my book?
  • How will the reader react to certain types of information?
  • Are there social biases I need to consider when communicating with this reader?
  • How does the reader view the subject at hand?
  • Is the reader likely to have language issues or special needs?
  • Will the reader be alone or part of a team?
  • How does the reader view me?


Most of my books require that I ask other questions, but this a good sampling of the sorts of questions that I ask myself. You’d think that with all of this effort spent considering my reader that I’d communicate quite well. However, there have been books where I ended up missing the reader completely with my profile. I directed the book at one audience, but another audience actually found the book more helpful and purchased more copies of it. When that happens, I get a lot of e-mail from a lot of disgruntled readers (and the online reviews are also less favorable). These failures require that I go back and review the premises on which I based my book and make corrections. I maintain statistics for the book, and if I get the chance to write an update, I tweak the reader profile accordingly to better meet the needs of the audience that purchased my book.

Anyone writing anything can benefit by creating a reader profile. If you currently write documentation, but don’t create a reader profile, I encourage you to do so because you’ll end up with a far better document as a result. As the years have passed, my profiles have gotten better, but I’m under no delusions that I’ll ever write the perfect profile. Even so, I’d never consider writing a book now without creating a reader profile first. Let me know your thoughts about using reader profiles at [email protected].

 

25 Years and Still Going Strong

It was 25 years ago today that my first article, “The Forgotten Chips,” was published in Byte Buyer magazine in San Diego. A good friend, Wally Wang, encouraged me to write it and even helped me put it together. It seems that IBM managed to leave quite a few important chips out of the original PCs design in order to offer a hobbled system at a price they thought everyone would pay and I was upset about it. Never, in my wildest dreams, did I imagine that I’d still be writing articles 25 years later. I can honestly say that I’ve never tired of writing articles—not that every article is easy or even well written. The best articles have been difficult to research and write, and sometimes the editor has to work mighty hard to turn my prose into something worthy of the reader’s attention. Still, this first article is special and only someone who has had something published can understand how I felt when I saw it.

ForgottenChips

It never occurred to me that I would eventually write books. In fact, this first article was slated to be my last. Wally encouraged me to write other articles after the first article turned into a success and I’m happy he did. In fact, we wrote our first five books together. However, the first book, “Illustrated VP Expert,” wouldn’t be finished until mid-July 1988 or accepted by the publisher until August 1988. So, this first article was followed by quite a few more before that first book happened.

IllustratedVP_Expert

I’m currently working on my 89th book and have lost count of the number of articles I’ve written in 25 years (in excess of 300, probably closer to 400). I’ve also accomplished technical editing on at least 63 books and achieved all kinds of other tasks associated with technical writing over the years. It has all been interesting. Nothing worth doing is easy though and there have been times where I’ve pulled my hair out trying to discern why something wouldn’t work. Schedules and deadlines have caused me more woe than I care to remember, but I wouldn’t have selected any other career for myself.

There is a secret to my writing and it’s you. My writing has always been about the readerhow to convey the importance of a topic or make the mundane more interesting. Delving deeply into technology is addicting, but I could have done that in other ways and earned a far better living (technical writers are notoriously underpaid, but you knew that already ). Getting an e-mail from someone who has benefited from something I’ve written makes my day special. It fills me with glee to know that you’re better off because I’ve written something that helps. As long as there is an audience who needs my help, I’ll continue writing.

The question I’m asked most often is where I get my ideas from. That’s a hard question because there isn’t a single source of ideas. Some ideas are easythe publisher or a client requests that I write about something. A number of ideas came to me as I was doing something else or even in my sleep. What can I say? I dream about technology. A few ideas were wrought from the forge of deep confusion and consternation as I struggled to achieve seemingly unreachable goals. My wife has inspired me more than once by asking simple questions that would never have occurred to me. Readers provide more than a few ideas and sometimes a book happens because readers have complained about a book that came before. More than a few of my ideas come from experimentsI set something up on my computer, try it out, and see what happens. In this last respect, I get paid to play.

Where do I plan to go from here? Well, I’ll definitely continue to write technical books. Most of my books are about Microsoft products, but I’ve also written about other applications and languages. A few of my books are hardware related and I even wrote a home security book. I’ve written certification guides in the distant past. All of these sorts of books still interest me and I’ll continue to write them. However, an author needs challenges. I’m currently working on ideas for self-sufficiency books. I may eventually write a book of poetry or two. Perhaps I’ll even get into some fiction. Precisely where I end up depends on what sorts of ideas I get and what opportunities present themselves.

This year saw me starting a blog unlike any other blog on the Interneta diverse blog that encompasses everything I do so that you can get to know me as a person. As a reader myself, it’s hard sometimes to imagine what an author is really like simply by reading books that author has written. This blog is meant to bridge that gap for you. I hope that you’ve enjoyed my writings here and in other places over the years. I’m always there when you need me. Here’s to another 25 years. Thank you for your support!

 

Is the Technical Book Dead?

Some time ago I wrote a post asking the question of whether paper books would go the way of the dinosaur (see Paper or e-Book? for details). I recently came across another question, one of whether books will exist at all in the future (at least, technical books). It seems that at least some people now think that online articles (referenced through Google and other search engines) will answer all of their questions and that books are passe. We’ve heard the same death knell sounded before and this one is just as false as those that came before.

There was a time when people said that radio was dead because of television. Fortunately for everyone, the doomsayers were wrong. Radio is still with us—albeit in a different form from those days gone by. In fact, when something proves useful enough, it remains viable and in use despite the appearance of newer technologies. Because of the comments I received from the Paper or eBook? post, I strongly believe that for this reason alone, books will remain one method of choice for obtaining technical information.

Online media does have many good attributes. I have no doubt that it provides a useful and welcome adjunct to books. I use online media myself for some of my research and for general information. From my perspective, online media has the following advantages over books:

 

  • Timely: There isn’t any way a book will ever beat online media to market. Books can’t even beat magazines to market.
  • Succinct: One misconception about online media is that there is no word limit. However, I haven’t ever seen a truly viable book-length online resource. Online resources are broken into small pieces that someone can digest in just a few minutes.
  • Updateable: Both magazines and books have strict limits on updates. If the author makes a mistake, the publisher must provide a separate errata that the reader may not ever find.
  • Inexpensive: There are paid online resources, but they’re in the minority. Most online resources, including this blog, are free. Some online resources do rely on subscriptions and a few are purchased as individual content items (much like a book), but I doubt that paid online media will ever take off as a major industry because it suffers from a severe problempeople tend to post the purchased online media on other sites so that others can download it free (often without any knowledge that the content is pirated).
  • Searchable: Online media has all other forms of communication beat when it comes to searches. You can find what you need quickly, provided that the search engine isn’t overwhelmed with junk listings.


There are probably other reasons for using online media, but these reasons best serve the technical reader. It would seem that these reasons alone would compel a potential reader to use online sources. However, books continue to offer value in other ways. Readers will continue to flock to books (either in paper or e-Book form) for these reasons:

 

  • Accurate: Because books are somewhat permanent, the vast majority are edited by someone other than the author. In fact, most books have several editorseach with a different specialized skill set. Multiple sets of eyes tend to reduce the probability of errors; although, some errors are bound to creep into any form of writing (see my Errors in Writing post for details).
  • Fewer Fads: Books tend to focus on technology that has proven its worth, rather than following every fad on the market. Business runs on proven technology. Someone who is looking for time-tested technology will look in a book, not at an online resource.
  • Author Availability: Having worked through the vagaries of community support myself, I know that it sometimes works, but often doesn’t. A good book author will provide a certain level of support and will answer reasonable questions about book content. You simply don’t get this sort of support using online media.
  • Cohesive: A book offers something that online media can’t in the form of a cohesive work. Whatever the topic is, a book will offer a progression of some type and lets you see a technology from a long view, rather than as snippets.
  • Less Junk: Online media can be clogged with all sorts of junkmaterial that has nothing to do with the topic at hand or that you simply don’t require. Books are more focused, stick to the subject, and are easier to visually filter. As a consequence, you can spend a lot less time getting what you need from a book.


There are some personal issues I have with online media. Many of the books and paper magazines I read are professionally written by authors with the experience to write well. Yes, some online media is also professionally written, but you’re just as likely to run into information written by an unknown entity. Because of the anonymity of the Internet, I find myself checking and rechecking information I obtain from it. Normally, I require at least three different sources, written by different authors, to confirm a fact from the Internet. I’m more likely to accept material from the books of authors that I know well simply because I have read the works of these authors for years and I’ve built up trust in what they have to say. Yes, it’s true that you should verify anything you read, but I find the Internet resources I read are far less reliable.

Much of the confusion about online media has nothing to do with the material itself, but with the authors. When you work mainly with books you hear the voices of a few well-known authors who have helped you over rough spots for many years. The Internet provides a cacophony of many voices that I don’t know. I don’t know how to read between the lines with these authors or understand when I need to consider the author’s personal biases. Again, this is a personal issue, rather than something you’ll need to consider, but if you’re like me, you do need to think about it at least.

I also find that the purpose of online media and books differ. Online media focuses on informing someone of a fact. When you read an online source, it’s to find a bit of information you need now in the fastest manner possible. On the other hand, books tend to focus on teaching. A book presents a topic in a way that helps the reader learn about the technology so that there is a better chance the reader will be able to answer questions about the technology later. This difference in focus is the reason I feel both technologies will remain useful.

As with the radio versus television discussion, I don’t think either online media or books are going to go away. They each have something valuable to offerthey both have their place in your technology toolbox. The ability to choose the right tool, at the right time, has always been the mark of a professional. If you rely exclusively on online media to obtain your technological information, you’re at a distinct disadvantage when compared to the person who uses both online media and books. How do you get your information? Let me know at [email protected].

 

Review of ADO.NET 4 Step by Step

Microsoft has created a plethora of database technologies over the years. The managed form of ActiveX Data Objects (ADO) is just another in a long series of ways to access data from within an application. Because some older technologies, such as Open DataBase Connectivity (ODBC), are so entrenched, there isn’t any way that a single book can tell you everything there is to know about working with databases from a Microsoft perspective. When you add in all of the potential database products (SQL Server, MySQL, AskSAM, Oracle, DB2, and many, many others), the task becomes impossible. So, when I reviewed this book (supplied to me by the publisher), I didn’t consider completeness from the perspective of providing a single source solution to database management. In fact, given 25 years of experience, I feel that such a book is impossible to write—at least as a single useable volume. When shopping for a database management book, be sure you look for a book that covers both the required access technology (such as ODBC, ADO, or ADO.NET) and the database manager (such as SQL Server or MySQL) that you need for your project.

Tim Patrick has written ADO.NET 4 Step by Step with ADO.NET and SQL Server in mind. In fact, the book is incredibly focused and I applaud the author’s single minded devotion to this combination of technology and product. Other database books I’ve read just don’t seem to get the idea that watering down the message won’t work. While it might be possible to include multiple products in a book, trying to cover multiple technologies seldom works because there is too much to discuss and, even if the author successfully writes about each technology in an unbiased way, the reader tends to become confused. So the first thing you must know about this book is that it’s strictly about ADO.NET and SQL Servertry another book if you need any other combination.

This is the second Step by Step book that I’ve reviewed (see Review of HTML5 Step by Step for details of the other review). As with that other book, this book is heavy on hands on involvement and light on theory, which is just fine because many people learn better using hands on tasks. However, database management is a more complex task than creating a Web page because you have data integrity rules and other issues to consider that simply don’t come into play when working with a Web site. (To be fair, Chapter 12 does discuss data integrity, but mainly from a hands on perspectiveyou end up understanding how, but not what, why, or when.) I mention this because the hands on approach in this book does help you create applications fast, but it doesn’t provide you with everything you need to know to create good applications. For example, the discussion of ADO.NET components consumes a scant two pages. Database normalization is covered in a two paragraph sidebar in Chapter 2. The author is cramming a huge amount of theory in an incredibly small space and glossing over a lot of details. I would have liked to have seen some notes, tips, or sidebars with online resources as a minimum so the reader could fill in the missing theoretical details later.

The best part about this book is the activity. I was able to create a basic application in less than an hourfar faster than any other book I can remember using, even my own books. By the time you reach the end of Chapter 1 (about 15 pages), you’ve already learned how to create a connection to your data. Chapter 2 has you creating tables using several different techniques.

I loved the quick references at the end of each chapter. They act as a quick method of ensuring you got all of the details out of each chapter. If you read the entire chapter, you can go back to the quick reference later as a reminder of the things you learned.

Patrick provides a relatively good discussion of every aspect of managing the database and the information it contains using both C# and Visual Basic examples. Support for both languages is a good addition to the book. In addition, the support isn’t sporadic as it is in many books that favor one language or the otheryou’ll find most information discussed equally in both languages so neither language feels like a second class citizen.

Chapter 8 does discuss external connectivity, but it feels like Patrick is discussing the topic from the perspective of the developer who normally uses ADO.NET exclusively, which is absolutely correct for this book. You’ll discover how to interact with OLE DB and ODBC data sources. Unfortunately, as with many other areas of the book, the author digs right into using the connections without providing any theory whatsoever. This is another area where it would have been nice to have resources provided so that the confused reader could learn more. Still, everything works as promised, so there is something to be said for that. Many readers don’t want to know how it works, they simply want to know how to do something black box style and this chapter fits in perfectly with that mindset.

For me, the highlight of the book was Chapter 16. In this chapter, the author cuts through all of the usual garbage associated with objects and shows the bare essentials to use technologies such as LINQ. This is possibly the shortest, yet best conceived, coverage of the topic that I’ve seen anywhere. Again, you’ll find yourself lacking theoretical details, but the how discussed in an elegant way that will enable most readers to make use of these newer technologies in an incredibly short time. In fact, Part IV of the book goes on to cover LINQ in detail. I’m convinced that LINQ will eventually become the data query technique of choice because it’s relatively easy to understand, requires little code, and generally produces optimized results with little effort on the part of the developer. Obviously, the author agrees with me on this matter.

Overall, ADO.NET 4 Step by Step is a fantastic book for teaching you the “how” of database management using SQL Server and ADO.NET. In fact, you’ll learn how to perform many tasks that other tomes simply leave out. However, if you want to know why you’re doing something, when to do it, or understand the theory behind a task, you’ll need another book. I recommend this book to anyone who wants to get started quickly. You can always obtain a theoretical book to fill the gaps in your knowledge and you experience programming scenarios you don’t understand. The best addition the author could make to a next edition is some online sources to help the confused reader. Writing a database management book is tough, but it’s important to recognize that there are limits to what you can do and provide the reader with help in overcoming those limitations.