Learning Elm and feeling alone in the world

1,467 views
Skip to first unread message

Mohammad Alshafey

unread,
Nov 7, 2015, 7:12:22 AM11/7/15
to Elm Discuss
Is there sufficient material online for someone to learn Elm? It seems that the examples available each use different libraries and functions and each with some unique elements. There are no tutorials only basic introductions. The core library documentations are very abstract and lacking. Feeling stuck. I want to learn but there's nothing to go on!

Max Goldstein

unread,
Nov 7, 2015, 7:35:49 AM11/7/15
to Elm Discuss
Hi Mohammad,

Have you seen the official docs? They have some tutorials you may be looking for. There's also some community-written docs, some of which are aimed at filling holes in the official docs. It seems like you've found the standard library reference, which I agree can be intimidating on its own. This guide can help.

And if you have any specific questions, this mailing list is happy to help. Welcome to Elm!

Grzegorz Balcerek

unread,
Nov 7, 2015, 8:30:51 AM11/7/15
to elm-d...@googlegroups.com
Hi,
Have you seen http://elm-by-example.org ?
Grzegorz Balcerek


W dniu 2015-11-07 o 13:12, Mohammad Alshafey pisze:
Is there sufficient material online for someone to learn Elm? It seems that the examples available each use different libraries and functions and each with some unique elements. There are no tutorials only basic introductions. The core library documentations are very abstract and lacking. Feeling stuck. I want to learn but there's nothing to go on!
--
You received this message because you are subscribed to the Google Groups "Elm Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elm-discuss...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Philip Poots

unread,
Nov 7, 2015, 11:13:36 AM11/7/15
to Elm Discuss
Hi Mohammad,

I've also just recently started Elm (2 weeks) but I got pretty far with the materials provided on the official website. For context, I'm coming at it with eight years of Ruby and six of JavaScript. I’m normally the type to want to learn everything about everything at the beginning, but I made the conscious decision to ignore the stuff I didn't understand in favour of just getting something working. I'm ashamed to say I haven't looked at the official documentation for much (yet!), but I find the REPL invaluable for playing around when I don't quite understand something. Especially when the compiler steps in to lend a helping hand. I had to go through the architecture tutorial a couple of times, and admit there were a few points where the conceptual leaps stretched me. Maybe you could share some of the specific hurdles you're facing and we could work to improving what's there if necessary?

If you're looking for something more structured I would heartily recommend the Pragmatic Studio course on Elm [1]. It takes a step-by-step approach and explains everything as it goes along. You end up with a simple, working web application, having covered most of the basics. The caveat being that it's not a language reference and focuses on getting something working over a deep-dive into the language itself. It's a paid course, but at $24 I thought it was tremendous value. It definitely helped me piece everything together.

Philip

[1] Elm: Building Reactive Web Apps, https://pragmaticstudio.com/elm

PS. Order I went through the docs page (http://elm-lang.org/docs):

- Quickstart
  - ignored

- References
  - Syntax
  - Style Guide

- Complete Guide
  - Core Language
  - Model The Problem
  - Architecture

That was enough to get me going, then I moved onto the Pragmatic Studio course.

Jason Zoladz

unread,
Nov 7, 2015, 9:31:26 PM11/7/15
to Elm Discuss
You certainly don't need to know Haskell to write elm, but there is a really entertaining book (free online) -- Learn you a Haskell for Great Good -- that will help you understand Elm. It'll help you get a better grip on the mindset.

Max Goldstein

unread,
Nov 7, 2015, 10:15:33 PM11/7/15
to Elm Discuss
I'm not sure I agree with Jason about learning some Haskell if you're interested only in Elm, but if you've gone through all the other materials we've listed, I suppose it's better than being stuck.

You can also study The Elm Architecture and Todo MVC and build your own simple examples.

Mohammad Alshafey

unread,
Nov 8, 2015, 7:44:35 AM11/8/15
to elm-d...@googlegroups.com
Thank you all! I will look into the material (obviously not learn Haskell within the time -another bigger project I'm keen on) in the next weeks and let you know. 

On 8 November 2015 at 05:15, Max Goldstein <maxgol...@gmail.com> wrote:
I'm not sure I agree with Jason about learning some Haskell if you're interested only in Elm, but if you've gone through all the other materials we've listed, I suppose it's better than being stuck.

You can also study The Elm Architecture and Todo MVC and build your own simple examples.

--
You received this message because you are subscribed to a topic in the Google Groups "Elm Discuss" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/elm-discuss/OlzLOPixsYg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to elm-discuss...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Best regards,

Mohammad Alshafey
Head of Research and Planning
Aqaba Water
+962 79 022 1507

Christopher Anand [g]

unread,
Nov 8, 2015, 3:17:31 PM11/8/15
to elm-d...@googlegroups.com
I have written some chapters for first-year university students with no required experience in computer science.

If you are interested in very rough work, I would be interested in your comments.

Christopher

You received this message because you are subscribed to the Google Groups "Elm Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elm-discuss...@googlegroups.com.

Mohammad Alshafey

unread,
Nov 9, 2015, 3:16:40 PM11/9/15
to elm-d...@googlegroups.com
Yes, please. 

For example, I was looking at the example for a counter today, and everything seemed reasonable. Decided to add buttons and was intuitive. Then wondered how to affect more than one Int, and tried some changes before looking at the next example -"two Counters" and failed. Looking at the example (no code just snippets) I ended up getting no where. Any help would be great.

Simon

unread,
Nov 10, 2015, 2:34:45 AM11/10/15
to Elm Discuss
When I first met Elm (2 years ago) I was completely thrown by the type signatures and currying - if you've never seen it before then Learn You ... may well help you prepare better

Christopher Anand [g]

unread,
Nov 10, 2015, 8:54:49 AM11/10/15
to elm-d...@googlegroups.com
Simon,

Are those the only/main things Learn You a Haskell is good for?  These are the things we should be putting into beginner ELM books and tutorials.  Not that Learn You a Haskell is not a great book, but there are probably a lot of people who are intimidated by the suggestion that you need to learn Haskell first.

Christopher

Max Goldstein

unread,
Nov 10, 2015, 9:34:35 AM11/10/15
to Elm Discuss
I agree with Christopher: we need to write our own docs. In the specific case of type annotations, we use : while Haskell uses ::, and they also have a bunch of type class constraints that Elm doesn't have. So I wrote this document, which I linked to in the first reply on the thread.

Adam Waselnuk

unread,
Nov 12, 2015, 7:16:54 AM11/12/15
to Elm Discuss
I'm feeling your pain as well Mohammad. Still making progress on my end but I definitely hit road bumps as this is my first time with a functional language and my first time using a type system.

I'll add this link to the list

They write tutorials for Elm on the NoRedInk blog as well and those have a shallower learning curve and specifically speak to JS developers

One thing I found helpful was to build out that signup form tutorial and then going back and refactoring it, slowly introducing more Elm idioms such as Union Types.
Let's keep the dialogue open so we can both level up faster!

Jason Zoladz

unread,
Nov 12, 2015, 8:03:46 AM11/12/15
to Elm Discuss
It doesn't make sense to pretend that Elm wasn't influenced by, and doesn't inhabit, a broader functional landscape.  Pardon the pun, but Elm has roots. If someone has a problem with a concept, it seems completely reasonable to say:  You can read about that concept here, albeit in another dialect of FP.

(For example, Elm has a parsing library -- elm-combine.  You wouldn't refer someone to Parsec tutorials to learn how it works?)  

There are so many fantastic resources in the broader world of FP (e.g., pretty much anything written by Richard Bird) that can help someone write programs in Elm.  Why wouldn't we take advantage of those resources?

One of the things that bothers me about the Elm community is (my perception) that the community: (1) wants to pretend that programming is effortless; and (2) believes that folks coming from Javascript are intimidated by the depth of new ideas that Elm exposes.

Look, I don't have any formal (i.e., university) CS education.   I started programming in my spare time little more than a year ago.  The (unfortunate?) reality is:  there are some things in this world that you must tackle by sitting down with a thick book.
Message has been deleted

Mohammad Alshafey

unread,
Nov 13, 2015, 9:28:51 AM11/13/15
to elm-d...@googlegroups.com

Again, thank you all. Yes, Elm is not effortless. I'm coming from c, Matlab, some experience in other things like LISP, javascript, Pascal, ... Elm is certainly a totally new experience for me that deserves some solid newcomer introduction. I'm taking the suggestions one by one and building my own document for my own purposes. Perhaps one day it will become helpful to other newcomers. 

On 13 Nov 2015 00:18, "Juan Soto" <imjua...@gmail.com> wrote:
Both the Pragmatic Studio courses are good and should get you started as well with the docs.

While Haskell is awesome and it would indeed make Elm feel more natural, the easiest way make no one want to use Elm is expect them to learn another language first.


On Tuesday, November 10, 2015 at 8:54:49 AM UTC-5, Christopher Anand wrote:

--
You received this message because you are subscribed to a topic in the Google Groups "Elm Discuss" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/elm-discuss/OlzLOPixsYg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to elm-discuss...@googlegroups.com.

Jason Zoladz

unread,
Nov 13, 2015, 10:00:03 AM11/13/15
to Elm Discuss
A great book that ties everything together  -- Procedural, OO, FP, Logic, et al. -- is Concepts, Techniques and Models of Computer Programming.  

http://www.epsa.org/forms/uploadFiles/3B6300000000.filename.booksingle.pdf

There are two awesome (free) edX courses given by the author:  (1) Paradigms of Computer Programing; and (2) Paradigms of Computer Programming -- Abstraction and Concurrency.  (The author is both engaging and a comp sci "god.")  The archived versions of the course can be viewed at any time.

Max Goldstein

unread,
Nov 13, 2015, 10:17:13 AM11/13/15
to Elm Discuss
Mohammad, when you finish your guide, feel free to submit it to elm-guides.

Christopher Anand [g]

unread,
Nov 13, 2015, 11:09:02 AM11/13/15
to elm-d...@googlegroups.com
It is great that you have learned about FP in your first year of programming, but that probably puts you in a pretty small minority.

I wanted to know what issues beginners have so I could address them for people learning ELM as their first programming language.  In many ways it is a very good first language, but pointing people into Haskell documentation is pretty much guaranteed to fail.

Christopher

Jason Zoladz

unread,
Nov 13, 2015, 1:08:52 PM11/13/15
to Elm Discuss

"Learn You a Haskell" isn't "Haskell documentation."  (That's a straw man, and you know it.)  It's a book about how to think in a certain paradigm.  And a lot of that paradigm translates to Elm.

When someone finds a task or concept hard, it's usually because they don't fully understand the fundamentals.  Someone struggling with Elm likely isn't having difficulty with the syntax.  (Evan has done a great job of setting it out succinctly.)  If you're struggling with Elm, and/or if Elm is your first language, you probably need to work through the "Structure and Interpretation of Computer Programs."  It is a beginner's book.  And there are tons of online courses that teach programming through it.

So, yes, I think we should sometimes point people to sources outside of Elm if only because translating the greatest-hits-of-computation-books into Elm is a bit wasteful.

As for your assertion that directing folks to Haskell guarantees failure, I think you underestimate your students.  Students -- heck, people generally for that matter -- don't need to coddled.  They need to encouraged to confront the fact that the real learning happens through struggling with new ideas.  Programming is hard.  You're not going to learn how to do it simply by reading "The Elm Architecture" and a few blog posts.

FYI...  ("Concepts, Techniques and Models of Computer Programming" isn't about Haskell at all.  In fact, the author isn't a big fan of Haskell.  It's the perhaps the successor to the SICP.)


Joey Eremondi

unread,
Nov 13, 2015, 2:26:36 PM11/13/15
to elm-d...@googlegroups.com
It's worth noting that LYAH is licensed under Creative Commons, so it's potentially possible that we could make a copy of it and adapt it for Elm, while keeping most of the great material (and humour). As long as it was not for profit, and we gave credit to the original, it is allowed.

Adam Waselnuk

unread,
Nov 13, 2015, 2:57:30 PM11/13/15
to Elm Discuss
Thanks for sharing this link. This book looks really interesting.
Message has been deleted

Joe Terry

unread,
Jun 17, 2016, 7:53:57 PM6/17/16
to Elm Discuss
Grzeegorz,

ELM-BY-EXAMPLE.org is a good resource, but it's somewhat out-of-date ? Are you going to update it for 0.17.0 ?

Joe Terry

unread,
Jun 17, 2016, 7:56:04 PM6/17/16
to Elm Discuss
Phillip,

https://pragmaticstudio.com/elm

is OK ... but it's a $20 pay wall and they say ...

This course is no longer available as it is not compatible with the latest version of Elm (0.17). For the latest on Elm, we recommend An Introduction to Elm GitBook.

Where are the really good .... up-to-date ... resources ??

Joey Eremondi

unread,
Jun 17, 2016, 7:59:02 PM6/17/16
to elm-d...@googlegroups.com
You just said it: the GitBook is the best up-to-date resources. Also, looking at the blog-posts and examples on reddit.com/r/elm is could also be helpful.

Elm 0.17 is just a month old. It will, unfortunately, take time for all the resources to update.

--

Joe Terry

unread,
Jun 17, 2016, 8:02:58 PM6/17/16
to Elm Discuss
I want to go in a hole with a technology and a dream and come out in a month and get some investors and quit my job.

I applied for a job at NoRedInk and they said ... "Not at this time, We will keep your resume on file" ... I assume I don't have the JavaScript or ELM? experience they are looking for.

Is ELM soup yet ?

The tutorials I've found are either incomplete or out-of-date ... Not up to 0.17.0

Joe Terry

Rex van der Spuy

unread,
Jun 18, 2016, 7:08:10 PM6/18/16
to Elm Discuss

The tutorials I've found are either incomplete or out-of-date ... Not up to 0.17.0

Currently the most comprehensive learning resource is the Daily Drip:


It's a $9/month subscription and worth every penny for a beginner like myself.

Mark Hamburg

unread,
Jun 19, 2016, 1:29:33 AM6/19/16
to elm-d...@googlegroups.com
On Jun 17, 2016, at 4:58 PM, Joey Eremondi <joey.e...@gmail.com> wrote:
>
> Elm 0.17 is just a month old. It will, unfortunately, take time for all the resources to update.

This was why I felt Elm adoption would benefit from keeping Elm 0.16 more visible perhaps with messaging along the lines of the following:

The latest and greatest version of Elm is 0.17. It cleans up many things and offers enhanced performance. It is also, however, only a month old and documentation and examples are still a work in progress both here and in the broader world. If you want to live on the edge and are up for it, you can enter here.

If, on the other hand, you would rather live in a more fully fleshed out if now out moded world, you can get to Elm 0.16 here. There are a number of significant changes between 0.16 and 0.17, but using Elm 0.16 to learn Elm and The Elm Architecture will set you up well for transitioning to 0.17. This release will not be receiving further maintenance but it was used and is being used successfully by many projects.

Joe Terry

unread,
Jun 19, 2016, 12:41:51 PM6/19/16
to Elm Discuss
This is a great resource ... and because it's a curated resource with a known regularity it's valuable ... this is the future of quality documentation ... Yes. The future uses to which I plan to put ELM are worth $9/month as an investment for me.

Thanks !

Joe Terry

unread,
Jun 19, 2016, 12:48:24 PM6/19/16
to Elm Discuss
This is an excellent example of an educational platform as per a recent book I've read ... The Platform Revolution ... https://www.amazon.com/Platform-Revolution-Networked-Transforming-Economy--/dp/0393249131

I am planning to use ELM to create a platform and it's most appropriate for me to use a platform to learn ELM to create a platform.

I love it !

On Saturday, June 18, 2016 at 4:08:10 PM UTC-7, Rex van der Spuy wrote:

Håkon Rossebø

unread,
Jun 20, 2016, 3:13:50 PM6/20/16
to Elm Discuss
After I've started learning Elm, I agree that the documentation for "basic functional programming" could be improved. "Learn You a Haskell" is a great resource  and I'm surprised that "Learn You an Elm" has not been mentioned here yet - http://learnyouanelm.github.io/. The first chapters from "Learn You a Haskell" has already been adapted. I hope the community can contribute more to this project - https://github.com/learnyouanelm/learnyouanelm.github.io

Joey Eremondi

unread,
Jun 20, 2016, 4:15:56 PM6/20/16
to elm-d...@googlegroups.com

I started learn you an Elm, and it's far from ready for reccomending to anyone. Learning Haskell is definitely not the ideal way to learn Elm.

Wouter In t Velt

unread,
Jun 20, 2016, 6:32:33 PM6/20/16
to Elm Discuss
Great discussion! I am looking forward to seeing progress on the Learn You an Elm.

Having learned quite a few languages in my days, I actually find it quite refreshing to dive into a new and promising language as Elm.
With many other languages (Java anyone?) it was a nightmare to find a suitable (and not outdated) starting point among gazillions of options, tutorials, courses, libraries, frameworks etc.

Yes Elm has gaps to be filled, tutorials and guides still in development, and libraries to mature. And for many questions the answer is not yet out there or hard to find, especially for the infix stuff (try Googling what "::" means).

And I find the community very supportive (evidence in this threat).
The docs on elm-Lang.org got me a long way, and I hope I can continue to steer clear of docs from other languages like Haskell (haven't read LYaH).

Joe Terry

unread,
Jun 21, 2016, 3:37:33 AM6/21/16
to Elm Discuss
Wow !! I have learned so much in the past several days ... of all the resources I've enjoyed  .... I enjoy DailyDrip and "Awesome ELM" the most ... because it's awesomely complete !!!

rud...@gmail.com

unread,
Jun 22, 2016, 12:05:34 PM6/22/16
to Elm Discuss


On Saturday, November 7, 2015 at 4:12:22 AM UTC-8, Mohammad Alshafey wrote:
Is there sufficient material online for someone to learn Elm? It seems that the examples available each use different libraries and functions and each with some unique elements. There are no tutorials only basic introductions. The core library documentations are very abstract and lacking. Feeling stuck. I want to learn but there's nothing to go on!
I had just decided to try and learn something and I'm also foundering.

First:  A lot -- I'm inclined to say "most" -- of the online learning material has been broken by the switch to version 1.7.  "An Introduction to Elm" is only half there (the more useful half, where things are actually becoming graphical, is promised in "the next few weeks"....how many weeks exactly?).  The online tutorial https://pragmaticstudio.com/elm has been removed.  I have no doubt the move to subscriptions vs signals will be good in the long run but right now it is pretty painful right now.

Second:  Beyond this, even the existing docs are IMO too presumptive of prior knowledge.  There are few/no line by line comments in "An Introduction to Elm", for one specific example. Doubtless that is because "everyone" already understands the line-by-line basics but, in fact, they don't.  At least *I* don't.  

Suggestion: A single one page (52 line max but ideally less) graphical game MASSIVELY documented (I mean, don't let there be anything on the line which a reasonably intelligent sixth grader wouldn't already know go unremarked) would, I think, work wonders for Elm.   Something as simple as a blob which could be moved in four directions on a screen to "eat" static "fruit" would work wonders.  The working tetris (flatrus) game DOES work in 1.7 but it is way, way, way too complicated for tutorial purposes -- especially since if follows the practice of basically assuming people don't need line by line comments).   With the most simplistic of graphical games MASSIVELY overdocumented a solid foundation of understanding and playing with Elm could be laid.  A great follow on would be to step-by-step (over explaining every step) build on that base. For example, add a counter.  Add reset buttons.  Add movement to the fruit.  Etc.

I would love to participate in development / documentation of such a thing but I can't figure out how to get to the basic level of understanding of what is going on.  FYI I have only the most basic level of "basic" programming skill.  I don't know javascript (and don't want to learn) nor HTML nor how to design a webpage.  I am, therefore, a perfect candidate for a student.  My motivation for wanting a really, really, really easy on-ramp to Elm?   (1) Of the functional languages Elm is, or could be, the most approachable and "playable"  (2) I would like to teach Em to 6th graders as an on-ramp to functional programming and, then, to functional thinking.

These kinds of simplistic and "obvious" games existed once upon a time; that is how I learned to write BASIC programs a long time ago.  Can Elm bring that simplicity back?  Looking at some of the short code examples I believe so.  But the documentation still is very, very poor unless you are already pretty much up to speed on what is going on.


rud...@gmail.com

unread,
Jun 22, 2016, 12:38:14 PM6/22/16
to Elm Discuss
Further to the above (in case I'm not clear enough about what is IMO missing for Elm to become "the missing link") I found this updated Space Invaders code: https://ohanhi.github.io/base-for-game-elm-017.html

This 1.7 rewrite might be be near perfect as a foundation if only it took the next step and added rudimentary graphics play.  Although it could use more documentation it is simple enough that I can almost understand the skeleton.    Would adding graphics be really easy?  Could someone give me a hint?

Joe Terry

unread,
Jun 22, 2016, 12:49:47 PM6/22/16
to Elm Discuss
This is a really exciting time in the ELM community and I'm embracing the rapid ... breaking changes ... world that we are in now ... because the tools are in place (semantic versioning) for this to be a much, much more orderly world going forward than other ecosystems like NODEJS and what's going on over there ... Nightmare ...

And I would love to be involved in educational tools as you describe ... it's a national economic imperative ... coding is working ... in the future unless you are an athlete or working with people in healthcare, law, the arts, etc. But for many if not most professions in 20 years and beyond, if you can't think logically or program computers in the most rudimentary way ... you will not be able to work.


Great Stuff ... ELM is up to the task ... You are in the right place ... at the right time.

Joe Terry
The Software Sculptor

António Ramos

unread,
Oct 13, 2016, 9:13:47 AM10/13/16
to elm-d...@googlegroups.com
this guy is very good at it :)


--
You received this message because you are subscribed to the Google Groups "Elm Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elm-discuss+unsubscribe@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages