I'm still in highschool, but I'm fairly well versed in programming. I've taken a variety of courses at my school, and I've also read a number of books, as of recent, I've been focusing on web development. I'm already pretty competent when it comes to HTML, CSS, and JavaScript, and I know PHP fairly decently (I've also done quite a bit in Python, but I've never developed for the web in Python)...
I've seen people, like those at Groupon, develop amazing, powerful web applications around brilliant ideas. Facebook is another shining example (though Mark Zuckerberg was something of a genius and attending Harvard to study computer science).
Basically, I'm wondering what would be the process of developing my own web application... I'm not saying I have a brilliant idea (in fact, I don't have any idea whatsoever), but I figure it would be good to know anyways...
When I go to develop a web application to fill an idea. What should the overall process consist of? How much planning do I need? Would I need a team, and how would I find good partners (especially being in high school? What design patterns and development strategies should I follow? Or should I take a page from the Social Network and go "hacker mode" and just write out code (though I've never seen that truly successful in practice)? Should I use a web development framework? What languages should I attempt to implement it in?
I suggest getting involved in some open source projects to start with: some program you have used already and would like to know the internal workings of it.
Find out how the code is assembled, how to make modifications to it, maybe even see if you can help improve it.
This will get you exposed to a broader range of technology and techniques. You will learn to work with other people - essential if you are going to build your own application, whether it be communicating with other programmers, or communicating to your audience.
Perhaps you will get some inspiration as to where there are gaps in what is out there and how your own application might fill them.
I'm not suggesting that open source projects are the only way to learn. It's simply a very accessible and practical way to get into programming and developing programs.
One of the key components in building a successful business is passion. It sounds cliche, but its true.
If you decide to put something out into the world that you hope will be usually for at least a moderately large group of people, make sure its something you are willing to build your life around.
My suggestion: look at yourself, and your habits. What do you wish was out there to use? Of those things, what would you actually pay money to use? Maybe its a better way to buy a car, maybe its a new way to share recipes...whatever.
Don't spend too much time building a product. I'm not saying create a sub-par product, but your idea won't come to life until you actually get it out into the world. TONS of people spend a bunch of time building a product, then finally release it, only to change the direction of the company shortly after because of real world experience with the product. It makes more sense and helps more people to go in a different direction. You want to be able to identify the true product quickly so you can spend your time on that.
As for the dev specific questions...it doesn't matter. There are a million ways to build a product. Choose a language you are comfortable with. Using a framework can be a lot quicker, but it depends on your needs. You may need a team, you may not. Chances are you don't have a ton of cash to throw at the endeavour so maybe start something that you can handle on your own. If it starts gaining traction you can attract others who might want to be part of the project for a small piece of it or start earning enough money to hire other people.
You've already started the process out right, you are learning. Using websites like this to gain knowledge.
What design patterns and development strategies should I follow?You should ask perhaps on stack overflow or programmmers mostly because of the nature of your question (what to do to make a good app) or perhaps you should state your question a little clearer if you meant what to do to make an app a successful start up.