TRICKS OF THE TRADE

  • Work on the right problem.
  • Explore the design space of solutions.
  • Look at the data.
  • Use the back of the envelope.
  • Exploit symmetry.
  • Design with components.
  • Build prototypes.
  • Make tradeoffs when you have to.
  • Keep it simple.
  • Strive for elegance

back of the envelope 9, 15, 25, 62, 64, 67-76, 78, 127, 145, 176, 183-184
background data 3, 15, 18, 25, 87, 125, 144, 176
debugging 12-13, 15, 41, 47-50, 54-57, 72, 87, 117-118, 131, 139
design, algorithm vi, 11-20, 62, 64, 77-86, 91, 115-122, 127-129, 131, 149-157
design levels 59, 61-66, 92, 96, 122
design process 7, 17, 31, 64-65, 67, 72, 83, 100, 106, 129, 144, 175
design space 4-5, 108, 123, 127-130, 145, 176
elegance 6-7, 9, 14-15, 20, 24-25, 65, 68, 81, 92, 99-100,
118, 127, 145, 157, 161, 169, 176, 216, 225
problem definition 3, 6, 17, 29, 63, 83, 99-100, 125, 127, 129, 144-145, 176
prototypes 6, 17-18, 46-55, 127, 130, 176
specifications 4, 33, 64, 125-126, 133-135, 150-153
testing 8, 20, 22, 33, 41, 46-54, 65, 72, 87, 103
tradeoffs 7-8, 103, 105, 108, 153, 176, 221
rules of thumb 15, 65, 69-70, 74, 96, 125, 130, 176, 178, 214