8 ways to learn Elm quickly

Learning Elm but don’t know where to start?

Here are some (mostly free) resources to help you understand the language’s principles and get a project started:

The Elm Guide

guide.elm-lang.org

The official guide to the Elm language by its creator Evan Czaplicki.

Evan gives a friendly overview of each part of the language and how they fit together.

Highly recommended as a starting point.

Elm Slack

elmlang.herokuapp.com

In my experience, Elm’s community is kind, welcoming, and helpful!

The Elm Slack has channels for asking general questions, news, help using popular packages, and many other topics.

Book: “Elm In Action” by Richard Feldman (💸 paid)

https://www.manning.com/books/elm-in-action

A well-written and practically structured reference by Richard Feldman, one of Elm’s most experienced and well-known public figures.

Blog: “Setting up an Elm project in 2022” by Lindsay Wardell

https://www.lindsaykwardell.com/blog/setting-up-elm-in-2022

Lindsay Wardell’s article is timely and concrete, explaining how to get started with Elm’s tooling.

She covers Elm’s core CLI tools, editor setup, testing, and application frameworks.

“Beginning Elm” by Pawan Poudel

elmprogramming.com

Elm Programming’s site is a friendly and comprehensive book-length tutorial, with numerous code samples, diagrams, and thoughtful explanations.

Exercism

exercism.org/tracks/elm

Exercism is a free learning site full of exercises in many different languages, including Elm.

If you value learning through hands-on practice, give this one a try.

Elm Patterns by Sebastian Porto

http://sporto.github.io/elm-patterns/index.html

An excellent compact reference, Sebastian Porto has collected the most common design patterns in Elm into one helpful Gitbook.

Conference talks

When it comes to learning Elm’s culture and mindset, conference talks are great resources. My recent post includes five insightful talks that helped me foster good habits.


This post was originally a Twitter thread as part of Ship 30 for 30.