>>1
It's alright,
>>1-kun. Just remember that they are but a Typeclass, and that you don't truly need to ``understand'' them, just get used to them. Read up on parametric polymorphism first (ADTs, how they are parametric) and probably functors a bit (you map and shuffle concrete types of a container around). It helps in clearing things up.
But you must know the gist of monads already. It's mostly container type shuffling, shoving contained things into containers and non-contained things into the container.