Daily Archives: September 8, 2012

Why I don’t do step-by-step instructions

Sometimes I refuse to give help, especially when people ask for “step-by-step instructions” (only topped by further requests for videos showing exactly what to do). Why? Because I’m not in the business of hand-holding. I’m not your father, Luke.

Three reasons:

  1. It doesn’t teach you anything.
  2. It’s dangerous not to think for yourself.
  3. You didn’t give me anything, why should I give you even more than I’ve already given you?

Asking for a step-by-step guide for something is like saying “do my work for me, I don’t want to have to think about it”. Unfortunately, this rarely works, or if it works then only for one very specific situation, and others won’t benefit from it.

Consider a child and its father going down the street. The child suddenly says “Daddy, I want to go to the supermarket!” Which is across the street. Now this child has never crossed a street, and its dad must decide how to grant this wish. One solution is to take his child by the hand, head over to the traffic lights, wait until they turn green, cross the street, and head back to the supermarket on the other side. The child doesn’t have to do anything but tag along. It can happily do completely unrelated things in the meantime, e.g. goof off, read a comic book or simply stare at the pavement all the time. It doesn’t have to think.

The problem with this solution is that the child doesn’t learn anything in the process. The next time it will be in a similar situation it might be able to repeat these steps, but it will not be able to adjust to unforeseen circumstances. What if there are no traffic lights but only a zebra crossing? Why do I have to walk all over there to those lights anyway, can’t I just cross the street right here?

The better solution is for the father to patiently explain why each step is done. What is its significance? What are the dangers? That way the child will learn to be able to apply those steps in different situations. Yes, this is exhausting. And it brings me back to my opening statement: “I’m not your father.” I have no obligation to spend that much time on your education.

To the “it’s dangerous” part: Too often I’ve seen people simply copy & paste stuff they’ve read one a guide somewhere without even thinking about what they’re doing. This sometimes works, but often enough it doesn’t. Yes, you may have to replace “PASSWORD” in the example with your actual password. Yes, simply pasting “rm -rf /” without knowing what it does is incredibly stupid. If you don’t think about what you’re doing then you’re in for very nasty surprises, the most harmless being that it just doesn’t work.

The last point is “You didn’t give me anything, why should I give you even more than I’ve already given you?” I’ve spent countless hours writing software and the documentation for it. I’ve spent probably just as many hours giving support via emails or forum posts. And all you do is take without spending any effort yourself. I don’t want money, but I also want a basic appreciation for the worth of my time. Show me some effort (e.g. by describing properly what you’ve done so far, what your problems where in the process and what your specific problem is) and I will almost always spend the effort on a proper explanation myself.

Now I’m pretty sure several people will feel offended and think me a pompous, self-righteous ass. I don’t care. This is my time to spend, and I chose to spend it with people who show they don’t need to be spoon-fed.