https://github.com/askewcow/haskell-by-doing
A hands-on journey to learning Haskell by building projects, exercises, and notes. Perfect for people from all backgrounds!
https://github.com/askewcow/haskell-by-doing
best-way-to-learn-haskell coding-exercises fp functional-paradigm functional-programming functional-programming-exercises haskell haskell-beginner haskell-course haskell-course-github haskell-exercises haskell-fundamentals haskell-learning haskell-projects-github haskell-tutorial learn-functional-programming learn-haskell programming-exercises
Last synced: 13 days ago
JSON representation
A hands-on journey to learning Haskell by building projects, exercises, and notes. Perfect for people from all backgrounds!
- Host: GitHub
- URL: https://github.com/askewcow/haskell-by-doing
- Owner: AskewCow
- License: other
- Created: 2025-09-02T09:59:53.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2025-09-03T20:50:23.000Z (about 2 months ago)
- Last Synced: 2025-09-03T22:25:55.744Z (about 2 months ago)
- Topics: best-way-to-learn-haskell, coding-exercises, fp, functional-paradigm, functional-programming, functional-programming-exercises, haskell, haskell-beginner, haskell-course, haskell-course-github, haskell-exercises, haskell-fundamentals, haskell-learning, haskell-projects-github, haskell-tutorial, learn-functional-programming, learn-haskell, programming-exercises
- Language: Haskell
- Homepage:
- Size: 30.3 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# π Learn Haskell - A GitHub-Driven Learning Course
Welcome to the **Haskell by Doing** course! This is a modern, GitHub-optimized path to mastering Haskell, designed to grow your skills **and** your profile β.
Whether you're just starting out or brushing up, this course will walk you through functional programming concepts using a structured, visual, and hands-on approach.
---
## β¨ Why This Course?
- β
Beginner-friendly explanations
- π Real-world code examples
- π Step-by-step challenges
- π± Build incrementally- one concept at a time
- π Grow your GitHub with visible progress
---
# π§ How This Course Works
## 1. π Learn a Concept
- Short, clear explanations
- π‘ Minimal but focused code examples
- π¨ Visuals and edge cases explained
## 2. ποΈββοΈ Try It Yourself
- Solve challenges in each lesson folder
- β¬οΈ Push your work to GitHub
- π Add notes on what confused you
## 3. π§© Level Up Over Time
- Each module builds on the last
- π§ Develop intuition, not just syntax
## 4. ποΈ Document What You Learn
- Use the built-in note system (or create your own)
- π© Keep track of mistakes, gotchas, and "aha" moments
---
# π Reading Notes and Lessons in VS Code
All lessons and notes use **Markdown (`.md`) files** for a clean, readable experience in VS Code.
> π‘ **Tip:**
>
> - Right-click any `.md` file (like `README.md`, `01-Fundamentals.md`, etc.) and choose **βOpen Previewβ**
> - Or use the shortcut:
> - **Mac:** `Cmd + Shift + V`
> - **Windows/Linux:** `Ctrl + Shift + V`
This opens a styled, easy-to-read view, perfect for:
| π What? | π File(s) |
| --------------------- | --------------- |
| Lecture explanations | `/content/*.md` |
| Your personal notes | `/notes/*.md` |
| Exercise walkthroughs | lesson folders |
You can also **split the editor** and open the preview side-by-side with the text for even better workflow!
---
# βοΈ Getting Set Up
### π¦ Step 1: Install GHC, Cabal & Stack
**Install via [GHCup](https://www.haskell.org/ghcup/):**
```bash
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
```
This will install:
- `ghc` β The Haskell compiler
- `cabal` β Standard Haskell build tool
- `stack` β Optional alternative build tool (you may not need it, but it's good to have)
After installation, **restart your terminal**, then check your install:
```bash
ghc --version
cabal --version
stack --version # optional
```
β
If you see version numbers, your installation is successful.
---
### π» Step 2: Install VS Code + Extensions
Download [Visual Studio Code](https://code.visualstudio.com/) if you donβt have it.
**Recommended Extensions:**
| Extension | Publisher | Why |
| ------------------------------ | ----------- | ------------------------------------------------------------------- |
| π£ Haskell | Haskell | Full support: errors, warnings, type hints, go-to-definition (HLS). |
| π¨ Haskell Syntax Highlighting | Justus Adam | Adds proper syntax coloring for `.hs` files. |
#### β οΈ What you don't need:
- Live Server or Code Runner β Not needed for Haskell
- Old/unmaintained Haskell extensions β stick to the two above
After installing the Haskell extension, VS Code will prompt you to install **Haskell Language Server (HLS)** if it isnβt already set up.
π Accept that prompt.
With both extensions installed, youβll get syntax highlighting + smart Haskell editing.
---
### β
Step 3: Clone the Course Repo
The course is pre-structured, i.e. you donβt need to create a new project. Just clone and open it:
```bash
git clone https://github.com/AskewCow/haskell-by-doing
cd haskell-course
code . # Opens folder in vsc
```
Youβre ready to go! π Start with `01-Fundamentals/content`
---
### π§ͺ Optional: Test That VS Code Works
Open any `.hs` file in VS Code and make sure you see:
- Autocompletion
- Type info when hovering over expressions
- Inline error messages (if somethingβs wrong)
- Haskell-specific color syntax
If all of those are working, then HLS is active and everything is set up properly.
---
# π Ready to Start Your Haskell Journey?