I Want to be a Computer Scientist
For context, I'm a 15-year-old who will be going into my sophomore year in high school this coming September. For awhile now I've known that I want to follow in my parents' footsteps and have some sort of job that heavily involves programming. My father mentioned that if I want to get somewhere in the industry I should figure coding out while I'm in high school. Currently, this is what I intend to do. I've found out thus far that 1) my high school doesn't have decent programming classes, and neither do any institutions I've found via the gifted & talented organization. By the time I was working on my final project for the C++ unit (in a class that wasn't done by the high school, but was taught by a teacher who worked there), my father looked over my shoulder and basically shook his head at my teacher. I'm currently taking a Java class via Northwestern university, and they've apparently not taught me to program in Java. For instance, when I asked my father a question, he looked at my code and asked me where my "main" method was. I have no clue what that is, and I have about a week of lecture left. I have a couple of friends that are learning from AP review books, and apparently that's a pretty important thing to understand.
My query is this: how do I not fuck up the three years I have left in high school? I know that programming is a career that would suit me decently, but I also know that there are a lot of people leaving colleges with their CS degrees who don't understand the subject matter at all. Needless to say, I don't want to be those guys. Does anyone here have any suggestions for as to how I can do a decent job at learning this subject? I've asked my parents, but they directed me to the course I'm taking now, so apparently they don't know either. There are a couple of things I'm looking at now (Khan Academy and Udacity both have free courses in Python, and I can go buy an AP review book for Java), but I was wondering if any of you had other ideas.
Comments
I would also suggest avoiding your father's criticisms. Sure, he may scoff at your undisciplined, uncommented code, but when you're 15, the purpose should not be worrying about efficiency and stability - it should be hacking stuff that works. Better habits will get picked up, but there's 500 different ways to start coding. If you're so determined, don't just follow the class structure laid out in front of you - find things to hack!
Although not knowing where your main method in a Java statement is? That's a little strange...
http://mitpress.mit.edu/sicp/
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/
http://www.khanacademy.org/science/computer-science/
Get an arduino and go to town with your old toys and stuff. You'll eventually learn a very C++ like language and make cool stuff in the process