I suspect you have generally felt uncomfortable because you're hitting your head against the fundamental paradox of education: the most compelling, important, and unifying aspects of any field as measured by an expert in that field are almost never helpful to someone learning the field, yet the expert finds it inconceivable to think of teaching without emphasizing those points early and often, since they are so important in the long run. After all, if not to share their wisdom so that it need not be rediscovered, what is a teacher there for?<p>But this is ultimately misguided: there's no way to cut out or even accelerate the process of digesting years worth of experience into "wisdom," and efforts to do so merely cause confusion for the student.<p>We see this again and again: math PhDs interested in "new"-ing up elementary math education think that concepts like the commutative, distributive, and associative properties would be <i>great</i> to sneak in to the curriculum, because it would give kids an early glimpse of what's so exciting about math, and it might even get them thinking abstractly early on! But the fact is, even for those of us that eventually go on to discover how exciting the more abstract stuff is, those lessons in our youth were entirely wasted, as we weren't ready to see the point yet (there's evidence that in that particular example there's even a brain development constraint that ensures children won't learn much in that way, but IMO this applies even in the absence of such constraints). Frankly, I had very little use for the concepts until I was well underway in a math major myself, and by that point I would have discovered them anyways as I needed them; the early exposure did not help one bit.<p>The real problem: most teachers don't understand what the true goal of teaching should be. Hint: it's not about shoveling expertise into students heads.<p>A great teacher has a unique gift, able to lead students quickly through the example phase and build naturally up to the point where high level concepts may be used to construct new examples, allowing the process to continue. A poor teacher is often poor precisely because they understand the high level too well, and they become unable to remember a productive path through those lower levels. Instead of leading students through an optimized sequence where material is presented at every point so that it maximizes learning speed locally, they mistakenly think that the concepts that help most at the expert level should be digested early.<p>As a concrete example, my first intro to programming class, which was theoretically for people that had never programmed in their lives, began with a discussion on the finer points of malloc. The teacher actually coded a basic implementation on the blackboard, thinking that was something we absolutely needed to see in our <i>first programming class</i>, ever! After which we were put in a computer lab to code, having been instructed that in this class the only editor we would use would be vi, because it's great, and oh yeah, here's a list of the most powerful commands, learn to use them or Fail. There <i>will</i> be a test. Needless to say, I learned very little from that teacher, though I have no doubt he was a true expert in his field.<p>For a good example, read just about anything by (obviously) Feynman.<p>There are very few good teachers in this world. I suspect that the few students that successfully gain significant amounts of knowledge from school and books generally do so more because they have learned to disregard what the teacher thinks is important and focus on what <i>they</i> need in order to learn, whereas other students get frustrated when they don't "get it."