TL;DR: Today I learned that I need to spend more time understanding underlying concepts before jumping in blindly.

I hacked, hacked, and hacked away at a problem only getting more and more frustrated with myself. I can only imagine how my co-workers felt about me, some I haven’t even worked with before! If you’re reading this, bear with me. I promise I am better.

"You are stupid. You can't solve _this_ problem? What's wrong with you"

I now realize all I needed to do was stop, think about it, and do it! Sounds simple enough but I just got so wrapped up in everything that was not important to solving the problem at hand.

Most of my time was spent trusting another’s API blindly with no real grasp of the concepts being leveraged; my fault not theirs. Reading useless log files that had no real impact on what was going on.

What Did I Learn

At the end of the day, today, I sat down and came up with some steps that might help future me when I back myself into a corner like I did today.

  1. Breath: stop, take a walk
  2. Reframe the problem: what am I really trying to solve?
  3. Break it down: can I break this problem down into smaller problems? What about first principles? Can I do it on my own (no API’s frameworks etc.)?
  4. Similar problems: have I ever solved or seen anything like this before? Do I know someone that has? Can I look to them for influence?
  5. If you do need to use an API, or tool read up on it. What parts are helpful?
  6. Is this problem really to hard to solve in a reasonable amount of time?
  7. Take a break: work on something else for awhile

All in all, a day is what we make of it. If we spend 10 working on 10 lines of code, that really should only be 5 and look like a fool in front of managers/co-workers then there must be a damn good lesson to learn there.