Learn Haskell in three weeks experiment

Today I decided to do an experiment and learn Haskell in three weeks. I have about 4 hours a day and I’m curious at what point I’ll get at the end.
My experience in functional programming is almost non-existent except for lambda expressions in java where I am certified by oracle as a java developer.

So let’s get started!

Day 0/21
First impression: Run or fight. I decided to fight.

Day 1/21
Today I learned that in Haskell:

return doesn’t return
Classes aren’t really classes
Variables are actually constants

EDIT:
The best resources for beginners to learning Haskell (from my beginner experience):

Nr. 1.
Haskell Beginner free crash course:
https://typeclasses.com/beginner-crash-course

Nr. 2.

Nr. 3
Best beginners book

16 Likes

hey mate,
send you my positive vibration-!!!

do you have any resources to share? if i may ask.

von Thom

2 Likes

Hi, Thom,
IMO each developer appreciates a course according to his programming and experience level, but I think in this case it’s not very important what you start with, but especially to start with something and keep going!. In my case, after few hours of research, I start with this one:
https://haskell.mooc.fi/part1

There are a lot of good resources like this reedit post:

3 Likes

http://learnyouahaskell.com/starting-out
lets keep contact and share opinions :slight_smile:

2 Likes

Day 2/21
Typing in console make me feeling like 1994 when I discovered MS-DOS 6.22
There are not loops at all! :sweat_smile: the only way to handle with repetitions are recursion

1 Like

Ok mate, I’m at recursion lesson for now
At what lesson are you?

PS
I’m in Vienna/Austria (UTC +1) and you?

Day 3/21
I resumed learning almost from the beginning…

Day 4/21
more and more funny :joy:

  s f g x = f x (g x)

    k x y   = x

    b f g x = f (g x)

    c f g x = f x g

    y f     = f (y f)

    cond p f g x = if p x then f x else g x

    fac  = y (b (cond ((==) 0) (k 1)) (b (s (*)) (c b pred)))

Is Haskell really that confusing?

1 Like

Day 5/21
To start with baby steps is the only way,
Even if you stay a week for a chapter, after a while it becomes accessible.
So my most important advice is to start it slow, slow, very slow. no pressure, no constraints.
Don’t move on to the next chapter until you understand 100% the current one.
Enjoy!

PS.
My goal is to be able to take part in Lars Brünjes’ lessons from the Plutus Pioneer Program at the end of these 3 weeks. :blush:

2 Likes

and how is it going for you?

Day 6/21

I found this and it is very true
Don’t learn Haskell. Just use it!

3 Likes

Day 7/21
I already started to like it!

2 Likes

@Bees_Project , you’ve inspired. I think I might just try learning it myself.

2 Likes

I’m glad to hear that. If you have any questions maybe I can help you because I’m already a week ahead :sweat_smile: :sweat_smile:

So far I can boast that I have already made small but important progress so I will complete these three weeks in any case to find out what it is about.

2 Likes

Day 8/21

I’m already working on a little game in Haskell … :nerd_face:

2 Likes

Consider learning about category theory. An accessible and free e-book is found at GitHub - hmemcpy/milewski-ctfp-pdf: Bartosz Milewski's 'Category Theory for Programmers' unofficial PDF and LaTeX source

It will make you understand Haskell better. For fast results, directly learning and implementing is good, but after that, you’ll want to add depth to your understanding.

4 Likes

Thank you!!, I will return to this book after learning the Haskell alphabet… :+1:

For now I have reached recursion in lists that are a kind of party pooper, but the show must go on.

2 Likes

That is awesome to hear!

I just enrolled into

From the forum post:

WOULD LOVE TO BE KEPT UP TO DATE WITH YOUR PROGRESS.

4 Likes

Thank you!, this is a great source to learn. I also enrolled into :+1:

1 Like