Educational paradigms are often governed by commercial demand for certain sets of skills. For the past 20 years, the structure of the internet has created a high demand for software written with an imperative approach. However, we believe that the advent of distributed ledger technologies will greatly expand the applications of the internet; creating a large demand for new software written in the declarative/functional paradigm There will be great opportunities for developers with experience in functional languages (like Haskell). Unfortunately, since current demand is relatively low, there isn't much community support for these languages, making them difficult to learn compared to the imperative ones. And so, this guide was born out of our frustration for there being a lack of beginner-friendly applied material.
The purpose of this guide, as the title implies, is to provide you with a means to take the first step. There is no theory here, only step-by-step instructions on how to make something that actually works. Haskell was chosen as the foray language because it is the native language of Cardano, the largest blockchain written in the functional paradigm. The idea here is that by taking the first step, you will become comfortable writing all kinds of functional programs, not just ones having to do with Cardano or distributed systems.
This guide is written for beginners, by beginners, and we hope you find it to be as useful as it would have been for us when we were just starting out.
If ever you get the feeling that all of this is a bit too much, just remember:
"The journey of 1000 miles begins with a single step" - Lao Tzu
Please report any fixes/errors/typos/comments as an issue here: https://github.com/nomadpool/Haskell-GitBook
P.S. If you find this guide useful and would like to help support future educational content, please considering delegating your ADA to NOMAD Pool.
P.S.S. Don't worry about what a monad is; we have no idea either.