
Ask HN: How did you really learn Haskell? - bobajett
I've been going through Learn You a Haskell and Real World Haskell, but I was curious to find out the experience other Haskellers had in their path to learning Haskell? The author of LYAH himself mentioned: "I failed to learn Haskell approximately 2 times before finally grasping it because it all just seemed too weird to me and I didn't get it." So I thought it would be very interesting and helpful to find out others experience and how they eventually learned Haskell.
======
tikhonj
I started reading LYAH, and found it interesting but slow. I wasn't patient
enough to get through more than the first half of the book. Then I found
"Write Yourself a Scheme in 48 Hours"[1], which was much more interesting. I
just jumped into that and wrote a simple Scheme interpreter which then morphed
into an interpreter for my own language.

[1]:
[http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_H...](http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours)

Basically, I learned enough to become comfortable with Haskell through that
little project. After that, I got better by working on more projects in
Haskell, doing more reading and answering StackOverflow questions.

------
gtani
Learn thoroughly how to read type signatures, compiler warning/errors, GHCi
ouput. The 4th thing on my Learn to Read list for other languages is
bytecode/Core/assembler but that's not easy

My first languages were APL and C, I learned them the same way, by learning
how sets of language features were used together vs. ruby or clojure where you
learn how a feature works in isolation ("oh, that's a block, that's
destructuring a vector etc"). I put postit notes on all the code snippets i
didn't understand in RWH and stared at them until i understood what every
token was doing there. So if you're going along saying, I 90% understand, 82%,
79%, go back.

If it helps, there's a lot more resources and places to ask questions, ask for
refactorings, I'm going to pimp my list

[http://isthishaskell.blogspot.com/2013/02/tips-on-
learning.h...](http://isthishaskell.blogspot.com/2013/02/tips-on-
learning.html)

(If you ask same question on reddit or beginners mailing list, you'll get
dozens of answers)

------
johnsoft
I had the same experience. I tried learning Haskell twice and failed miserably
both times. I think my brain pieced things together subconsciously after those
two attempts though, because the third time I sat down with it, it almost
seemed to come naturally. Unfortunately, as much as I love the language, I
also quickly came to the conclusion that it's not a very good fit for the
kinds of projects I usually work on, although maybe I would have another
sudden revelation if I jumped in and tried using it for a web app. Still,
understanding some of the principles of the language, the rich type system,
isolation of i/o, etc, have undoubtedly changed my coding style in all
languages for the better.

This was my first working Haskell program -
<https://github.com/johnsoft/haskell-sudoku-solver>

------
tunesmith
I'm being super-methodical about it. I read LYAH halfway through and felt like
it was starting to fall through my fingers like sand.

So I went back to the beginning and started to make an Anki deck about it. I
have a deck for the long Starting Out chapter completed now - 269 cards - and
am about to start on Types and Typeclasses. It'll take forever, but it's
amazing how much better I retain what I'm learning now. Not sure how suitable
Anki will be when the book starts getting more theoretical, but so far it's
working great.

I think it's worthwhile to mess around with Project Euler as you go, too - you
can solve the first Euler question with the knowledge in just that first
section, and if you struggle through the alebraic form, it's really rewarding.

------
1123581321
I learned to use it for math and scripting by doing Project Euler problems.

