Over the last week I’ve started and trashed two blog posts. Let me tell you, that’s painful. You get some great idea and then it all goes south. For example, I was going to explain the difference between a table/heap scan and a clustered index scan. The problem was, I ran into gaps in my knowledge, some outright errors in my beliefs on how data was stored, and really faulty conclusions drawn from those facts and a less than thorough set of tests. I’m not even going to tell you what went wrong with the other notion. Luckily, all this was behind the scenes so I didn’t post my ignorance for all to see. Since I’m not offering you a chance to point & laugh (in this instance), you might be wondering why you’re here.
I’m using my failures to come up with a good technical blog post as a teaching moment. Or, to put it another way, I need to get a blog post put together, so describing why I don’t have one might be a way to do that. Or, to put it another way, I’ve got a stack of lemons, might as well try my hand at lemonade (although, is there a way to ferment lemons? hmmm, more research on this needed, note to self). The point I want to make? Blogging, even when you mess it up and put together bad information, is a great way to learn.
It’s entirely possible to simply slap together a blog post and put it up. No lie. You can do that. I’m fairly certain some bloggers do. I could do that. Better still, you could go and copy Books Online or some other blogger. But, if you are trying, as I am trying, to actually have a blog that’s useful, more is needed. So you think up an idea, what is the difference between a clustered index scan and a heap scan. Then you start writing down what you know. For example, heaps aren’t stored the same way as clustered indexes. Heaps only have pointers back to the Index Allocation Map, where as clusters are stored with a doubly linked list of pages. Then you start thinking up ways that this is proof of something. Good, bad, indifferent, you have to tell a story about the information. That’s where things went south for me. I’m not going to go into details on all my mistakes. Suffice to say, mistakes were made.
The point is, while I messed things up, in my effort to get it right, I had to run tests. I had to read up on data storage mechanisms. I did searches on the internet to see what people I trust said about this stuff. In short, I learned a lot. And yeah, I started from a bad point and made a number of mistakes, but my efforts to ensure that what I was putting out wasn’t complete garbage resulted in more knowledge, if fewer blog posts.
This is one of the best things about blogging. If you’ve ever considered starting, I would encourage you to try it out.. I get three things out it. First, I learn. I have to learn to put these posts up. I try hard to make sure I’m not putting up utter garbage. I may make small errors, but large ones are hopefully not here. Second, I get a chance to organize my thoughts. Writing down how something works, or at least your understanding of how something works, is extremely helpful in furthering that understanding. This is especially true when you’re attempting to share with others, to teach. Nothing so much improves mastery of a skill as teaching that skill. Finally, I get a great set of documentation. When someone asks me a question on something I’ve blogged about, I can point them to my blog. When I need to remember something that I’ve done before, I’ve got documentation I can use. Blogging is an excellent tool for the knowledge worker. And, of course, an added benefit, if you get something right, you can share with others.
That’s it for lemonade. If you’re looking for more information on heaps, go read Kalen Delaney’s (blog|twitter) Internals book, Paul Randal’s (blog|twitter) blog, Kimberly Tripp’s (blog|twitter) blog, or Tibor Karaszi’s (blog|twitter) excellent blog, especially this post on heaps and inserts. In the mean time, I’m going back to the drawing board, trying new things in order to come up with some more posts to keep this place hopping. If you want to try to move towards mastery yourself, start blogging.
Of course, the real problem with this post is, this is the only one like it I get.