I think that's why so many people struggle to learn programming. I actually found myself going back to the concepts I was "taught" years after college because all the code I had wrote gave me enough context to understand those concepts.
We need to redefine what would be considered "basic knowledge". The "basics" should really be a certain amount of experience actually doing something. Understanding what happens behind the scenes are the advanced topics.