Thinking is, for most people, more difficult than following rules blindly. For those who find it easier to think, thinking while following rules is still more difficult. Few indeed are those who think deeply, and follow, break, and make rules with art, style, and discretion.
Many things can be taught, perhaps even thinking; but it's tough. I often wonder yet if I know how to think myself.
My personal meta-rules are:
- Study and learn rules.
- Try stuff and see what works.
- Ask, "What if?"
- Pretend my project and my role are much more important and public than they really are, then ask, "Does that expedient still look okay?"
- Try other stuff. Be wrong.
- Ask for help. Pay particular attention to help that annoys or upsets me.
- Sleep on it.
- Study more. Study more. Study more. Study more. Study more.
- Try more other stuff. Be right.
- Make a rule but don't expect anyone else to follow it. Be an example.
- Remember that some rules are stupid but so widely accepted that following them may be smart.
The anecdote goes that a stonemason building a medieval cathedral was questioned. "Why are you dressing that block so carefully? That side will be cemented into the wall and hidden." The mason said, "God sees that side, too."
I agree that the best part of PBP is that Conway explains why for each rule. I'm free to accept or reject each rule but I can't follow the book blindly, email him, and complain: "But you said Do This!"
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.