Fail Fast and Fail Often

One quote that I’ve been pondering lately is as follows: “Fail fast and fail often.” It’s essential to fail because failing is how we learn best. That’s why it’s encouraged so much in programming! The problem about failure is that failing is frustrating. For instance, this past week I reached lesson 39 on Nomster and I was on the verge of yanking my hair out. Doing everything on my own encouraged a high error rate and I had to retrace my steps on almost every step of the lesson! There were a lot of times where I felt like giving up and just putting off the lesson until the next day. Why didn’t I? At this point in the decision-making process, I had to shut off my emotional brain because emotionally, I was discouraged, felt stupid for not getting the lesson, I was exhausted, and I would’ve given up on a whim’s notice. I had to think rationally: what benefits do I get out of this if I keep pushing forward? For one, I would get used to errors and common gotchas. Also, I’d understand the problem at hand better, so the next time I came across it, I’d likely figure it out twice as fast. And finally, my understanding of the concepts embedded in programming would be solidified, my knowledge would grow, and I’d become a better programmer. After going through this on-off switch process, it was really obvious that the smart thing to do would be to keep moving forward, and what do you know? A couple of hours later, I finished the lesson and I honestly felt like a boss. I felt like I could code any problem you could throw at me. Ken, you want me to write up an algorithm to develop AI? No problemo. At that point, I realized I was getting way too far ahead of myself and should probably calm down and keep going through the lessons. But on a more serious note, I now understand the problem from lesson 39 five times better than I did the first time around and I definitely learned a lot more than if I were to be hand-held through the process instead.

Bottom line is that failing works so don’t be discouraged if an error pops up or you don’t understand something because of a common gotcha. It’s okay because you have to realize that it’s not actually an error message, it’s a learning opportunity. Cultivate these learning opportunities and make the most out of them. Remember: “fail fast and fail often.” That’s exactly what I’ll be doing from now on: failing fast and failing often.