A monad is an abstraction that can be used to parametrize code with the way how computations are sequenced. A monad can also be seen as design pattern, that sometimes makes your code more readable (and, more often, less readable).
Think of monads as of codification of imperative effectful computations in a more general way.
Monads are a pattern of using types to encapsulate some data.
Ah, the functional paradigm. Your brain is screwing with you. You have to stop thinking about telling computer when to do things, you know, do this, then do this, then do this... let computer decide when to do what. Your brain is confused and is trying to tell computer in which order to do things, but did you ever think about the order when creating Excel spreadsheet with formulas? Clojure is like Excel. You focus on the formulas, and Clojure figures out order of execution.
List of FP Resources
Teens and Functional Programming
Conversations with a six-year-old on functional programming
FP Resources
OOS is dead only if FP is dead
Total functional programming (ESFP) literature
Having an Effect by Oleg Kiselyov
Monads Demystified (2015)
Can functional programming be liberated from the von Neumann paradigm? (HN)
COMP 212: Functional Programming Course (2019) - Purpose of this course is to introduce the theory and practice of functional programming (FP).