I wrote this Koan a while back. It amused /r/ruby:
When Matsumoto first came to these shores, he met a precocious young hacker who was strong in the way of Perl, which had many practitioners then.
“Matsumoto,” the young man said, “why should I learn your foreign Ruby? I am strong in the way of Perl, and I have yet to find a problem it is not flexible enough to solve.”
Matsumoto smiled his kind smile and said, “One does not learn Ruby for oneself. One learns Ruby for others.”
“Ha,” the young man said, “then your way is not for me. I am not the cooperating type. I work on my own projects and my projects alone. No one but me reads my code.”
Matsumoto bowed his head and said, “All hackers cooperate, even you.”
“You are a fool, Matsumoto! Did I not just say I work alone?”
To this Matsumoto said, “Even those who work alone, cooperate with all the people they once were and all those they will become.”
This one makes no sense...
"A novice was trying to fix a broken Lisp machine by turning the power off and on.
Knight, seeing what the student was doing, spoke sternly: "You cannot fix a machine by just power-cycling it with no understanding of what is going wrong."
Knight turned the machine off and on.
The machine worked."
At risk of exposing my own misinterpretation of it, it does make sense if you read the section where Tom Knight is listed as a primary developer of LISP machines. I believe the implication is that he understands it, whereas the novice does not, and the machine responds to his touch.
Knight knew enough to leave the machine off long enough for the capacitors to discharge so the machine started from a clean slate. The Novice was turning the machine back on too soon.
At greater risk of exposing my misinterpretation of it than jat850, my understanding was that his domain knowledge allows him to solve the problem directly rather than fumbling around with generic solutions (perhaps solving it accidentally). Some quality of the action affects the outcome, even though the approach is pretty much the same.
Some problems with my router call for a simple power cycle; others call for a power cycle with ~30 seconds unplugged from power. Someone without much knowledge of the router might do the same thing as me (power cycle), and it might even occasionally work (if s/he unplugs it, goes to make lunch, and comes back), but my domain knowledge enables me to solve the problem more consistently (seemingly magically).
Yes, that's the joke. It's not my favourite. A good hacker Koan should end with a non-trivial insight - this one is just trying to be funny, unless I'm missing something deeper.
I always interpreted it as a commentary on the difference between tool and application. You can both start and stop a wildfire by setting a single bush alight. It takes a fireman to know the difference.
I understand it to mean that the novice might be able to make the machine work by power cycling it, but he couldn't be sure he'd fixed it unless he understood the root of the problem.
Also essential is the seminal work The Tao of Programming, which is the first that assembled hacker koans into a published physical form, if I'm not mistaken.
When Matsumoto first came to these shores, he met a precocious young hacker who was strong in the way of Perl, which had many practitioners then.
“Matsumoto,” the young man said, “why should I learn your foreign Ruby? I am strong in the way of Perl, and I have yet to find a problem it is not flexible enough to solve.”
Matsumoto smiled his kind smile and said, “One does not learn Ruby for oneself. One learns Ruby for others.”
“Ha,” the young man said, “then your way is not for me. I am not the cooperating type. I work on my own projects and my projects alone. No one but me reads my code.”
Matsumoto bowed his head and said, “All hackers cooperate, even you.”
“You are a fool, Matsumoto! Did I not just say I work alone?”
To this Matsumoto said, “Even those who work alone, cooperate with all the people they once were and all those they will become.”
Upon hearing this, the young man was enlightened.