When you see the right thing, do it — this may look like
more work in the short term, but it's the path of least effort in the
long run. If you don't know what the right thing is, do the minimum
necessary to get the job done, at least until you figure out what the
right thing is.
To do the Unix philosophy right, you have to be loyal to
excellence. You have to believe that software design is a craft worth
all the intelligence, creativity, and passion you can
muster. Otherwise you won't look past the easy, stereotyped ways of
approaching design and implementation; you'll rush into coding when
you should be thinking. You'll carelessly complicate when you should
be relentlessly simplifying — and then you'll wonder why your
code bloats and debugging is so hard.
To do the Unix philosophy right, you have to value your own time
enough never to waste it. If someone has already solved a problem
once, don't let pride or politics suck you into solving it a
second time rather than re-using. And never work harder than you
have to; work smarter instead, and save the extra effort for when
you need it. Lean on your tools and automate everything you
can.
Software design and implementation should be a joyous art, a
kind of high-level play. If this attitude seems preposterous or
vaguely embarrassing to you, stop and think; ask yourself what
you've forgotten. Why do you design software instead of doing
something else to make money or pass the time? You must have
thought software was worthy of your passion once....
To do the Unix philosophy right, you need to have (or recover)
that attitude. You need to care. You need to
play. You need to be willing to
explore.
We hope you'll bring this attitude to the rest of this book. Or,
at least, that this book will help you rediscover it.