Over the last week I've submitted several questions to YC regarding startups and programming. Your responses have been intelligent, thoughtful, and inspiring -- thank you.
I realized my questions all revolve around a central issue and I should have just addressed it from the start. I'm 23 and work as a manager in a nontechnical field and won't be able to pursue another career full time for another 4 years. I have a computer science degree and consider myself a very good hacker, but my web programming experience is currently limited to HTML, CSS, PHP, MySQL, and some JavaScript.
In four years I either want to be able to work at a tech startup (or a company like Google) or have the technical and business savvy to start my own. The question is: How should I spend my time to give myself the best chance of success?
If you really have to stay at the job for some reason, then I'd say in your spare time practice programming and building web apps around what you are interested and that solve problems you face. Launch them and see what happens. You may suck/fail at first, but over time you will definitely learn a lot, and will get better with each iteration you take - you never know one of them may really take off. You can practice business skills in growing your apps and once you have done it a few times, try doing it for other businesses (ideally in other fields too for some diversity to other markets). There are many courses/books that can teach you the skills, but if possible, find someone whose expertise you respect to mentor you.
Many successful businesses were, and still are, started by people in the same boat so please don't let worries about lack of skill/experience stop you from starting.