Anyway, I get my first assignment back, 10/10. Awesome, just like I expected. Get my second assignment back, 9/10. What? Oh, he didn't feel like I had commented my code very well. Ok. I'll do better next time. Next assignment, 8/10. I had used "x" as a variable name, and another pickier detail. Next assignment, 7/10. Even pickier details; things like UI spacing. The worst was that my peers, who struggled a lot more and their code was often pretty bad, they were doing better than I was in the class!
But I kept at it and kept improving, getting better and better at nailing down every possible detail. Managed to get marks back around the 8/10 to 9/10 range, but never 10/10. Nearing the end of the course, I started looking back at my grades and came to a brutal realization: "I'm significantly better at this than most of the people in the course, but my marks don't reflect that!"
I went and talked to him and raised my concerns. He gets this big grin on his face and says "Oh, I've been recording those as 100%s the whole time. I just wanted to keep challenging you, within the scope of what the curriculum gives me. I really wish I could have given you better projects, but that gets pretty complicated pretty quickly. You're doing fine, and I think you've improved a lot since the start of the course."
Ended up getting the "Best grade in Computer Science" award that year. Thanks Jeff!
This changed for me in college. I hope it got better for you as well.
Edit: I almost failed out of engineering during my first year because I hadn't properly developed the skills and habits necessary for really putting effort into challenging school work. I do joke a little bit about the 51% I got in "intro to statics": since it's a 51% and not a 50%, I know that I earned that 51 and it wasn't a mercy pass :)
As an example, my EE degree doesn't have any out of the ordinary stuff in it. We had a fair bit of latitude in choosing courses, so I went towards DSP and FPGAs, just because I found that stuff more interesting (and easier to be engaged in), compared to say power systems.
My CMPT degree, though, I once again found myself in a position where a lot of it was too easy (A kid who has been hacking on C and assembler for 6 or 8 years is going to be miles ahead of the other first years who are writing code for the first time). So I went ahead and loaded my schedule up with more challenging courses (elective advanced algorithms, elective compilers, etc).
The only flaw with that plan was that most of the harder courses were dual listed as undergrad/grad courses, so when I went back for grad school there were a bunch of courses I couldn't take, because I'd already taken them in undergrad. It all turned out well though.
I found US public school education was not about learning and mastery. It's about conformity and obedience. Learning the subject matter is secondary--the key to succeeding at this institution is to do things in the expected way, at the expected pace, even if it is mind-numbingly verbose and slow. It's a hack: You learn the expectations and do the bare minimum of what is precisely expected, because both less than and greater than the bare minimum will be penalized. I had a rough time in school until I grokked this hack.
Do your homework. It's easy of course, just takes a long time to do since so much gets assigned. The point of doing homework is not to learn, it's to show obedience--you were told to do the homework and you did it.
Show your work. It doesn't matter if you can do division in your head, kid. You're expected to write down the specified intermediate steps so just turn your brain off and do it. The point is to follow the prescribed process, not to master the subject.
Class participation. This is a gift to the outgoing/popular/sports kids to inflate their grades. Just figure out how many times you need to say something in order to get full credit, then raise your hand and say something (anything, it usually doesn't matter) that amount of times.
Public schooling is a series of hoops that you need to jump through at no slower or faster than the prescribed pace. The smart kids figure this out. The REALLY smart kids tend not to figure it out unfortunately.
Prep schools are most certainly better (on average) at teaching students to be assertive, seek out opportunities, bend rules, etc. The coursework is harder and more engaging than even top-track classes at good public high schools. On average students get more individual attention from teachers.
Likewise, there is a wide gap between work difficulty and quantity and expected levels of preparation at top tier colleges vs. average colleges. At top tier colleges, the typical student is incredibly ambitious, and there is a categorical difference between the extent to which typical students seek leadership opportunities and pursue impressive goals. (This is not to diminish the work of typical students at average schools, many of whom come from difficult circumstances and must struggle to pay the bills, etc. And of course there are some amazingly ambitious and talented students even at mediocre schools who do amazing work.)
There are surely still many problems with even the best schools, but the difference is by no means limited to professional networks.
These schools are factories for CEOs and politicians. They have the absolute best teaching, the best resources, a culture that not only encourages high achievement but expects it. If an Etonian or Harrovian says that he wants to be Prime Minister, nobody bats an eyelid - the odds are fairly good that he might well be.
So I will give the opposite advice: Rebel. Be a pain. Skip class. Don't get into college.
If you're unlucky that might close lots of career gates, but at least you got your sanity, and that's the most important thing. A healthy mind is worth a bunch.
Some people can intuitively do division in their head for simple problems, but if they don't learn the mechanical algorithm for it, they are unable to do more complex division.
BTW, I've implemented divide routines in assembler before CPUs had a divide instruction. I used the same algorithm I learned in 3rd grade. Polynomial division also uses the same algorithm.
There is a point to learning an algorithm, even if you already know the answer.
Bingo.
There has been much improvement in curriculum over the years, certainly, but the structure of the American school system is still basically the same one that was originally designed expressly to produce a body of conforming and obedient factory workers with a consistent and predicable level of skills.
* Do most of your homework and get acceptable grades. This is what most students do.
* Don't do jack and be consistent. Many teachers will give up if you never do homework, and if you skip enough classes there won't be enough time to sit out all your due detention. It's also well possible that your school has a leaky detention administration and it ends up never happening.
On the first day I excitedly told the teacher how much I was looking forward to the class and how much I already knew. She gave me the course book to bring home and asked me to find the spot in the book where my knowledge could be tested. It was a huge disappointment, the courses mostly focused on spreadsheets and data entry with some Basic programming. I had already written many programs on my own to automate various tasks. I had written a few simple video games, worked with joystick inputs, even built a simple alarm system for my room using serial input and some basic wiring.
When I brought her the book the next day and explained I already knew everything in the book she got visibly upset with me. Her attitude towards me became terse and she decided I was too big for my own good and should start at the beginning. That course was pure misery. I'd finish my lessons within the first half of a single class and have nothing to do. I'd start tweaking my programs, but it felt like fiddling my thumbs. The teacher came to treat me like a bad element and in return I became antagonistic to her.
I once switched the cables between my and a friends computer so my typing would go to his screen and vice versa. I showed the teacher I had ahem programmed the computer to react to my voice. My friend would type in the responses to my voice, his results appearing on my screen. The teacher looked dumbfounded, she seriously could not process what was happening and sat down at her desk. It was hard to respect a computer class teacher who couldn't figure out how easily we had tricked her. From there it just got worse and worse.
I had many teachers like this, where they felt I was too big for my britches and needed to be put in my place. I was very much like the first kid described in this essay.
Evidently it was OK if I looked like I was asleep ...
(I'm glad that, instead of doing homework, I spent my spare time teaching myself more interesting subjects.)
"You were so smart, far smarter than me, but you refused to apply yourself. You wouldn't do the assignments, didn't pay any attention in class, and generally didn't care about school at all. I hated you for that and I'm sorry."
What makes me very sad, as a slightly tangential note, my university had covered grades first semester freshman year. This let me do terribly, learn from that experience, and not have it impact my future prospects. They've since removed that, and I honestly feel sorry for new generations of students to have one less helpful safety net. With a good support system in place to help recovery, the chance to fail (in a scenario that would be "non-terminal") has been critical to my learning to suck less across the board.
Because I knew grades didn't matter and that college was covered I didn't do the work, not because I was lazy, but because it was busy work & I had better things to do like running a regional BBS, cracking software, and writing demos in 6502 assembler.
Someone who isn't interested in school might be willing to work very hard at improving in a sport, or work very hard on their extracurricular club, or work very hard to teach themselves assembly and programming, or to learn a musical instrument. They might even be willing to work hard to teach themselves math, but be uninterested in putting effort into math class.
I guess it depends on if you consider "laziness" a universal character quality or not.
It was awesome. Being able to challenge myself with upper division calculus while stuck in state-mandated algebra was probably the only reason I survived those courses.
I'm a teacher, and this is one of the things that frustrates me deeply about our education system. I welcome students like this; they're so much fun to work with. But I usually have to make them feel accepted before I can begin to work with them. I teach in a small alternative high school, and by the time bright students get to me, they're often used to being shut down for picking things up quickly and not having to do homework.
I met a really bright and interesting guy once who told me about his experience in first grade. His teacher gave everyone a math workbook, and he was really excited to be learning math. He finished the workbook in a day or two, and excitedly brought it to his teacher, expecting to be given another workbook. Instead she glared at him and said something along the lines of, "I can't believe you cheated on your math workbook in first grade!" She gave him another copy of the same workbook and told him to do start over, and that she'd be watching him. He thought to himself, "Well that sucked, but she'll watch me do it this time and know I can do it." So he did, but this time she just got mad at him and said something like, "I don't have anything else for you to do, so here's another copy of the workbook. Don't finish this so quickly."
He learned what so many bright kids learn: if you learn things too quickly and speak up, you'll just make the adults around you mad and they'll give you more meaningless work to do. I know there are many teachers who handle bright kids really well, but as a system we fail many kids. These effects last years, and often times decades.