Learning a niche language like Elm involves a lot of head scratching over sparse documentation, posting to forums and hoping to get at least one response, looking at other people’s undocumented code on GitHub to solve your problems, and generally a lot of stabs in the dark. Right? Well, I’m happy to say that at least for Elm, it’s no longer true.
The official introduction to Elm is a useful overview of the language, but what’s available beyond that? In 2018, the answer is “quite a lot”, as it turns out. There are books, video courses, talks and guides. Whether you prefer learning by reading or watching, you’ll find something here. I’m happy to say that we’re getting to a point where there is a substantial amount of resources above beginner level.
This is a beginner to intermediate level book. It is in early access at the time of writing this post, so it doesn’t include chapters 7-10 (Tools, Single-Page Applications, Scaling Elm Code, and Performance Optimisation). It starts from the basics and requires no prior knowedge of Elm. After introducing some of the syntax, Richard begins walking us through building an application for browsing photos, introducing many topics such as server requests, JSON decoding and testing along the way. $40.
Jeremy’s book also starts from the basics of Elm syntax, but we launch into building a photo sharing application right from the first chapter. The scope of the book is similar to Elm in Action. In the course of the book, you will learn a lot of useful things about communicating with servers, using WebSockets, JS interop, building single-page applications, as well as debugging, testing and performance optimisation. The book is still in beta at the time of writing this post, but all the content appears to be in place. $22.
My book is for people who already have some familiarity with Elm. As such, it skips the basics like Elm syntax and the Elm architecture and proceeds at a faster pace than other books. It provides answers to practical questions: how to deal with styling, how to decode complex JSON, how to get maximum leverage out of the type system, and so on. Currently in early access. $34.
Brian’s book is also a work in progress. It isn’t strictly about Elm, however the first 400-odd pages are dedicated to Elm. The later chapters are about another language called PureScript. This is a good book if you’re interested in learning more about functional programming techniques and concepts like phantom types, lenses and monoids in the context of Elm. However, Brian also introduces a sample application midway through the book, and uses it to showcase the
elm-style-animation package as well as discussing error handling and working with JSON. $13 minimum, $22 recommended.
If writing JSON decoders is a stumbling block for you, then you’ll benefit from Brian’s short book which digs into this topic in particular. $29.
This course is a 9 hour recording of a live Elm workshop spanning beginner to intermediate topics. I have only seen parts of it, but it seems extremely thorough and includes topics like scaling the code and optimisation. $39/month.
This course is about the basics of Elm programming. Free.
Covers topics like SPA navigation, ports, WebSockets, and JSON decoding in the context of developing a sample application. $45.
This course revolves around building a buzzword bingo application. It starts from the basics like currying and the Elm type system, and then moves on to the Elm architecture, introducing commands, making server requests and working with JSON, as well as event handling and some consideration of code organisation. $65
There are a number of videos by several authors covering various aspects of Elm. Videos appear to be free, extra features $40/month.
One of these is my course which is based on a subset of the material in my book Practical Elm. Richard Feldman’s Frontend Masters Elm course is also available here, as well as a beginner Elm course by Michael van Sickle. $29/month.
A number of short screencasts about writing Elm, some free, others $9/month.
55 mostly standalone screencasts on various Elm topics. Free.
Describes Elm using examples of simple games and a chat. $14.
These Elm talks in particular changed my thinking with regards to writing Elm in some way:
A couple of non-Elm functional programming talks which I found fascinating:
You can find more Elm talks here:
Elm Tutorial (also available in several languages other than English)
I thought this would be the longest section but in the end I could only think of a few links to include here. I’m sure there are things I’m not aware of, but most of the content I’ve seen is either beginner level or focused very narrowly on solving a specific problem. The material below is more substantial and has broader appeal, I hope.
Good place to seek advice on specific issues, find out about interesting packages and learn new techniques.
There is a weekly thread for beginner questions here, and people regularly ask about specific issues in other posts as well. You will hear about people’s projects and posts as well.
For more interactive help, you can join the Elm Slack. The community is very friendly, and there are many channels dedicated to specific aspects of working with Elm.
Did I miss any good material? Let me know on Twitter - I’m @alexkorban.
My book, Practical Elm for a Busy Developer, skips the basics and gets right into explaining how to do practical stuff. Things like building out the UI, communicating with servers, parsing JSON, structuring the application as it grows, testing, and so on. No handholding — the focus is on giving you more substance.
It’s up to date with Elm 0.19.
Pop in your email to get a sample chapter.
(You will also get notifications of new posts along with other mailing list only freebies.)