It's all just text
If you think about it, most programming challenges can be boiled down to one or two things: text processing and data mapping.
Let's see: I'm currently improving Tempest's ORM, which means nothing more than "generating the right queries (text processing), and mapping the data unto objects".
I while ago, I wrote a code highlighter. It's basically the definition of text processing. I also built a console framework, which is nothing more than processing an incoming command (which is text), and generating the appropriate output (which is text). Routing? Processing an HTTP request (text), map its data to a controller, and eventually return text again. Building a template engine? Text processing.
Especially with programming languages like PHP, within a web context; 99% of things we're doing is processing text and moving data from one point to another. I like that realization, because it means I can boil down what seem to be the hardest problems, into relatively simple pieces. I wanted to share that with you, maybe you have some additional thoughts? You can leave a comment to let me know!