How much has been written on the virtues of patience? I strive for patience in all the obvious ways: checkout lines, waiting rooms, and poky drivers come to mind. We’ve all had our patience tested by these external forces, but programming has made me realize in a visceral way that another important avenue for our patience is internal.
When we push ourselves—intellectually, emotionally, physically—we sometimes find that we’re impatient with our lack of progress, understanding, or achievement; impatient with our personal rate of change. In the context of modern life, acknowledgement of personal limitations is often frowned upon, and in our achievement-oriented mindset, we often forget that change requires patience. To be able to change we must have patience with our internal process. Whether we’re muscle-building, empathy-building, or knowledge-building, we need to strive for patience with ourselves.
I recently completed a project for Object Oriented Ruby (the Music Library CLI, if you’re curious) and my patience was tested. Why couldn’t I get the tests to pass? Why couldn’t I dredge out of my brain the correct code? One minute I felt like I really knew my stuff, and the next minute it was all sad trombone noises. This is where the hubris comes in. I wasn’t just impatient with myself for struggling, but my ego was bruised. The CLI controller was the hardest aspect of this project for me, which was rough, since the instructions seemed to indicate that once you got that far the hard work had already been done. I spent a lot of time feeling completely muddled about how to proceed (and making a giant mess of my code), when what I should have done was walk away.
Should I have felt bad? On the one hand, it would’ve felt great to have every test pass the first time, to have not needed to go Googling for the right syntax for things I had once known and forgotten (case statements, geez!). But then it wouldn’t have been a challenge. Then I wouldn’t be learning, and learning is the goal.
The nature of learning is the desire for change. But alongside desire must come acceptance of some inevitable struggle. We try, and try, and try again. We ask questions, maybe the wrong questions, and then, hopefully, the right ones. Eventually we will hit the wall of our knowledge base, and either we can set our impatience and ego aside and find the tools to move through it, or we can stop changing and stop learning.