I've also encountered this problem numerous times over the years. Android development needs it, too.

Also needs a "how to think in this language" type of tutorial. That was the main thing I wish I had when I first learnt Java. It's what I'm going to be after when I shift to Node.js in a month or so.