Your question overlooks an important factor, namely, how do _you_ learn?
Personally, I learn by doing. So reference books (e.g. Linux Command Line and Shell Scripting Bible9 are more helpful than cover-to-cover material to me. This way I can open the book when I encounter a problem.
Some people like to understand the entire concepts before getting around to actualizing them. What kind of cat are you?