I start off skimming through a book/tutorials/how-to vetting if my idea of using XYZ holds and I ( hopefully) will not run into corner stones.
Then I would do "doing and learning" along the way.
This approach works for me, but sometimes I get a feeling of missing out something.
So I got me this new Haskell book:
http://haskellbook.com for further enlightenment and want to first work through the book before applying it to project XYZ.
SoI guess to get work done I rely on the "doing and learning" approach. To challenge my brain/learn a new way of thinking, I rely on reading the books without skimming.