Remember the pain: lessons learned from teaching myself to code