Fundamentals

There is a never-ending torrent of technology and information screaming for your attention, insisting that without it, you are an inferior developer, incapable of doing anything of value.

It is not so.

Knowing Python's file APIs, understanding the vagaries of MySQL configuration, grokking C's dereference operator - these are valuable skills, but they are not essential to writing software. They apply only to certain tools.

A small set of fundamental skills, however, are useful in all software projects, regardless of environment or tools. These are the essential skills in writing software, the ones you should spend years mastering and refining:

  • Caring for users
  • Understanding problems deeply
  • Listening
  • Reading
  • Writing
  • Speaking
  • Triage
  • Learning from mistakes
  • Naming
  • Data modeling
  • Using programs
  • Writing maintainable programs
  • Changing programs
  • Debugging programs
  • Designing interfaces
  • Designing algorithms
  • Editing text
  • Optimizing programs

Other Articles In 'fundamentals'


  1. Caring For Users

    If a program runs in a forest but no one sees the output...