For me, the fastest way is to, first, skim the reference manual cover to cover, then dive into actual programming problems (getting experts of the language to critique my performance in the latter part is a precious boost in learning speed and efficiency, if I can get that;-). I often find tutorials and books of tips and tricks too slow-going, though there are exceptions.
On the other hand, I did get my early experience in an environment where reference manuals were basically all you had to go on, so I guess I'm used to "skipping the legalese" (though excessive legalese can still swamp me -- e.g., official standards tend to have much more than reference manuals, to the point that learning from them is like wading in molasses;-).
Also possibly a generational thing, I've found that having the manual on paper and in a situation where I can use highlighters and take notes on the margin is a serious productivity enhancer for this task (again: I grew up in an environment where books were on paper, though that may matter... though if you had the book checked out from a library of course you wouldn't be allowed to highlight and write notes on it;-).
Some people love getting lectures and labs to support learning; me, I find they're more often than not incredibly slow and boring (again, with some exceptions for really gifted teachers).
But I know that's just me -- I've been on the teaching side of things often enough to know that a vast majority of people prefers other approaches (slow friendly tutorials, lectures with a lot of repetition, and the like).
One more bit: "fake" problems -- ones where I don't have to worry about analysis or discovering novel algorithms -- work better for me than "real" problems since they allow me to focus all my energy into "how do I apply this languages' specific strengths and quirks to implementing this well-known or obvious algorithm". But I've seen people's mileage vary on that, too: some just can't get motivated to do their best unless the problem itself is interesting and challenging, not just the part about making the solution work in language X.
So teaching in a way that's optimal for all your students, even in a small-ish class, is nearly impossible -- inevitably you'll bore to death some of the top ones and yet be going far too fast for some of the slowest... best you can do is try to meet the needs of the vast majority in the middle, I think.