Lately, I’ve been consuming the latest round of technical books, mainly “Head First Design Patterns” first O’Reilly Publishing. First, let my highly reccomend this book. It is a great way to get into design patterns, and very entertaining as well.
Over the past few weeks, many things have began to converge in my coding, and my thought process that go along with it. I’ve developed a “Problem Solving Mode,” which I enter and know nothing else other than the problem I’m trying to fix. It struck me that this could be similar to what some religions might consider a deep state of meditation, and it started a train of thought I’m going to attempt to explain and complete in this entry.
Religion is many times about Abstraction, usually an abstract truth of some sort. The idea of the existence of god is an abstraction. That there are absolute rules we must follow is an abstraction. Coding is alot about abstraction too. Ok, so where does that leave us? If it Floats like a duck, if it quacks like a duck, etc. ? I don’t think so.
Computer Programming is hardly a religion. Let us take a look for a moment at why people might meditate. Personally, I would meditate in order to attempt some insight. Sometimes we know exactly what we are looking for; other time, this insight might be the result of something totally random. We would expect to see a deeper meaning of things. In summary, we wish to enlighten our mind. This is exactly what we are always working towards when we code: the most elegant solution.
I know if I’m faced with a coding problem, I will spend a good amount of time thinking of possible solutions. I will consider the different options I have. If a solution is not apparant quickly, I will continue to think upon it until one does appear. I guess the question burning most in my mind right now is: “Do Carpenters, or Medics, or Lawyers, or any other profession have the ability to do this?” I definately think the possibility is there. But Computer Programming has a definate advantage. It’s all abstract. You create your own world. A Doctor cannot kill a patient to get rid of their cancer. The equivalent in programming is norm. When solving a problem, the only limit is our mind.