What is a programmer?

I'm a programmer. So what do I do all day? work out problems? Math? Something else that is super fancy. Really Programming is just messing around with a pile of Gibberish until it does what you want it to do. That's what programming is.

It doesn't matter what Programming language I use to get something done. It's almost always something that's been done before, and that I've done before. Just with a slight spin that is useful.

I would like to think of programming as the great endeavour to understand a particular set of problems, but in reality it's just a set of more problems, that never seem to get solved. The holes and flaws of my work are more apparent to me when I finish, than when I begin.

A Caveat

Although I feel like I'm never finished with any piece of software that I write, I do feel like I improve personally. I am a better programmer for programming what I just programmed. That constant improvement is positive.