kristianpedersen / 30-days-of-elm

Teaching myself Elm, starting December 17th 2020.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

30 days of Elm

Blog posts, great comments and interactive examples @ dev.to

About this challenge

Hi! My name is Kristian.

The next 30 days, I'm going to teach myself the basics of Elm by making something new every day with Elm. Even the simplest things count. There's no structure or plan.

I was inspired to do this project after seeing Lars Lillo Ulvestad do 100 days of Haskell: https://twitter.com/larsparsfromage

30 days seemed good enough to begin with, 100 would also be cool - I'm happy either way.

Background

I've been writing JavaScript on and off since 2016, and I started learning React in November 2020.

JavaScript and React are great tools, but after my last few projects, I want to spend more time thinking about the problem at hand, and less time on runtime errors.

In the hands of more skilled developers, most of the errors I've gotten wouldn't have happened, or they would have been fixed much faster than I did, but I want to avoid them altogether.

Why Elm?

Elm avoids runtime errors by design. Its error messages are really well written, its ecosystem seems cohesive, and I keep hearing good things about functional programming in general.

Even if I don't end up continuing with Elm, I think this will be a fun and educational experience that will make me a better developer.

https://elm-lang.org/

Thoughts on motivation and setting the bar low

Motivation and focus vary every day, knowledge gains happen in bursts, cool ideas come out of the blue. Languages are about taking something from your head, and sharing it.

Why am I setting the bar so low every day? Saying that "even the simplest things count" may not sound ambitious, but consider the following scenarios:

  1. High motivation + setting the bar too high:
    Even if I learn a lot, I can still end up viewing it as a failure because I didn't reach my goal.

  2. Low motivation + setting the bar too high:
    There's no success in sight.

  3. High motivation + setting the bar very low:
    I continue - not because I have to, but because I want to, and I usually end up raising the bar in the process.

  4. Low motivation + setting the bar very low:
    Although I don't want to, I understand that I can succeed just by getting one tiny thing done. This is better than outcome 1! Also, this often produces enough motivation to keep going a bit longer than first anticipated.

My current unnuanced hypothesis is that setting the bar low short term ends up raising it long term.

This is not a project driven by pure intrinsic motivation though. I also get a lot of extrinsic motivation remembering what runtime errors are like. :)

About

Teaching myself Elm, starting December 17th 2020.


Languages

Language:HTML 78.3%Language:JavaScript 19.1%Language:Elm 2.3%Language:Python 0.2%Language:Svelte 0.1%Language:CSS 0.0%