I started programming when I was in 8th grade by writing silly little games in BASIC and eventually C for a toy called a Cybiko. Cybikos were essentially Palm Pilots targeted at teens:
Writing code felt like magic. I was a god. I could place sprites on the screen, let the user move them around and suddenly I had made myself a game, albeit a simple one.
I made a game that let you pop balloons as they rose from the bottom of the screen. I made a Minesweeper clone. I started to make a Mortal Kombat like fighting game but couldn't figure out how to write an AI to fight back so I gave up on that one, but still released what I had written anyway. I made a text-based choose your own adventure story. I had a website (cydevr.net) which you can probably find on the Wayback Machine. It had forums and a community where people would gather to talk about Cybiko Development. I had passion. I was 13 and naive.
I didn't care how my code read, or if it was maintainable, or if it was DRY, or if it was tested, or how long it'd take me to write, or if features were separated into logical chunks that I could work on in an agile style with 2 week deliverables, or any of the day to day crap I have to think about as a career coder today. Granted, I do see the importance in many of the things I just listed, but they sure do take the fun out of the act and have killed my passion.
All that mattered was that I could make something, release it, and other people would check it out. And it felt so good. It felt incredible. I'd spend hours each day after school working on something maybe 10 people would ever see and that was good enough.
Edit: I'm three jobs into my career after spending 2 years at each. The first job was a medium sized company with around 90 employees, 5 developers, and 2 testers. The second job was a small startup with 15 employees, 5 developers, no testers. Now I work at a large company with 3,000+ employees at my office not to mention their other offices.
Now my day to day is filled with process. We must break our deliverables into 2 week chunks so that the stakeholders can see our progress and know that we'll deliver on time. But it's not on time. Everything must be tested. But it still has bugs. Everything must have thorough documentation. But it quickly gets out of date and we never read it. Ready to release it to the world? You have to submit a Change Request Form and ask someone else, some magical Oz behind a curtain, permission to do that. Want to call it a Beta instead of an Alpha? You'd better adhere to these 10 guidelines that define Beta, written by a manager of a manager of a manager who has never seen a line of code in their life. PS, those guidelines contain words and acronyms that mean nothing to me as a developer and are just business gibberish.
In my current job, I don't develop features. I write test automation to test the front-end. I wanted a change of pace. I got it. I'm still not as satisfied as I hoped, but at least now I don't have to implement features that I vehemently disagree with (like adding Facebook and Twitter share buttons on every damn page).
Now I write browser-driving tests that I'm not sure provide much value and provide metrics that show test coverage and champion how important that is, but to me it's not important.
The product is important. Does it help someone? Does it make their task easier? Are the bugs in it tolerable? At all three of my big boy jobs, I've been so far removed from the user that I have no clue if the product helped them or not. This hurts and it hurts a lot.
These are helping. Some of the magic I felt when I was 13 making a balloon popping game is coming back to me with these projects because I'm the boss and I'm close to the user. I'd do anything for them, except add Facebook share buttons but they would never ask for that in the first place. Those types of requests come from misguided business and marketing.
Despite my side project glee, I just really struggle from 9 to 5 every day.
What do I really want? I want to pay off this massive $65,000 student loan debt bill that earned me the "privilege" to build someone else's dream from 9 to 5. And then I want to get away from coding for you and code for me. I don't like coding for you. I don't think any of us do. We only do it because you pay us way too much money and we have loans to pay off. We're nice components of the system.
I love this Noam Chomsky quote:
Students who acquire large debts putting themselves through school are unlikely to think about changing society. When you trap people in a system of debt they can't afford the time to think. Tuition fee increases are a disciplinary technique, and by the time students graduate, they are not only loaded with debt, but have also internalized the disciplinarian culture. This makes them efficient components of the consumer economy.
Although the last part doesn't quite describe me. I have NOT internalized the disciplinarian culture.
I wish I could find some gratitude. I'm doing the "right" things. I'm fortunate to have had jobs since I graduated college. Some folks can't say that and I can't imagine the stress they're experiencing and how mine probably pales in comparison.
So society, I'm going to play your game until I'm debt free. Then I'm going to a cabin in the woods. You've defeated me. I don't care about your money, I don't want it. I just want to give it to Sallie Mae and Mohela.