I love problem solving.
It’s the very nature of what drove me to programming and what has kept me there. But as time progresses and as I get better and better at what I do, that problems that I want to tackle becomes bigger and bigger too.
When I first started out I hung out a lot in forums, helping other people and answering their questions. It was completely volunteer but I enjoyed it. I enjoyed it because people come to you with problems that you have never seen before and you really need to put your brain to work to solve the issue.
Sometimes the questions are small, like “How do I move this thingy to the left?” or “Why does it give me this error when I do that?”. Other times, the problems are trickier and takes more digging to solve.
It’s a tremendous learning experience.
After a while, you start to recognize patterns in the questions. The same or similar questions come up again and again and there is less actual problem solving and more repeating yourself. You look for more challenging problems that match your skillset.
And if you’re curious like me, you start to ask some questions yourself. Ultimately, you wind up on blogs, tutorial sites and other places and end up piecing together an understanding of how a site works under the hood. I guess they call it being self-taught.
But how often do you step back and take a look at what the site actually tries to accomplish?
It’s all a matter of perspective. It’s also problem solving, but in a bigger way. And I find that as I look for more interesting problems to solve, I need to start asking bigger questions.
There is a progression from “Where do the semicolon and brackets go?”, to “In which file shall I place this function?” to “How will these functions/classes talk to eachother?” to “How will my plugin interact with other plugins and themes?” to “How will the site actually make my clients life better/easier/more profitable?”
Maybe it’s not the same for everyone. Maybe you don’t have the same drive or quest for problems to solve.
But I do. I am not a code monkey, I am a problem solver. Are you?
What problems do you solve with your work? Do you solve the smaller code-related problems, the bigger structural design/architecture problems or the actual business problem of your client?