I'll get to the title topic in just a minute. But first, more about

*Real World Haskell. C*urrently I'm a little more than halfway through the book, and still liking it quite a lot. I'm currently halfway through the "Programming With Monads" chapter. I'm feeling that this chapter is a little dense with text and that more incremental baby-steps exercises would do it some good. Certainly they would do me some good. So I'm stopping where I am until I have time to sit down and write some more monadic code. I imagine it will take a few repetitions until I'm comfortable with it, but that seems like a fundamental skill if you want to write Haskell.

Now for the main feature: if I had to do it all over again, here's

**what I would do to learn Haskell** **from scratch**:

- Start by reading
*Learn You A Haskell. *All the way through.
- Really get into some code with Write Yourself a Scheme.
- Read
*Read World Haskell *from the very beginning, and don't skim through the earlier chapters; they have a different and useful way of presenting the basics. Yet I wouldn't start here; I learn best when I see a topic from a couple of different directions. I have the dead tree version of the book but there's a free PDF available here.

And here's

**what I would not do:**
- Read Monad tutorials early in the learning process. I wouldn't recommend it before reaching the monad chapter in
*Real World Haskell*. First of all, the monad sections in *Learn You A Haskell *and *Real World Haskell *are quite good. Second, monad tutorials are more effective if they are immediately reinforced by some coding exercises. I think the best path to understanding monads is by *using *the damn things.
- Read any type theory content until . . . well, past where I am now. I have read some of this stuff and have yet to see any useful connection to actual Haskell code. I'm sure I'll get there eventually, but I'm not there yet.
- Do not start
*Haskell School of Expression *unless you **first** find the source code *and get it running*.

Finally, there's something I

**might **do: read

*The Haskell Road to Maths, Logic, and Programming. *That book is rather less a book about programming Haskell and more a book about the foundations of mathematics. If that sounds interesting, then the exercises in the book are a nice way to get some coding practice as you are coming up to speed in Haskell.