Playing With Matches & Running With Scissors
September 30, 2005 • Vol.27 Issue 39
Page(s) 23 in print issue
For the past several weeks I’ve been working on the “Getting Started With ADO.NET” chapter of my book. Because there are so many developers out there that have not made the transition to ADO.NET, I think it’s important to get these folks started out on the right foot. Based on the volume of questions in the newsgroups, it’s clear that more and more companies are (finally) migrating to .NET. I’ve stopped lurking on the ADO classic groups as their questions all seem the same and for the most part have already been answered.
It’s comical though to see the students get up on these sites and ask us to do their homework for them. Although I think it’s great that colleges are starting to teach .NET technology along with C# and Visual Basic .NET, it’s sad that so many students think they can get the answer from someone else instead of working it out on their own.
Learning From The Internet
These newsgroup threads also seem to be dredging up the same questions over and over again. Frankly that’s one reason I write my booksso I don’t have to give a short 40-word answer that does not really cover the whole issue. The problem is that some of these developers seem to have learned what they know from the Internet and not from a comprehensive treatment of the subject. I’m convinced that an hour-long session or even a day-long workshop won’t build a foundation solid enough to permit developers to make informed decisions about architectural choices or implementation details.
Although the Internet has a lot of information, it’s often presented in relatively small, jagged chunks that don’t really fit together into a connected picture. That’s what books are formine and the host of others. Don’t get me wrong; I think workshops (like the one I’m doing for VSLive in Orlando Oct. 13) can be a great way for experienced developers to get a better understanding about what’s new in ADO.NET 2.0 and why they should care. I also think that these conferences need to address the needs of those developers just getting startedthose that don’t really know that a garbage collector in .NET is not a union laborer. We can pick out the new folks pretty easily. They are the ones that want to know why the DataReader is not like a Recordset, why they are getting a timeout from the connection pool in their ASP application, why they can’t get connected to an SQL server just inches away, and what’s the best way to pull down 180 million rows into client memory.
A Mentor’s Responsibility
Those that answer questions on the newsgroups really share an important responsibility. As I mentioned in my blog this week (www.betav.com/blog/billva), when we “experts” give advice, we must do so intelligently. Suppose your 5-year-old granddaughter comes to you and asks, “Granddad, where are the matches?” You would immediately discuss with her the dangers of playing with fire. However, if she asked “Where can I find a big bucket?,” you might tell her to look in the garage as you expect she’s big enough to play with a bucket. After all, what harm could she do with a bucket?
The problem is that we often answer similarly important questions on the newsgroups without first asking, “What do you expect to do with those 180 million rows?” or “What are you really trying to accomplish?” When I see a newsgroup question, the answer is sometimes obvious. I have to be careful to balance the short, quick answer (“Just use a DataReader and loop until Read is True.”) with the “right” answer, which is often a question (“Are you nuts?”).
It’s our job as mentors to think about the question. Why is it being asked in the first place? What led that person to the conclusion that what they are doing makes sense? What fundamental problem are they trying to solve? Am I really keeping them safe and helping them stay out of trouble by simply telling them where to find the matches or that big bucket?
No, as some point out to me from time to time, I don’t know all the answers. However, I like to think that I know what I don’t knowor at least I think I do. But knowing the answer is not really enough.
Touring With INETA
As a side note, this week I was pleased to be informed that INETA (International .NET Association, www.ineta.org) has taken me on as a speaker. As a result, I’ll be speaking at .NET user groups all over the country (and possibly the world). My first talks are in Cleveland and Eau Claire, Wis. (I’m planning to watch “Fargo” several more times to get the dialect down before I go.) This also means that your user group can invite me to attend. I really enjoy meeting new people and putting faces and handshakes with names.