Put the power of Haskell to work in your programs, learning from an engineer who uses Haskell daily to get practical work done efficiently. Leverage powerful features like Monad Transformers and Type Families to build useful applications. Realize the benefits of a pure functional language, like protecting your code from side effects. Manage concurrent processes fearlessly. Apply functional techniques to working with databases and building RESTful services. Don’t get bogged down in theory, but learn to employ advanced programming concepts to solve real-world problems. Don’t just learn the syntax, but dive deeply into Haskell as you build efficient, well-tested programs.
Disclaimer: I was one of the technical reviewers for this book and I know the author. I also provided an endorsement quote for the book, which I still stand by 100%:
As a professional Haskell programmer, it was always difficult to recommend a single up-to-date learning resource for new team members. This book fills that niche perfectly.
Effective Haskell can take you from having no Haskell experience at all to writing practical and clean real-world code. It covers all the core topics you need to write real Haskell and pulls them together with some thoroughly worked-out example projects. The book has everything for a learning experience: clear explanations, code examples, exercises and even a more involved project. You can use the book as an all-inclusive learning guide and follow all of these, or you can use it as a pushing-off point to do your own thing—whatever style suits you best.
These days, there's an amazing amount of Haskell learning materials in the world: books, blog posts, tutorials, papers... But most of them either cater exclusively to beginners or to experts; good intermediate resources are thin on the ground. Effective Haskell fills that niche well; it starts out at a level suitable for complete beginners, but expands into more advanced language features and concepts, and helps you scale from small bits of self-contained code to structured applications. There's no substitute for working on larger projects yourself, of course, but a book like this structured the information you need to get up and running yourself.
Going forward, when people ask me to recommend a single Haskell learning resource, Effective Haskell will be my first suggestion.