I think all of the basics on each subject should be taught for the first 6-8 years in school. If you want to advance in any particular area than an elective should be taken. The rest of the time should be spent focusing on getting kids ready for the real world. What good is someone how can do algebra but doesn't know how to manage money or cope with stress?
Take history for example, I understand that it is important because history generally "repeats" itself. However, is it really necessary to teach it for 12 years? 1-2 years to get the basics down should be sufficient. Basic math is all most people will ever use, why teach it for 12 years? I think a well rounded education is very important, but I feel that most courses are drug on too long.
The best course I ever took in school was called co-op ed. In this class I learned about the job market, how to make a resume/cover letter and how to present myself at job interviews. We spent a month in class and the rest of the time was spent working at a job outside of school. If we got fired from the job we automatically failed the class. This course landed me my first job which opened many doors for me.
In a perfect world, your parents would teach you everything you all about how to survive in the real world, unfortunately these days with the majority of both parents working full time jobs there is usually little time to do so. Not to mention, not all parents are fit to teach in this area. Parents should also be teaching their kids about sex, however sex-ed is now taught in almost all schools.