Ugh. This is why I hate the grading system. The basic premise the entire system relies on is
fear of failure, which, to me, seems to be completely counter-productive to learning. When I am actually learning something, for instance programming, I don't learn by marginally getting better and going to a slightly higher level before, still succeeding at every step — I learn immersing myself in something completely over my head that I don't understand, and absolutely, miserably failing. When I finally get it, not only is the experience extremely gratifying, but I actually
learn it; it's very difficult to forget something you now understand that only moments ago looked nearly impossible. In school, doing this is not only discouraged but nearly impossible — fail a class for even a few weeks and it will be very difficult to get your grade up and be able to get in any more honors classes; essentially, through the grading system you're labeled satisfactory (A/B, depending on your standards), average (C) or a failure (F), even though the only way to learn is through your mistakes.
I think a good indicator of how well you're learning something is to ask yourself, "If I asked myself about this subject 6 months ago, would I think I was an idiot?". In school, I can think of maybe 3 subjects that's true in, but not by much. With something I'm teaching myself through failing, like programming, I would probably think I was an idiot less than one month ago.