However when you are young you have lots of free time and very low overheads. If you have decent tech skills there are plenty of things you can do to kickstart your career.
I was around 16 during the first dotcom boom, pretty much every business wanted a "website" but had no idea how to go about it. Even building simple HTML websites and uploading them to free hosts could earn you a hundred $ or so, which definitely beat working in the local deli with the other kids.
This was also the era of Windows 98, so everyone had PC problems, if you could pretty much guarantee a fix (usually just backup everything+reformat) every time and charged callouts at minimum wage you would get plenty of business.
This helped a lot with university applications too, as the professor dealing with admissions was impressed enough to drop the grade requirements (the only person they had dropped them for that year IIRC).
Not sure what the equivalent would be nowadays, but you could probably get a decent portfolio or a few $ doing work on freelance sites.
Actually very scalable. Social networks grow faster the further you reach. I got my first 'serious' internship thanks to my friend's girlfriend's dad. I'm from a small town and I worked at a place 2000 km away from home.
Reading back a bit into your blog, you're clearly aware of the advantages you have had, and are trying to “not to be one of those people.” Just try to be aware that laying things out in overly broad blog posts about common sense networking techniques does not quite count as not being one of those people. Not that it's not good advice, but I think there are far more valuable uses of your time than trying to generalize from your experience and evangelize. Acknowledge your advantage, but don't assume that telling people to do the things that were successful with that advantage, maybe try to work against the systems that systemically give advantage to a select few while ignoring most.
Sorry for what has turned into a pseudo-lecture, you're doing good things, keep doing them. Just stay cognizant, that's all I ask =)
1. The right environment - going to school in Seattle or the Valley/SF, or even NY, the big companies are literally in your backyard, and you're aware of it. Meeting people, showing them your motivation is a lot easier in person.
2. Mentors in the Space - Unfortunately, most teachers aren't as awesome as yours, who was a great mentor and had cool connections.
3. Internal Motivation - For most high schoolers, I would say this is the biggest impediment. They (and I) didn't realize there was something actually cool you could do in high school, and we coasted, making programs on our calculators and doing math puzzles in the back of the room during class.
Of course, if I had discovered HN back then...who knows? Thanks for the great post though.
Great companies are everywhere. You've probably never heard of them because they can't afford to advertise on TV. You don't have to be in the countries 5 largest TV markets to find people bootstrapping really cool stuff.
In fact, I posit that not being where the cost of living is too damn high means more interesting bootstrappers. Bootstrappers love cheap labor, and who's cheaper than a high school intern?
But the way to find the start ups is to go to the local tech scene meetings: Perl, Ruby, Python, Node.js, big data. Check meetup, etc. Find a few meetings, go and meet people. Make acquaintances, and before you know it, sombosy will be coming over to you to say something like "Hey manglav, didn;t you say you were really good at technology X? Wanna consult for a couple of hours?"
Personal story: I had an internship junior and senior years of high school. It was a complete accident: I participated in SVLug (Silicon Valley Linux User Group -- this is when Linux was a "hot new thing") and ran a home server (this was before Rackspace, Linode, et al). Said home server hosted some Perl CGIs and a copy of my resume. I got contacted by a recruiter as a result of my posts to the SVLug mailing list and explained my situation. To my surprise, they chose to interview me anyway.
Another high school classmate also found an internship from SVLug participation. Another high school-age coworker at said company was "discovered" when he wrote a AIM client library (to scratch his own itch -- be able to use AIM in Linux).
* It is indeed possible to get an awesome internship while in high school
* Network, network, network
When I was in high school, I didn't even entertain the possibility of interning somewhere. I never thought it feasible to do anything more than make some money fixing and assembling computers. That mindset alone cut me off from any chance of scoring big.
Networking is important, and the earlier one starts, the better. Knowing the right people matters, and you never will if you don't go out and start meeting them.
In the end, I didn't get an internship until my second year of college. In my defense though, I did go through high school and freshman year of college intent on going into medicine rather than comp sci.
However, I think the emphasis on a "personal network," is a little overstated, especially at this age. As a 2012 HS grad, I think I have a decent perspective on the types of networks most modern HS students have available. The OP seems to have gotten lucky with her CS teacher, but for a large number of students, those connections simply aren't available. My high school didn't even have a CS class, let alone a teacher with contacts at Valve.
I think it's worth mentioning that a large number of internships exist for high school students/rising college students in the public sector. Many of these internships are tailored toward recent HS grads/HS upperclassmen, and don't require a networking push or a special exception to get into.
A couple examples:
1. I'm a Cape Canaveral local, and I know for a fact that NASA offers a ton of really cool internship positions specifically geared toward high school students (they even brought in a bunch of the local valedictorians and tried to recruit us).
2. I'm currently interning at the National Institutes of Health, and they too have programs specifically targeting high school students. From the core research, to relocation, to social events, the program is designed with recent HS grads in mind. If anyone reading this wants to ask about the program, feel free to email me.
Persistence = Good.
Networking = not the only way.
Internship programs for HS students = more accessible option.
For those of you in Alameda or Contra Costa Counties, the Berkeley National Lab, where I work, has the following:
I absolutely loved my work experience during HS and it has helped my professional life in countless ways; but it is important to ask yourself, "what is the rush?". The summer after your senior year is for many the last time you will be able to spend quality, carefree time with the close friends you've had since kindergarten (or elementary or middle school, etc). Enjoy those opportunities while you can! As the OP said, it's much easier to get an internship once you're in college. If you have the right combination of circumstances and skills to get an internship during high school, you certainly will the following year, too :).
I went to high school in a suburb north of Houston, TX and knew no one involved with technology, or at least not with the Bay Area tech scene. I programmed on and off (while "on", several hours per day) throughout the last 2 years of high school, read wikipedia articles and some parts of textbooks on a lot algorithms and data structures, and started reading HN and the programming subreddit at the beginning of my senior year of high school. Come March of my senior year of high school, I had the sudden thought that it would be sweet to come out to the Bay Area and intern somewhere. I read the HN "Who's Hiring" thread and made a list of about 15 places I'd be interested in working and ordered them by interest. I expected to get rejected over and over, but saw there were actually hundreds of companies on the list, and I had to be able to convince at least one of them that I was worth hiring. I emailed the first company on the list with a description of some of my projects on GitHub and why I thought I'd be a great intern, and they agreed to interview me. A couple of days, emails, phone calls, and technical interviews later, I received an offer from Mixpanel to come and work with them in San Francisco for the summer. This internship was incredible for me; some of my thoughts on it are here: http://code.mixpanel.com/2011/11/15/internship-stories/ and http://www.quora.com/Eric-Martin-5/Posts/2011-Internship-Pos... )
Fast forward to my freshman year of college (which I've just completed): due to my internship, I have a very significant amount of programming experience and computer science knowledge upon beginning my freshman year. I applied again for internships, but I really really wanted to work somewhere where I could do meaningful machine learning work. Many places weren't willing to put me on their machine learning teams because I was just a freshman with relatively little experience in machine learning. Although I got some offers from great companies, I first heard of the fraud detection company I'm interning at now through a Quora answer, and my first communication with that company was a private message on Quora, which lead to interviews and an offer. I'm now building a large scale approximate nearest neighbors system there using locality sensitive hashing (with some slightly novel modifications of the algorithms to allow consideration of of only certain subspaces of the high dimensional space). More importantly, I believe this a way way cooler and interesting project than I would do at 99.9% of internships, and I can't really think of a system I would rather work on.
I guess the gist of this post is that not being afraid of rejection is critical to finding awesome internships (and jobs). For me at least, just reaching out to "random people on the internet" (what I tell my friends when they ask how I find these jobs) goes a long long way.