FROM THE NOTEBOOKS OF LAZARUS LONGINT
-------------------------------------

(With apologies to the late Robert Heinlein)

* Work smarter, not harder. Sometimes the answer you're looking for is 
  simpler than what you're doing right now. Nothing beats falling back to 
  fundamentals.
  
* If you're going to write clever code, document it well. You may have to 
  look at it again a year from now.
  
* There is in old saying to the effect that, after you spend hours banging 
  your head against a bug, someone completely foreign to the situation will 
  walk into your office and immediately spot the flaw. It's true, and 
  something you should use often. If necessary, lure them in with food.
  
* Know yourself, and your limitations. Extend the frontiers of your 
  capabilities early and often. Techniques from one discipline may well 
  apply to another, so generalise. When nobody's looking, assign yourself 
  tasks in things you've never tried before and then try to do them. Don't 
  be afraid to make mistakes. Mistakes should be framed and hanging on the 
  wall.
  
* Read.
  
* An ounce of analysis is worth a pound of debugging.
  
* You can only make your code so fast and so small. After that, you're 
  spending more time on it than it's worth. If you add 25% more time to 
  squeeze out 5% more performance, you're wasting your time and money. Move 
  on to something else.
  
* At some points, depth of experience is more important than breadth. Even 
  though you may be second-best at everything, sometimes you need the help 
  of the "first-best" at some particular thing. Find that person and ask 
  questions.
  
* Be kind to the technically impaired. Every nonprogrammer on the planet 
  can do five or six things you can't, and do them better than you'll ever 
  be able to. Trade talents, not contempt.
  
* Regarding trying to revamp existing products when you're the new person 
  on the block: Never become involved in a debate that was going on when you 
  entered the room. You don't know who's on what side, or what's already 
  been said. Worse, you might end up allied with somebody you don't like.
  
* Never believe your own PR. Nobody could be THAT good.
  
* Never test for an error condition you don't know how to handle.
  
* Beware of being an absolute purist: purely OOP, purely modular, purely 
  C, purely Pascal, purely BASIC, purely ASM. Only academics and the 
  immature are absolute purists: The experienced remember that hybrids are 
  generally stronger than purebreds, and terrier/collie mixes are usually 
  less fussy than teacup poodles.
  
* Of course you're a genius. This is a secret best kept to yourself.
  
* Never confuse intellect with wisdom. Intellect is knowing what or how. 
  Wisdom is knowing when and why.
  
* Admit when you're wrong. Demand the same from others - including upper 
  management.
  
* Never let nontechnical management tell you what is and what is not 
  technically best. Never tell them what is and is not good management. Grit 
  your teeth if necessary.
  
* Don't feel that anything's wrong when you find yourself wandering the 
  hallways muttering to yourself. Most people don't do enough of it.
  
* Don't be intimidated by deadlines. You can always explain why the 
  project is late. What you don't want to explain is why three years of 
  somebody's important data went into the dumper due to a bug you didn't 
  catch because you were working feverishly  to beat the deadline.
  
* Get a hobby. If necessary, get a life.
  
  
(Copied from PC Techniques Oct/Nov 1990)