Happy Learn Haskell Tutorial Vol 1

Buy now at Leanpub

Please Buy now at Leanpub

Written and illustrated by GetContented.

Published on 2016-05-20.


Contents

Main Table of Contents
1. How to learn Haskell enjoyably
... 1.1. Fascination
... 1.2. Wish to Create
... 1.3. Too Many Details?
... 1.4. The Journey Begins
... 1.5. And Now You...
... 1.6. No Magic, But Why Pain?
... 1.7. Precise Language
... 1.8. Taking Care
... 1.9. Two Phases of Learning
... 1.10. Stages Build Skill
... 1.11. Simple, but Fun Examples
... 1.12. Progressive Learning
... 1.13. Natural Assmiliation
... 1.14. Motivation is King
Next chapter: 2. Your First Step

1. How to learn Haskell enjoyably 🔗

1.1. Fascination 🔗

Just like you, when we discovered computers we were taken in, fascinated by their potential. We watched happily as programs seemed to make anything possible. Such amazing works by the programmers who created them.

1.2. Wish to Create 🔗

Delight quickly changed to desire: desire to write our own programs, but how best to begin? Discovering many books, we filled our heads with knowledge, sadly not finding much guidance about proceeding with the practical craft.

1.3. Too Many Details? 🔗

Trying our hand at making programs ourselves, we discovered details cluttered us. Losing our delight, we'd stop. We simply didn't understand how to use our dusty book-learning. Our programs stank.

1.4. The Journey Begins 🔗

We felt bound by our knowledge, needing to return to the freedom of before we began, so we endured tedious practice and failure, making the theory our own, slowly understanding. Again we found no guide lighting our path, but after an arduous journey, finally the fog lifted and we could write excellent programs and still be excited and joyous.

1.5. And Now You... 🔗

So you too want to become a programmer. Luckily, you've found this guide, crafted by people who have lived this path to the end, and would save you the pain and boredom we endured.

1.6. No Magic, But Why Pain? 🔗

There’s no magic here, but there are more-, or less-difficult paths to choose. If you want mastery, you always need deep practice, but why should this mean pain and boredom? Small steps will be our guide, and fun our companion. But, how to journey?

1.7. Precise Language 🔗

Far more precise language than ours is needed to program. To write in such a language, we need to know the correct words and their strict arrangements; and how to tease our intent apart and clothe it nicely as a program. This is not all.

1.8. Taking Care 🔗

A little knowledge, that dangerous thing, produces some success, and worlds of possibilities arise, bringing excitement with them. The eager beginner quickly gets into a flurried muddle, as enthusiasm has them tackling too much too soon. Initial elation slowly turns into bitter disappointment and they give up or worse, spread hate. We don’t want this for you.

1.9. Two Phases of Learning 🔗

Instead, your learning will proceed in two staggered stages. Each lesson will introduce several programs. Reading, understanding and typing these in yourself will embed them in your own experience. You need this practice to recognise the pieces and to know what they do. We’ll then adjust them slightly and see how they change.

1.10. Stages Build Skill 🔗

This proceeds in a graded, staged way. Using real-world problems to illustrate simple solutions with the language constructs seen so far, our reading will slowly increase in difficulty until we have seen the core of the language and beyond.

1.11. Simple, but Fun Examples 🔗

The second stage starts further along, when enough reading means you know how to do small things. Again, we’ll take care to work within enjoyable limits as we show you how begin to build a path the other way: from problem solving, to intention, to code. This stage will solidify your understanding. Proceeding, we slowly take the training wheels off and before you know it, you’ll be able to make some well-designed programs that read well, are easy to understand and are enjoyable to change.

Many books don't address the subject of how to craft solutions, or they just leave you with nothing but some exercises and your own intuition. Most are focussed heavily on programming language topics first, and how you use them to do things second, if at all. You'll notice we're primarily interested in you learning how to do useful things, rather than the language for its own sake. Practical things will anchor the language more in your memory and experience.

1.12. Progressive Learning 🔗

Our material is cleverly crafted to gradually introduce you to the entire language. We do this over the course of the various, interesting examples which are present in every chapter, across all the volumes. We chose this way because the other way bores people to sleep, which is inconsiderate and tedious.

1.13. Natural Assmiliation 🔗

Countless people have found programming difficult to learn because of boring examples, unpolished writing, or material being organised for language features rather than learner interest.

On the other hand, we've seen great success in material that uses varied repetition, amusing useful pictures, fun examples using real-world topics and small graded steps. This guided our choices in building the entire series, one volume of which you have in your hands.

1.14. Motivation is King 🔗

If motivation really is what pulls us through practice, then we sincerely hope we've inspired motivation and excitement in you with this series, and wish you never forget the love that we all share for learning and programming. May it guide you always.


If you’ve enjoyed reading this, please consider purchasing a copy at Leanpub today

Please follow us, and check out our videos Follow @HappyLearnTutes

Also, Volume 2 is now in beta and being written! Show your support and register your interest at its Leanpub site.


Main Table of Contents
1. How to learn Haskell enjoyably
... 1.1. Fascination
... 1.2. Wish to Create
... 1.3. Too Many Details?
... 1.4. The Journey Begins
... 1.5. And Now You...
... 1.6. No Magic, But Why Pain?
... 1.7. Precise Language
... 1.8. Taking Care
... 1.9. Two Phases of Learning
... 1.10. Stages Build Skill
... 1.11. Simple, but Fun Examples
... 1.12. Progressive Learning
... 1.13. Natural Assmiliation
... 1.14. Motivation is King
Next chapter: 2. Your First Step