The horrors of high school are well documented. (For non-American readers who don't have "high school," we mean to refer to mandatory schooling for people roughly between the ages of 14 and 18.) This page aims to serve as a conduit for advice from those of us who have survived it, from the perspective of programming. We'll tell you what we did that worked, and what we wish we had done differently.

Computer science teachers in high school and earlier are, taken as a group, notoriously clueless. You don't have to look very far to find someone with a story of how he sat through a boring year of programming class with a teacher who always asked him for help about the class subject. This leads me to my main advice: Unless you're in some amazingly good high school, don't even bother taking any of its CS classes. You can LearnProgramming much better on your own, and once you are a competent coder, it should be very easy to learn other aspects of CS that your school's classes may offer.

I (AdamChlipala) would recommend trying to get credit for all CS classes at your school by taking tests or other methods besides actually taking the classes. From here, you can try to take CS classes at a local college or university. You might be surprised to hear that many school districts will pay for you to do this, once you have exhausted their curricula in an area! The only way to find out if yours offers this is to ask a guidance counselor or similarly knowledgeable person. Of course, getting college/university classes for free will also save you a lot of money if you take enough to graduate early from college/university overall!

Overall, programming is an example of an area that the average high school just isn't going to get right any time soon. Avoid dealing with them and try to go right to classes in higher education, or just learn on your own. If you are in a country where there are specific requirements you must fulfill in high school to get into a university, ask a guidance counselor, principal, etc., about ways that you can take the required classes "independent study." If you've already been programming for years, you should be fine passing all the exams. Don't waste your time sitting bored in class when you could be writing cool programs instead!!

However, when making a decision on learning about computers on your own, please be sure to consider carefully the problems self study can cause as well as solve. Obviously, if you clearly have the ability to fly through a computer class without a teacher, then by all means do so. However, remember that universities sometimes consider little other than your grades.

Before undertaking independant study, ask yourself,

  1. Can I do this on my own?
  2. Will I achieve a high enough grade on my own?
  3. Even if I can do this on my own, do I have the strength of will to stick rigidly to a study pattern without supervision?

If you can answer yes to all of these questions, then enquire in your school about what you can do. Of course, the third point won't be a problem if you approach this as a fun passtime instead of another class, like most of us have!


An alternative viewpoint:

These are certainly exceptions rather than rules, so take with salt. -- KatieRivard

DealingWithHighSchool (last edited 2008-07-09 05:47:50 by localhost)