Well, I'm an avid mixed martial artist, skier, and violinist on top of the technical stuff, although those might seem superficial since I have so many interests.
As for the gap year - wow, that could be a really good idea. I had considered that option, but I guess I didn't think about it enough. The lack of co-founders and money could pose problems in certain areas, but I could either just keep pushing the web app I've been developing to commercial release, or go to work at someone else's startup. Do those sound like potentially good ideas? (I can probably even defer enrollment to a college to have a safety net in case rejections round two comes around)
Also, what did you learn during your gap year, more specifically? (if it's not entirely specific to your case)
Thanks for the insight; I have a lot more thinking to do, but taking a gap year could be a very good option for me.
Edit: Posted before I saw your comment, fuzzmeister; that's probably a good way to have my cake and eat it too, although the downside is that I won't exactly be motivated to succeed with the startup no matter what if I have a spot at a college waiting for me.
1) I would choose between UMass Amherst and Tufts. If you want to start your own business, not having to pay loans while in college, or after, will be of great help. On top of that, your living expenses are paid for.
2) It's possible that despite your grades, MIT and other schools decided your passion for starting up would be too much in conflict with what other students typically look for in MIT, and that either the course load would make you unhappy, or your startup ambitions could affect your progress (I'm just guessing here.)
You were honest with the colleges, and they were honest with you back. This isn't necessarily a bad thing: would it have been better if you lied that you wanted to be a professor, and gotten in because of that? Instead of worrying about being rejected from a fancy college, realize that your essay probably had the most impact, and the admissions officers are helping you make your decision. If you try to do a startup for a year, fail, and change your mind, you could always reapply and they will likely take you this time around.
3) If one wanted to finish school as fast as possible and without debt, they could do the following.
UMass Amherst requires 45 credits in residence to earn a degree (outside of Engineering). I can imagine one could take all non-General Education classes over their first three semesters; somebody from my high school completed the non-General Education requirements by the end of Sophomore year.
I can imagine you could then reside anywhere you like, completing your General Education Requirements with classes over the Internet, and occasionally some classes at whatever school is nearby and transferring them over.
Sure, if you moved somewhere else and completed the non-CS requirements online, you would miss out on some student interaction, but you would be 19, so it wouldn't be too bad.
If you don't accelerate your pace, UMass Amherst may feel like a "gap year" anyway, and you would be able to do whatever other side projects you had in mind while maintaining good grades. UMass Amherst is also a top 20 CS grad school, and you could take grad school classes if you wished.
As for whether to join someone else's startup or start your own - I'd say do whichever will answer more questions about your future life (in answering them, it'll raise more). If you feel you absolutely must start a company to be fulfilled, go do it. That's how I felt, though I waited until I was out of college and had a couple years of work experience under my belt. I started it, it failed miserably, and it was still one of the best decisions I made in my life.
In my case, I worked for someone else's startup in my gap year, just because the opportunity presented itself. My math teacher was starting a company; his company had a wholly owned subsidiary that was doing a teen-content .com; it was being staffed exclusively by teenagers (many of whom were my friends from high school); did I want to join? Of course I did. You will probably learn more technical skills working for someone else than you will on your own; there's a vast body of knowledge in everyday software engineering that's largely passed from engineer-to-engineer, and you miss out on a lot of it if you only learn from the Internet. OTOH, you will probably learn more about yourself and what you want if you start your own company.
It's hard for me to say precisely what I learned in my gap year, because most knowledge takes the form of skills, not facts, and you can't reduce skills to words. I do think it was one of the most educational experiences, perhaps the most educational, that I'd had up to that point in my life. A quick list, based on what I remember 8 years later:
I learned Perl scripting (actually, I sorta knew it before, but I learned it better.) I learned how there's always a core group of people that actually get things done while the rest of the office takes long lunches and bitches about how the core group is usurping their authority. I learned how to exaggerate your PR budget so companies pay attention to you. I learned how to feed newspapers a hook so that they do a story on you ("all teenage dot-com" actually got us a lot of free publicity), and I learned that all this PR doesn't matter if your product sucks. I learned that what you think of as "intelligent" content usually just seems pretentious to other people. I learned that even if you start with users, they'll leave if you take away the reason they came - and that reason is not always obvious to you as the designer of the site. I learned that teenagers can be just as vicious at office politics as adults. Actually, this last one is a really broad lesson. Next time you think "That guy is evil; I could do his job so much better", think about what you would actually do if you were placed in his job and had to operate under his constraints. Chances are, you'd be just as incompetent and evil as he is.
Anyway, I'm only 3 months into my gap year...
I learned about version control and IDEs. I learned Java Swing. I learned about maintaining other people's code, and that it's basically a waste of time to fix their formatting (other than mixed tabs/spaces, which should always be converted to spaces. ;-)) I learned about OOP and how to split up responsibilities between classes. Unfortunately I didn't learn about avoiding cyclic dependencies, but at least I was primed so I could understand why this was a problem when I learned it in college. I learned that your first attempt at a program usually turns out badly, even if you have 30 years of experience under your belt, and so you should always be revising and refactoring your code. I learned that companies will often shift their business plan entirely when they are a week away from beta. I learned that this is not always a good idea.
I learned that cool projects often go to the guy who happens to be in the office at the time someone dreams them up (sorry, Trevor). I learned how to design UIs myself and get them working. I learned that you should always, always try to code things up incrementally, working in small chunks, though I had to relearn this about 5 times more before it really sank in. I "learned" C++ and why manual memory management sucks. While I should've been debugging those segfaults, I learned that thousands of fangirls will go wild for Draco Malfoy in leather pants (this turned out to be very important for my career later).
I learned InstallShield, and why just about every desktop software package leaves behind a ton of junk when you uninstall it. I learned that manually testing installation executables on a half dozen VirtualPC boxes kinda sucks. I tried to learn WinRunner but it never sunk in. I did learn design patterns while I was avoiding WinRunner though.
I learned that companies that stay "2 weeks away from beta" for more than 2 months have a tendency to stay that way indefinitely. (Though not always: I've heard that offline GMail was "2 weeks away from launch" for a year, and they did eventually get it out.) I learned that code quality matters a lot, and that if you write sucky code in the name of just getting it done, you will pay for it later, possibly forever. I learned that you need to know what you're building in order to build it, but I took the wrong lesson from that: I learned that you should always have specs that try to think of every eventuality, when I should've learned that you should always have prototypes and working code that tries to explore every eventuality. I learned that companies should always keep track of their cash very carefully, and they should know when a $6M bridge loan is coming due, and that VCs behave basically like sharks when they smell blood in the water. I learned that certain company founders will also do pretty crazy things with the remnants of their company, like run off to China with its IP when the VC sues them.
All in all, I'd say it was highly educational. :-)
As for the gap year - wow, that could be a really good idea. I had considered that option, but I guess I didn't think about it enough. The lack of co-founders and money could pose problems in certain areas, but I could either just keep pushing the web app I've been developing to commercial release, or go to work at someone else's startup. Do those sound like potentially good ideas? (I can probably even defer enrollment to a college to have a safety net in case rejections round two comes around)
Also, what did you learn during your gap year, more specifically? (if it's not entirely specific to your case)
Thanks for the insight; I have a lot more thinking to do, but taking a gap year could be a very good option for me.
Edit: Posted before I saw your comment, fuzzmeister; that's probably a good way to have my cake and eat it too, although the downside is that I won't exactly be motivated to succeed with the startup no matter what if I have a spot at a college waiting for me.