You can't teach people everything they need to know. The best you can do is position them where they can find what they need to know when they need to know it.
A programming language is like a natural, human language in that it favors certain methaphors, images, and ways of thinking.