There are those moments where I feel the need to share. Sometimes it is when I do something small like fix a bug, or even smaller like when I first really understood what the value of π (PI) actually refers to. It feels great and when it happens I want to share. Unfortunately when I talk about it, the conversion from thoughts in my head to spoken words is a lossy transaction. I end up being a complete bore.
It's much easier when my interlocutor is a friend, because he can tell me early on to shut it. I can be talking about an interesting subject but the medium of delivery ruins it all. Saying "A good programmer never assumes the user input is in English" may result in agreeing nods from your listeners but I bet they will it forget as soon as you turn around.
If you tell a story of how you struggled with a bug and couldn't understand why the user input was garbled. How, through painful trial and error, you figured out it was all because you were assuming the user would only input ASCII characters. This could make a better impact.
The older I get the more I realize that it's not the smart guys, the good guys, or the hard working ones that succeed. The person that can tell the best story is the winner.
Sometimes I start telling a joke, then in the middle of it, I realized I forgot to mention an important part of the story. So I go back to the beginning to give a back story, then jump back into another part. A lot of resemblance to the GOTO statement.
And then you have the great story tellers. Every word they say is carefully selected and is connected to the next. They talk slower. If they were to speed up, it would be to create an effect in the story. Nothing is left to chance.
The best tutorials I read on the web had something more than just sharing data. The authors were storytellers. One example is this tutorial dated from 2003 if I remember correctly. It was the first tutorial I read that made sense and helped me learn PHP. Not only it is informative, but you can't help but smile as you read it. A happy student is a productive student.
Storytelling is hard. But like any other learnable skill, it takes practice to master it. I am by no mean a good story teller. But since I have decided to improve my writing, it is only natural for me to explore writing something other than technical discoveries.