Steps of learning Monad
Step 1: Randomly pick up a handbook or tutorial and get confused or even misled.
Step 2: Read Functors, Applicatives, And Monads In Pictures to get a sense of how monad is analogue with a box/container.
Step 3: Read Haskell, Monads and Purity for truly understanding the essence of monad -- "separates evaluation and execution".