hey guys im a newbie to coding i was wondering if i should learn haskell this early if so what projects do you recommend to gain some experience?
I donât think itâs a problem. Some books donât assume much background knowledge in programming in general.
People usually like this one: http://learnyouahaskell.com/
Something like C++ as first language would be way harder, I believe. Because it would involve a lot of historical weight, confusing âdialectsâ and you would need to deal with hardware and memory management.
Haskell you may find hard, but you will be dealing with fundamental ideas that eventually will make sense, not arbitrary elements you are also not familiar with yet.
I learned haskell with Haskell Programming From First Principles (https://haskellbook.com/) and though I had previous coding experience, I still think itâs a great resource for everyone. The book starts from the most fundamental things there could be about haskell to some more advanced concepts, but in a very natural progression.
I would recommend this book:
It not only introduces you to the language but to the tooling as well, which I often find lacking in other books.
For a quick introduction to the basic tooling Iâd suggest First steps - GHCup
I believe Haskell has a unique ability to attract people from all backgrounds and levels of experience. Despite having no programming knowledge and holding a bachelorâs degree in music theory, I found this book [link] incredibly helpful. It has made me feel very comfortable learning Haskell.
Iâm also a musician and I also read this book when I was just starting Haskell. Although I had experience with programming before, but not professionally, and mostly related to music.
Ahh, I was here 2.5 years ago :â)
I loved learning Haskell with no prior coding experience and I still learn and write as much as I can today.
My advice is:
-
Follow the blog generator book as per Jarorâs post Newbie to coding here - #5 by jaror
-
Type signatures are your friend, get used to reading and using them.
-
Use the Systemf FP course to benchmark and evaluate your progress and understanding of FP concepts. Thereâs some advanced stuff there but itâs not all necessary to write Haskell programs, itâs just good to know and have a nice playground to refer to if you find some of these patterns out in the wild. You donât need to finish all of it in one go.
-
Write programs â this is one I shouldâve started much earlier. I tried learning so much theory so I could understand what I was reading but itâs only in application where things really start to click together.
-
Practice! exercism.ioâs Haskell track provides a wide variety of problems you can bash your head against
-
Take your time and learn at your own pace. Haskell has the crazy curse of being a language where you only need about 5% (i.e. you are comfortable with
>>=
/do
in IO + how to bring your pure non-io functions into IO) of the whole language to actually write useful stuff and the other 95% is just really smart people inventing fun and crazy stuff out of either necessity and/or fun. Itâs cool to read and melt your brain, you also donât need it before you do anything.
The best way I can describe it is, Haskell offers a lot of tools and tools to build even more tools; the more you build stuff with the tools you have, the more youâll understand and learn what tools youâll need.
When I started learning Haskell, I only knew a bit of Python and C. By âbit,â I mean things like reading from a file, writing to a file, defining functions, and simple control flowâvery simple stuff. No OOP.
I started learning Haskell and programming by reading Get Programming with Haskell. Even though some aspects of it could be considered âoutdated,â it is still one of the books I recommend to newcomers, alongside Learn You a Haskell.
Seconding that the Haskell School of Music book is awesome. Though unfortunately the official library doesnât work with new versions of GHC etc. Iâve got a fork here.