⬅️ Code Complete

  • the whole job of programming is building air-castles, it”s some of the most purely mental activities you can do
  • the way you focus your intelligence is more important than how much intelligence you have
  • the more you learn to compensate for your small brain, the better a programmer you’ll be

Reduce brain workload:

  • decomposing
  • conduct reviews
  • keep routines short
  • using conventions

Curiosity

  • build your awareness of the development process
  • if your workload consists entirely of short-term assignments that don’t develop your skills, be dissatisfied
  • experiment (with programming and the dev process) - prototype!
  • read about problem solving
  • analyze and plan before you act
  • learn about successful projects (read source code of other projects)
  • read! (documentation)
  • read books
  • affiliate with other professionals
  • make a commitment to professional development (beginning introductory competency leadership)

Intellectual honesty

  • testing can only show the presence of errors, not their absence
  • you can’t negotiate how long something will take

Communication and cooperation

  • as a readability guideline, keep the person who has to modify your code in mind
  • programming is about communicating with another programmer first and communicating with the computer second.

Creativity and discipline

  • establish conventions in non-critical areas so that you can focus your creative energies in the places that count (aka form is liberating)

Laziness

  • deferring an unpleasant task
  • doing that task quickly to get it out of the way (enlightened laziness)
  • persistence can be either an asset or a liability - it’s hard to know when to give up
  • on experience: you have to reflect on your activities to get true experience
  • gonzo programming: excitement is no substitute for competency
  • to be a great developer develop the right habits