I'm a hacker...not a security hacker, not a script kiddy, but an old school, widget-writing code developer. I write code, I don't theorize about it.
But I've always felt guilty. My brief stint in University (I dropped out of Honours Comp. Sci after about six months) made me feel like real computing science was all about mathematics and set theory. Then I found this
article by Paul Graham, which really hit a chord with me.
Basically, Paul's suggestion is that Computing Science is, for many people, not a science. Instead, it is more akin to an art form. Coders like myself don't write out some mathematical theory for a program, then transcribe it. Instead, we work with materials and theories to create. Some of what we do is sketching, some of it transcends mere sketching and becomes "beautiful". But it is a far cry from a formal science for many (most?) programmers.
Just like a good artist or architect, good hackers don't program randomly: we start with a theme or a context (the requirements for an application, a problem that needs to be solved), and create something "organically" that fulfills or perhaps transcends our original intent.
I've spent a good chunk of my life feeling guilty, or sometimes angry, regarding the way I code versus the way I had been taught I was *supposed* to code. Paul's article helped me see this in a different light. In fact, its encouraged me to dig a bit more into theory: not because I feel I have to, but because it might help me be a better coder.