Newbie to coding here

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:

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.

1 Like

I learned haskell with Haskell Programming From First Principles ( 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.


My default recommendation for nearly any programming language is to write a text-mode game.


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.

1 Like

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:

  1. Follow the blog generator book as per Jaror’s post Newbie to coding here - #5 by jaror

  2. Type signatures are your friend, get used to reading and using them.

  3. 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.

  4. 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.

  5. Practice!’s Haskell track provides a wide variety of problems you can bash your head against :slight_smile:

  6. 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.

1 Like

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.

1 Like