I'm a middle school student and I've taught myself to program. I've learned to think in objects and algorithms, how to use loops and ifs and functions and variables. I've also learned PHP, and to a lesser extent Rails and Django (the kinds of things I think of to build are usually database-driven web applications, and I really enjoy doing so.)
As an adult programmer I want to build web applications (not brochure/CMS sites) that facilitate communication and organization, probably for businesses. I just don't think I'm cut out to work for a start-up, trying to win the lottery; something like 37signals maybe, but companies like that (small, sustainable, make a profit) are (from what I know) pretty rare. So it seems like I'm headed for corporate life.
The problem, for me, is that the companies that want these applications usually require Java or .NET. I have tried to work with Java for web development and found it incredibly difficult and time-consuming. So much time must be spent and so many lines must be written just to do simple things that I cannot even imagine what it must be like to do something complex. I'm a Mac and open-source fan, so I'd really rather not do .NET.
That said, I probably could learn to do Java web development. My question: is it a worthwhile investment of time? Or will things be so different by the time I'm out of college (2017) that I may as well use what I like now and learn whatever the Enterprise wants closer to when I'll be working for real?
Or is there a market for PHP, Python/Djanga, or Ruby on Rails for custom web app development in non-startups?