As a programmer with 20+ years of experience with various non-functional languages I have been trying to understand monads, and the main problem has always been that most of the explanations are similar long-winded diatribes making things even more complicated by using terminology that needs further explaining (rarely given) itself.
After many such articles, my main -- very generalised, I'm aware -- conclusion is that monad is basically a programming construct that a) contains some data and b) has some associated operations to be performed on that data.
Basically, a monad is an object.