I spent a lot of time programming over the holidays. I was doing mostly PHP programming using the CodeIgniter framework, but I also spent some time delving into Ruby and the Rails framework.
Every once in a while I got stuck on a problem I couldn’t seem to figure out immediately. This is of course very common in programming, and nowadays we just hop over to Stack Overflow and we’ll have the answer usually within the hour. The problem was I was out East in Nova Scotia, and the Internet was down more often then not.
This created a problem for me as I was often getting stuck, either with something I was trying to do differently with CodeIgniter, or something new I was learning with Rails. So without the ability to go onto Stack Overflow, I had to figure things out on my own.
Getting Smarter through Problem Solving
When I would get stuck on have to figure things out on my own, I would find that I had a clearer understanding of the solution I came up with, then solutions given to me on Stack Overflow. This of course makes sense, as I came up with the solution versus having it handed to me. However, consider all the other times I did just get the answer off of Stack Overflow. Did I take the time to figure out WHY that works? Do you?
I feel like I’ve become a better programmer just by spending a week with no access to Stack Overflow. I’m not just talking about Stack Overflow either. I’m talking about seeking out answers in general that you could otherwise figure out by working through the problem. I think this applies to more then just programming. It really can apply to any area of life where you go for the quick answer, rather then working through the problem yourself.
I’ve worked in IT for many years, and I’ve seen this problem come up too many times. A person will have a problem with their computer, instead of working through the problem and getting a better understanding of the computer, they will call their IT guy to come fix it immediately. Of course, the next time they have this problem, they will inevitability do the same thing, and so on. If they took the time to figure out the problem the first time, they wouldn’t need to rely on the IT department as often.
Next time you feel the urge to post a problem on the Internet, or go to a person you know can give you the answer, try and work through the problem yourself to see if you can figure out the solution. I know you will be a better person for it; well at least a smarter person.