Fighting with software

Today I've been a programmer for 17 years and some change in days. I think I've passed my 10,000 hours a few times over, so I'm an expert. You could be forgiven for thinking I can conquer any problem instantly. I can't. I still get my backside handed to me daily.

Don't worry this isn't a pity party article. While I don't shoot rainbows; I'm tenacious. I only stop when I decide a problem is not worth solving. Here are some things I've learned.

Some strategies when a problem is difficult

  • Take a break. Especially if it's urgent
  • Read documentation
  • Try to model or describe your problem
  • Pair with someone else; Especially if you have different approaches
  • Look for prior art
  • Search for guides or courses for the exact problem
  • Search for answers on the internet
  • Read a book
  • Run a debugger or REPL

Some strategies when something seems easy

  • Check with stakeholders
  • Write tests (ideally before implementing)
  • Teach someone else
  • Read documentation
  • Add flourishes
  • Perform a code review

Hopefully these help you to fight back against imposter syndrome, and tackle problems that hit your ego. Too much ego is not good, but In my experience not many programmers suffer from that.