Intersect Committees
Intersect Knowledge BaseIntersect Website
Intersect - Open Source Committee
Intersect - Open Source Committee
  • ABOUT
    • Open Source Committee (OSC)
      • πŸ™‚Open Source Committee Charter
      • Committee Members
      • Open Source Committee 2025 Proposals
      • OSC Communications
      • OSC Engagement
      • How to Join or Contact Us?
    • 🀠Open Source Office (OSO)
      • πŸ˜›2025 OSO Roadmap
        • 😍2024 OSO Roadmap (Archive)
      • 😲Developer Advocate Program
        • State of Developer Experience Survey
        • Developer Advocate Cohort #1
      • 😎Strategic Partnerships
        • πŸ§‘β€πŸ«TODO Group
        • πŸ—οΈLinux Foundation Decentralized Trust (LFDT, prevousliy Hyperledger)
        • πŸ¦‰Bitergia Analytics
      • πŸ‘¨β€πŸ«Project Support Services
      • πŸ“ŠCardano’s Decentralized Shift: Key Players and Impact
      • πŸ“ˆCurrent Monthly Maturity Report
      • πŸ˜‰True Open Source Maturity Pilot
      • πŸ“œIntersecting Open Source and Sustainability: A Paid Open Source Model for Ecosystems
    • 🀩Open Source Strategy
  • πŸ“šGuides and Educational Resources
    • πŸšΆβ€β™‚οΈHitchhiker's Guide to Cardano
    • 🀯Onboarding Guide for Haskell Learners
    • πŸŽ“Functional Programming in Haskell
    • πŸ§‘β€πŸŽ“Advanced Functional Programming in Haskell
    • 😁Onboarding Guide for Rust Learners
    • πŸ˜‰Onboarding Guide for Aiken Learners
    • πŸ˜…Onboarding Guide for Nix Learners
  • Working Groups
    • Developer Experience Working Group
    • Commercialization Working Group
      • SWOT Analysis
    • OSC Working Group Archive
      • Project Incubation WG (Archive)
      • Open Source Libraries Working Group
  • Policies
    • Introduction
    • πŸ“œGovernance Policy
      • Documentation
      • Legal
      • Glossary
    • πŸ”Security Policy
    • πŸͺœContribution Ladder Framework
    • πŸ˜‹Project Incubation Lifecycle Framework
      • πŸ₯ΉProject Incubation: Acceptance Criteria
    • βœ…OSC Voting Policy
      • OSC Off-Cycle Vote 09.2024
  • OSC Meeting Minutes
    • Open Source Committee Meeting Minutes
      • 2024 Meeting Minutes
        • 😁(12/15/23) Meeting Minutes
        • πŸ˜†(01/12/24) Meeting Minutes
        • 😊(01/26/24) Meeting Minutes
        • πŸ˜‰(02/02/24) Meeting Minutes
        • 😎(02/16/24) Meeting Minutes
        • πŸ₯Ή(02/23/24) Meeting Minutes
        • 😍(03/01/2024) Meeting Minutes
        • 🫠(03/08/2024) Meeting Minutes
        • πŸ₯Ή(03/15/2024) Meeting Minutes
        • πŸ˜…(03/22/2024) Meeting Minutes
        • πŸ˜†(03/28/2024) Meeting Minutes
        • 😁(04/12/2024) Meeting Minutes
        • πŸ˜›(04/19/2024) Meeting Minutes
        • πŸ€“(04/26/2024) Meeting Minutes
        • πŸ₯Έ(05/03/2024) Meeting Minute
        • 😏(05/17/2024) Meeting Minutes
        • 🫨(06/07/2024) Meeting Minutes
        • 🀩(06/21/2024) Meeting Minutes
        • 😌(07/12/2024) Meeting Minutes
        • 😎(07/19/2024) Meeting Minutes
        • 🀐(08/02/2024) Meeting Minutes
        • πŸ™ƒ(08/08/2024) Meeting Minutes
        • 🀠(08/22/2024) Meeting Minutes
        • 😡(09/05/2024) Meeting Minutes
        • πŸ§”(09/20/2024) Meeting Minutes
        • πŸ‘‹(10/03/2024) Meeting Minutes
        • πŸ™ƒ(10/31/2024) Meeting Minutes
        • 🀀(11/07/2024) Meeting Minutes
        • πŸ˜›(11/14/2024) Meeting Minutes
        • πŸ˜…(12/12/2024) Meeting Minutes
        • πŸ˜‰(12/19/2024) Meeting Minutes
      • πŸ™‚(01/09/2025) Meeting Minutes
      • πŸ˜‰(01/16/2025) Meeting Minutes
      • πŸ™‚(01/23/2025) Meeting Minutes
      • πŸ˜‰(02/06/2025) Meeting Minutes
      • πŸ€“(02/20/2025) Meeting Minutes
      • πŸ˜†(03/06/2025) Meeting Minutes
      • πŸ™ƒ(03/20/2025) Meeting Minutes
      • 🫒(04/03/2025) Meeting Minutes
      • πŸ˜…(04/17/2025) Meeting Minutes
      • πŸ™ƒ(05/01/2025) Meeting Minutes
      • 🀭(05/15/2025) Meeting Minutes
      • πŸ˜›(05/29/2025) Meeting Minutes
      • πŸ₯³(06/12/2025) Meeting Minutes
  • All Monthly Reports
    • Bitergia Repo Maturity Reports
      • Monthly Maturity Reports - 2025
        • Monthly Maturity Report - January 2025
        • Monthly Maturity Report - February 2025
        • Monthly Maturity Report - March 2025
        • Monthly Maturity Report - April 2025
        • Monthly Maturity Report- May 2025
      • Monthly Maturity Reports - 2024
        • Monthly Maturity Report - May 2024
        • Monthly Maturity Report - June 2024
        • Monthly Maturity Report - July 2024
        • Monthly Maturity Report - August 2024
        • Monthly Maturity Report - September 2024
        • Monthly Maturity Report - October 2024
        • Monthly Maturity Report - November 2024
        • Monthly Maturity Report - December 2024
Powered by GitBook
On this page
  • Getting Started with Haskell for Cardano Development
  • Onboarding Journey: From Haskell Novice to Smart Contract Developer
  • Learning Resources
  • Cardano-Specific Haskell: Plutus and Training
  • Suggested Learning Path
  1. Guides and Educational Resources

Onboarding Guide for Haskell Learners

This page is in active construction and welcome to feedback for any inaccuracies.

PreviousHitchhiker's Guide to CardanoNextFunctional Programming in Haskell

Last updated 1 day ago

Getting Started with Haskell for Cardano Development

Haskell is a statically-typed, purely functional programming language known for its strong type system and reliability. It’s the foundation of Cardano’s smart contract platform Plutus, which is implemented as a Haskell library. In fact, the Cardano Developer Portal notes that β€œPlutus is the smart contract platform of the Cardano blockchain” allowing developers to write on-chain code in Haskell . Because of Haskell’s emphasis on correctness and deterministic behavior, Cardano’s core components (and Plutus smart contracts) are written in or based on Haskell . In short, learning Haskell is the first step to writing secure, high-assurance Cardano applications.

Onboarding Journey: From Haskell Novice to Smart Contract Developer

  1. Learn Haskell Basics: Start with the core language concepts – syntax, types, functions, and basic I/O. Beginner resources like Learn You a Haskell for Great Good or Haskell Programming from First Principles (Allen & Moronuki) can teach you functional programming ideas in an engaging way. IOHK’s free interactive Haskell course (on GitHub) is also designed to take you β€œfrom zero to productive” with hands-on Jupyter notebooks . Focus on small programs and exercises (Project Euler, code katas) to build intuition.

  2. Deepen Functional Skills: Once you’re comfortable with basics (lists, pattern matching, recursion, typeclasses), explore advanced concepts: monads (IO, Maybe, etc.), applicatives, concurrent programming, and type-level features. Good intermediate resources include Real World Haskell, Thinking with Types, and Parallel and Concurrent Programming in Haskell . Practice by writing real Haskell code or solving challenges on sites like Exercism or HackerRank.

  3. Begin Cardano/Plutus Fundamentals: Study Cardano’s extended UTXO (EUTXO) model and how smart contracts fit in. Dive into Plutus by following the official tutorials – e.g. the Plutus Tutorial on the Cardano Developer Portal – and read introductory blog posts. Crucially, join the Plutus Pioneer Program (IOHK’s training course) or review its materials. The Pioneer Program is an in-depth, cohort-based course taught by IOHK educators to train developers in Plutus (the native smart contract language) . As the Cardano docs advise, β€œIf you don’t know Haskell yet, consider starting with Haskell” before tackling Plutus .

  4. Build & Deploy Smart Contracts: Apply your knowledge by writing simple on-chain validators and off-chain code. Use tools like the Plutus Playground or Plutus Application Backend (PAB) to test contracts on Cardano testnets. Study example projects (NFT minting, vesting contracts, decentralized apps) and follow hands-on guides. As you grow, learn about on-chain efficiency (script size/cost) and best practices. Throughout, participate in community channels (Cardano forums, Discord) for support.

Learning Resources

πŸ“š Books

  • Beginner:

    • Learn You a Haskell for Great Good (Miran Lipovača) – a free online tutorial with colorful illustrations .

    • Haskell Programming from First Principles (Allen & Moronuki) – a comprehensive beginner’s textbook .

    • Get Programming with Haskell (Will Kurt) – an interactive beginner’s guide (Manning LiveBook) .

    • CIS 194: Introduction to Haskell (UPenn course notes) – free lecture notes/slides for new learners .

    • A Type of Programming (Renzo Carbonara) – a free book emphasizing a functional mindset .

  • Intermediate:

    • Real World Haskell (O’Sullivan, Stewart, Goerzen) – practical examples of Haskell programming .

    • Thinking with Types (Sandy Maguire) – deep dive into Haskell’s type system .

    • Typeclasses (Chris Martin & Julie Moronuki) – explores Haskell’s polymorphism .

    • Parallel and Concurrent Programming in Haskell (Simon Marlow) – concurrency models and libraries .

    • Category Theory for Programmers (Bartosz Milewski) – advanced functional abstractions (applies to Haskell) .

  • Advanced:

    • Haskell in Depth (Vitaly Bragilevsky) – an advanced book covering GHC extensions and libraries .

    • Introductions to Advanced Topics in Haskell (Gabriel Gonzalez, ed.) – essays on type-level programming, lens, etc.

    • Functional programming research papers and blogs for highly technical detail.

🌐 Online Tutorials & Guides

  • University Courses: Penn’s CIS 194 and similar Haskell courses often have free video lectures and notes (use search or Haskell Wiki).

  • Blog Posts: Look for beginner-friendly blog posts (e.g. β€œHow I Learned Haskell” stories) and community Q&A. StackOverflow also has β€œGetting Started” threads for Haskell.

πŸŽ₯ Video Courses

  • Other YouTube Series: Many Haskell enthusiasts and Cardano developers post tutorials (for example, β€œPlutus Playground” demos, Cardano 101 talks). Check Cardano community channels for curated playlists.

πŸ’» Interactive Platforms

  • Exercism (Haskell Track): Offers 100+ guided coding exercises with mentor feedback, ideal for practice.

  • Replit / CoCalc: Online coding environments where you can run Haskell code without local setup.

  • FP Complete’s School of Haskell: An online IDE with lessons on Haskell (some content is free, some paid).

  • Cardano Playgrounds: For Cardano-specific practice, tools like the Plutus Playground and Marlowe Playground let you write and simulate contracts graphically (no code editor needed).

Cardano-Specific Haskell: Plutus and Training

Other Cardano Resources: Don’t forget general Cardano dev docs and communities. For example, the Cardano Developer Portal has step-by-step guides (β€œPlutus resources”, smart contract tutorials) and the Marlowe playground for financial contracts. EMURGO and Community sites (e.g. Essential Cardano) also publish Haskell/Plutus tutorials and newsletters. Engaging with the Cardano Forum and Discord can point you to meetups, hackathons, and mentoring.

Suggested Learning Path

Stage & Focus

Recommended Resources

Haskell Fundamentals (Beginner) – Learn syntax, types, basic FP concepts.

Advanced Haskell & FP – Master typeclasses, monads, concurrency.

Plutus & Cardano Basics – Learn UTXO/EUTXO and smart contract patterns.

Advanced Cardano Dev – Build, test, and deploy real DApps.

Engage with community tutorials, IOG Academy advanced content, and code review. Tools: Plutus Application Backend (PAB), Cardano CLI, on-chain performance tuning.

This structured path – from Haskell basics up through Plutus smart contracts – will guide you step by step. Along the way, use the many books, courses, and interactive platforms listed above to reinforce your learning. With patience and practice, you’ll progress into building powerful, production-ready applications on the Cardano blockchain.

Haskell.org Tutorials: The official site hosts A Gentle Introduction to Haskell (Hudak et al.) and β€œLearn Haskell in 10 Minutes” guides . These tutorials assume some programming background and focus on core concepts.

Haskell Wiki: The Haskell Wiki Tutorials page lists many community-written guides (e.g. β€œWhat I Wish I Knew When Learning Haskell” by Stephen Diehl ) and links to university course materials. It’s a great index of blogs, code snippets, and advice.

Haskell & Crypto Mongolia 2020: A popular free YouTube course by Andres LΓΆh and Lars BrΓΌnjes, used as a starting point for Plutus Pioneers . It’s a 10-week deep dive into Haskell and blockchain concepts.

IOG Academy Haskell Course: Input Output (IOHK) offers a self-paced Haskell course (available on GitHub and YouTube). It is designed for beginners to learn Haskell fundamentals via interactive notebooks .

Plutus Pioneer Program Lectures: All past Plutus Pioneer lectures are online (Lars BrΓΌnjes’s YouTube playlist). These weekly videos cover Haskell and Plutus for Cardano development .

Haskell MOOC (University of Helsinki): A free online course with exercises and auto-grading. It teaches functional programming using Haskell (no prior experience required) .

Try Haskell: An in-browser interactive REPL/tutorial by Chris Done – great for quick experiments .

Plutus (Haskell on Cardano): Plutus is the native smart contract language for Cardano – essentially a Haskell library for on-chain scripts. The Cardano docs explain that β€œPlutus allows all programming to be done from a single Haskell library”, enabling secure, deterministic smart contracts . In practice, you write Haskell code (often called Plutus Tx) that compiles to Plutus Core, the Cardano on-chain VM language. Learning Plutus means learning how to express transaction validators, minting policies, and off-chain infrastructure in Haskell.

Plutus Pioneer Program: IOHK’s Plutus Pioneer Program is the flagship training course for Cardano smart contract development. It is an open, intensive curriculum (with weekly videos and exercises) that β€œrecruits and trains software developers in Plutus, the native smart contract language for the Cardano ecosystem” . Completed at your own pace or in cohort cohorts, the Pioneer Program teaches both Haskell and Plutus best practices. (Past lecture videos and course materials are freely available online.)

IOG Academy Courses: The Input Output Group (IOHK) also provides foundational courses. In addition to the Plutus Pioneer, the IOG Education Team created a Haskell course for beginners, as well as follow-up tutorials on Plutus Tx and DApp building or . The Haskell course (featuring Jupyter notebooks and video) is specifically designed for programmers new to Haskell. Once ready for Plutus, the Developer Portal and IOHK blog offer guides like β€œWriting a basic Plutus application” and example projects.

Books: Learn You a Haskell for Great Good, Haskell Programming from First Principles. Courses: IOHK’s Haskell Course, Haskell MOOC. Practice: Try Haskell, simple exercises (Project Euler).

Books: Real World Haskell, Thinking with Types. Interactive: Exercism (Haskell track). Tutorials: "What I Wish I Knew...", and HaskellWiki guides.

Cardano Dev Portal: Plutus tutorials. Video: Haskell & Crypto Mongolia 2020. Course: Plutus Pioneer Program materials. Build: Plutus Playground examples.

πŸ“š
🀯
developers.cardano.org
developers.cardano.org
developers.cardano.org
github.com
github.com
github.com
github.com
developers.cardano.org
developers.cardano.org
developers.cardano.org
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
wiki.haskell.org
wiki.haskell.org
developers.cardano.org
github.com
developers.cardano.org
haskell.mooc.fi
tryhaskell.org
developers.cardano.org
github.com
developers.cardano.org
github.com
developers.cardano.org
github.com
github.com
haskell.mooc.fi
tryhaskell.org
github.com
wiki.haskell.org
developers.cardano.org
developers.cardano.org
github.com