The Trial and Error Loop
Dylan | Jun 03, 2019
Any worthwhile goal will often feel overwhelming at the start and your mind will often by flooded with doubts. How could I ever learn a programming language? How could I learn this framework, library, or mathematical concept? Unfortunately, when you don’t even know where to start, it’s impossible to imagine the finish line.
The Trial and Error Loop
Living within the confines of your comfort zone rarely results in substantial growth. Making 50 programs that print out “Hello, World!” isn’t likely to teach you very much.
On the other hand, pushing the envelope and committing to something that seems beyond your reach forces you to try new things, it forces you to learn. Through trial and error, you begin to learn what works, and also importantly what does not.
I believe the trial and error loop is absolutely critical to learning and committing to an ambitious project forces you into it. I remember reading and watching some videos about recursion but I certainly never understood it until I incorporated it into some personal projects and trust me, it took plenty of trial and error.
Every iteration of the trial and error loop that doesn’t result in a “successful” outcome begins to feel like a personal failure. Self-doubt creeps in, your patience dwindles, and it’s genuinely difficult to keep going but the reality is, learning challenging things requires this loop. This is just how learning works.
Rule One: Never Give Up
If I’ve learned any life lessons from programming, it’s the power of never giving up. I can’t count the number of times I’ve faced challenges that felt insurmountable. But you know what, it was remedied by patience and plain old persistence.
Now when I commit to learning something new and challenging, I remember the past. I remember the first time I learned about loops and classes. I remember the sheer confusion, angst, and self-doubt. I compare myself then to myself today and although I still have a lot of things to learn, the observable growth is astounding.
I’ve always managed to find a solution to any programming challenge as long as I persisted long enough and there’s absolutely no reason this wouldn’t be true today and it wouldn’t continue to be true long into the future.
Rule Two: Get Help If Stuck
If you’ve tried everything you can think of and still feel completely stuck, take a deep breath and keep in mind that you’re not alone. Fortunately, technology provides a convenient way to reach out and receive help, even if you live in the middle of nowhere.
I frequently refer to Programming Discord Servers, StackOverflow, and Reddit to get pointed in the right direction.
While working on a little program to police my time spent playing video games, I came across the problem of needing a GUI while the program also regularly checked my processes for running games. The GUI needed a loop and the process checker needed a loop. I had no idea how to combine the two. After posing my dilemma on a Programming Discord Server, they suggested I use threading.
Although I had heard the term, I had never encountered it “in the wild” and began reading about it. Often, you need someone with a little more experience to point you towards the tools required to solve a specific problem.
By learning through solving problems and building projects, you’ll build confidence critical confidence in yourself to overcome challenges. In my case, this confidence is routinely the only thing motivating you to continue the trial and error loop in spite of self-doubt and seemingly insurmountable obstacles.
Do you feel confident in your ability to learn new things and solve problems? Where do you think this confidence originates from? Tell us about a time you entered the trial and error loop and came out on top or when you’ve slipped and let it get the best of you! Please share your valuable insight in the comments below!