Programming isn't a end in and of itself. Every single programming assignment you've ever done has been for a purpose, and usually it's a business purpose. Now, I could generalize and say that all my programming has also been on medium-sized tools/apps, but that's the type of programming. The actual job itself was always a business project.
What does that mean? It means that programming isn't an end-goal. Yes, I know we all talk about artistic programming and good programming style and the like. And, that's very important, because what we bring to the table for a given project is the construction part of it. We're essentially the carpenters and brickmasons of the Information Age. And, carpenters do take a great deal of pride in their work.
However, I would be willing to bet that most carpenters don't really define their complete self as "carpenter". I know that I don't think of carpentry as a career, though it certainly could be, I suppose. The question is why would you, a byte carpenter, define yourself as that, and only that?
When I graduated from college at 23, I made a decision that I would not be programming for more than 10 years. Preferably, I would be in a completely new field by the time I was 30. What the field could be ... I have no clue. I have a huge number of interests that I'd love to pursue:
Instead of focusing on programming, look at what you want to do with your life. I've been in the job market for 2 1/2 years and my desire to switch careers in 5 years hasn't changed all that much. It's not a dislike of programming, but an intense desire to experience more than just a cathode-ray tube under fluorescent lighting for the rest of my life. And, my fiancee supports my desire to do so (especially as she wants to switch into programming). Depending on how we can support the kids ... who knows?
Vote paco for President!