The Thread 6
Hard-Coding Information That Will Change
in the Future 6
Failing to Clean Up Temporary Code 7
Making Comments Impossible to Ignore
8
Overloading the Value of an Identifier
9
Overloading the Mind of the Writer or
the Reader 10
Creating Cryptic or Cute Variable Names
11
Using One Argument to Change the Meaning
of Another 11
Naming with Too Much (or Too Little)
English 12
Casting Types: Smart or Stupid? 13
Building Monolithic Code 14 Disregarding the Difficulty of Maintenance
16
Lessons 18
2 Tricks
That Destroy Portability 19
The Thread 20
Embedding Machine Dependencies in What
Looks Like Portable Code 20
Depending on the Permanence of Message
Texts 21
Inventing Your Own Programming Language
22
Depending on Internal Compiler Details
23
Using Half-Significant Things That Could
Become Significant 24
Arbitrarily Limiting a Tool's Capacity
27
Optimizing for Something You've Got Lots
Of 27
Ignoring Compiler Warnings 28
Lacking -- or Ignoring -- Information
from the Compiler 29
Depending on the Compiler to Be Consistent
Across Environments 31
Not Imposing Controls Over the Installation
Process 32
Lessons 33
3 Stupid
Design Tricks 34
The Thread 35
Failing to Design Your Program Before
You Code It 35
Failing to Consider at Least Three Design
Alternatives 37
Making it Overly Complex 37
Designing Without Thinking 39
Missing the Key Driver of Risk 41
Being Penny-Wise and Pound-Foolish on
Moral Grounds 41
Failing to Think in Terms of Trade-Offs
42
Binding Too Early or Too Late 43
Writing a Program When No Program Is
Needed 45
Lessons 47
4 Stupid
Design Document Tricks 48
The Thread 49
Leaving No Design Artifacts and No Garbage
49
Mistaking Documents for Documentation
51
Coding from the Wrong Type of Document
52
Mistaking Documents for the Design 53
Failing to Design Your Documents 54
Simple for the Programmer; Incomprehensible
to the User 55
Thinking "I'll Be Gone By Then"
57
Lessons 60
5 Tricks
Arising From Social Inadequacy 61
The Thread 62
Career Development Through Co-Dependencey
62
Using Technical Tricks to Avoid Social
Situations 62
Not Documenting Your Assumptions
63
Not Asking for Help 64
Preventing Others from Learning, by Being
Impatient 65
Failing to Notice Your Fault Feedback
Ratio and to Do Something About It 66
Not Documenting Why Choices Were
Made 66
Lack of Feedback Doesn't Necessarily
Mean the Code Was Good 67
Let Your Tools Do Their Work 68
Keeping in the Stuff That's Corrected
by Other Stuff 69
Replacing One Big Mess with an Unending
Series of Small Messes 71
Give a Fresh Start When Needed 73
Failing to Use Your Own Product 73
Lessons 75
6 Experts
and Gurus as Leaders 76
The Thread 77
"Guru" As a Degrading Term
77
Not Labeling, but Hypothesizing 79
Be an Expert Who Can Teach Expertness
79
Be Recognized by Other Gurus as a
Guru 80
Transcend the Realities Others Live
In 81
Know the Difference Between the Map
and the Territory 82
Be Content to Be Content 84
Be Accessible and Humble 84
Be Emotional 85
Lessons 87
7 The
Leader as Learner 88
The Thread 89
Learn at a High Level 89 Be Both Inventive and Traditional
90 Immerse Yourself in a Virtuous Learning
Cycle 90 Have Personal Experience 91 Be Self-Aware 92 Be Able to Communicate Your Expertise
93 Be a Guide to Spiritual Enlightenment
94 Do Not Need to Be Omnipotent 95 Remember That There Are Some Things
Even a Guru Can't Do 95 Lessons 96
8 The
Expert as Teacher 97
The Thread 98
Provide More Choices 98
Provide Distinctions 98
Let Them Experience Their Own Experience
99
Provide a Discovery Trail 100
Don't Confuse Beginners 101
Be Up-Front with Oversimplification 103
Select Students 103
Engage Each Learner 105
Connect with the Learners Where They
Are 106
Teach on a "Pay as You Go"
Plan 108
Provide the Questions, Not the Answers
110
Have a Sense of Timing 112
Help People Discover What They Already
Know 114
Lessons 115
9 The
Courage to Teach in Any Direction 116
The Thread 117
Give Your Boss Some Credit 117
Balance Self-Worth and Safety 119
Luck Is Always a Factor (Especially
If You Help) 120
Don't Confuse Courageous with Dumb
121
Is What You're Getting Worth What
You're Paying? 123
Plant a Seed; Cultivate; Be Patient
124
See Them As Human Beings 126
Lessons 127
10 The
Courage To Be Yourself 128
The Thread 129
Don't Try to Be a Generation Younger
130
Dress to Make Both of You Comfortable
132
By and Large, They'll Have to Resolve
Their Own Chaos 132
If It's Not a Good Fit, Don't Do
It 133 Adapt in Order to Communicate 135 Is It the Hair, or Is It the Arrogance?
135 Who You Are Is More Important Than
What You Wear 136 Lessons 137
To order this book by
credit card directly from Dorset House
in New York, please call (800) 342-6657 or (212)
620-4053, weekdays, 9am to 6pm. Alternatively,
print out our Faxable
Order Form and fax to (212) 727-1044.
To order this book from an
online bookstore, please see above.
To purchase at a bookstore,
contact our Recommended
Booksellers
to verify availability. Any store can order from
Dorset House using the book's title and ISBN number.
Also, bookstores can order our books through Baker
& Taylor.
We'd like to make it easy
for you to order, so please contact
us at any time for help!
DORSET HOUSE PUBLISHING CO., INC. 353 West 12th Street New
York, New York 10014 USA 1-800-DH-BOOKSor 212-620-4053, fax 212-727-1044