What resources & practices (teaching Haskell)
Clifford Beshers answers (in part, the most important part):
I have two recommendations: teach them the simplest definitions of the fundamentals; read programs with them, out loud, like children’s books, skipping nothing.
The second one, reading aloud, is one that I have advocated for standards editors. Mostly because it helps you slow down and not “skim” text that you already “know.”
And the same technique can be applied for self-study of any subject, whether it is Haskell, some other programming language, mathematics, or some other domain.