Some Thoughts on Problem Solving
One of my biggest challenges in becoming a web developer has been the art of problem solving. Solving complex problems, to be quite honest, requires a part of my brain that I haven’t really been exercising over the last several years. In most jobs you solve a similar set of problems over and over again with slight variations. More often than not you are well equipped to solve these problems either because of your education or prior professional experience. Occasionally you might even come across a problem that requires a fair bit of thought, but how often does that really happen? I mean when you really have to dig in and think hard about the best way to solve it. If you’re like me chances are it’s been a while since you were really challenged consistently in that way. I’m currently training to be a Full Stack Web Developer, and this process has really challenged me to re-engage my brain in ways that I haven’t had to in a long time. It has been simultaneously the most frustrating and invigorating part of the journey. I feel like my brain is doing push-ups and I can feel it getting stronger, but if you’ve ever done a lot of push-ups you know that strength comes at a price. My brain hurts, and I mean it really hurts! It sounds like a funny thing to say, but believe me I can feel it!
All of these mental push-ups have got me thinking about different approaches to solving problems. Trust me you need to have a plan! The first step is usually to make sure that you have a solid understanding of the problem that you are trying to solve. It really helps to break it down and make sure you’ve got a solid grasp on the situation. The second step is to come up with a strategy. If the problem is complex there probably will not be an obvious answer right off the bat. You may have to make a list of smaller problems that you need to solve each step of the way to make it more attainable. During this phase you should also consider whether or not any past experiences or problems you’ve solved before can help shed some light on this problem. Third you should execute the strategy. Keep in mind that you may have to refer to steps one and two during this phase and make adjustments as needed. The most important piece of advice in this phase is to just stay in the flames. Sometimes it takes a while. Our brains need time to process these things and a solution will come if you’re strategic in your approach and persistent in your execution. Fourth you should examine the solution. Can you make it more efficient? Did you come up with precisely the result that you wanted? What did you learn in the process that can make you more efficient on the next challenge? By breaking the solution down in this way we make it more digestible while also maximizing our learnings in the process. This is key to improving our overall problem solving skills.
Once you’ve solved the problem and taken a moment to process your learnings you should stop and appreciate the bigger accomplishment. You just did something hard and literally made your mind stronger. That my friends is a pretty satisfying feeling. It’s not one we have the privilege of experiencing everyday. Instead of dreading the energy that these problems require we should embrace the challenge and be thankful that we have the capacity to do hard things. That perspective makes all the difference in how we experience a “problem”. Maybe we should start calling them opportunities. That’s enough rambling for now. Go forth and embrace the “opportunities” that tomorrow sends your way.
The inspiration for this post comes from this article: https://math.berkeley.edu/~gmelvin/polya.pdf