I got past my first big bug recently, and wow, I have a lot to learn.
This trial-by-fire nearly dried up my enthusiasm for continuing the journey of becoming a programmer.
My brother (a real Software Engineer) couldn’t unravel my bug with ease as he’d been able to do to date. Neither could my friend who works in my stack (Python/Flask/React) all day long.
They both had great (and similar) advice for attacking the problem… unfortunately, I was weirdly resistant to taking it.
It’s been hard for me to accept that programming requires rewriting lots of code.
Progress isn’t well measured in new lines of code written — sometimes progress comes from removing code, and sometimes you have to re-write the same code from scratch to figure out where things went awry (me in this case).
This struggle cemeted a best practice for me: for any unfamiliar implementation, start with a toy version and rewrite/add to it until you’ve built the real thing.
Initially this felt painfully slow, but I’m learning it’s almost always faster in the long run. Not knowing when you broke your code is soul-sucking.
Now, I’m headed in the right direction again after the bummer of the last two weeks – I just need to recapture the joy of building.