6 ms·
Genuine question. It has been a long time since I was a beginner programmer. Does all the cutesy "slow introduction" stuff appeal to novice programmers? I am k
by quickthrower2 4y ago
Genuine question. It has been a long time since I was a beginner programmer. Does all the cutesy "slow introduction" stuff appeal to novice programmers?
I am kind of impatient, so it seems a bit annoying to me.
If I were learning something technical that I am new to, say flying a plane, or biology I would prefer just to get stuck in. I would expect a pedagogical approach of course to easy me into it. But the cutesy stuff would feel like unnecessary slowing me down.
- pdimitar 4y agoAs a guy who swears by Elixir, I completely support you. I'd wish somebody to sell Elixir to me with transparent parallelism, demonstrating that it's literally 2-3 extra lines of code (compared to other languages where the extra code you have to write is significant). Pepper it with pattern matching and preemptive concurrency and I'm sold in 5 minutes. I wish people stopped evangelizing.
- sph 4y ago(I guess it's time to post this video again.) Saša Jurić - The Soul of Erlang and Elixir: https://youtu.be/JvBT4XBdoUE https://youtu.be/JvBT4XBdoUE This is in my opinion the best demo of Elixir, the BEAM, OTP and any programming language, ever. If this doesn't pique your interest, nothing will.
- srikz 4y agoI was already fascinated by Elixir, but this video drove the nail home. It's a great presentation and I don't think I have watched any conference talks (on YouTube) without taking a break except this one.
- whalesalad 4y agoI didn’t want cutesy shit either so I went with the Dave Thomas course and it was solid. https://codestool.coding-gnome.com/ https://codestool.coding-gnome.com/
- sbuttgereit 4y agoAnd we should be clear... it's not that Dave Thomas doesn't use humor in his courses or books to lighten what can be bit tedious. His humor tends not to be condescending or overbearing which is why I think it succeeds. Just good touches of lightness here and there.
- mlambie 4y ago
- aeturnum 4y agoTo me, I think Elixir's technical merits are well documented. If they appeal to you, you're welcome to dive into the deep end any time. No one needs to write you a tutorial for you to start using plug and cowboy - you can just do it. On the other hand, if you're not quite there, or the technical qualities are not that impressive for your use case - the thing that may draw you into a language is how it encourages you to approach problems. How it lets you describe what you are expecting, and what to do when you are surprised. How to navigate data structures. For that latter category of person - I think the slow, cutesy approach makes a lot of sense. The goal is to fascinate and then seduce. No harm if you're not in the mood - but one day, a cutesy introduction may catch your eye. We all have different tastes.
- sodapopcan 4y agoI'm responding because when I found this a while ago and I felt similar to you, but mostly I felt it was weird coming from Ryan Bigg. Maybe I'm giving him too much credit for the awesomess that is the Rails guides, but I don't think I am... What I did get from these Elixir guides (at least in my head) is that Ryan is always just being Ryan: a particularly great, proficient, and prolific writer of documentation. When he was writing about Rails, he was in his wheelhouse and he feckin' killed it and appealed to the exact right audience. When he wrote about Elixir, it was good but I felt he was out of his comfort zone and trying a new tone (the one you describe). This is purely my speculation but ya... again, just responding since this comment both made me a bit annoyed that you'd even bring this up (of course you have every right to), and struck a pretty hard chord with me.......and I'm tired and a little tipsy. Anyway, massive respect to Ryan. I feel like he is one of the, if not The, unsung hero of Rails' popularity. The Rails guides are really special.
- auraham 4y agoThe writing style of "Joy of Elixir" is (I think) inspired by "Learn you some Erlang for great good" [1] and "Learn you a Haskell for great good" [2]. Personally, I like the cutesy style for getting started with a new tool/technology/language, just to know the basics. The main selling point of Elixir is concurrency. Dave Thomas gives this great example in the second page of his book [3]: defmodule Parallel do def pmap(collection, func) do collection |> Enum.map(&(Task.async(fn -> func.(&1) end))) |> Enum.map(&Task.await/1) end end result = Parallel.pmap(1..1000, &(&1 \* &1)) Elixir developers can see the beauty of that snippet. However, for beginners, it can be overwhelming or intimidating. If you want to understand what is going on, you first need to learn about enumerables, map/filter/reduce, lambda functions, capture and pipe operators, spawned processes, tasks, etc. Yes, that is a great example for showing the power of Elixir but if you are a beginner chances are you are looking for something easier (e.g., Joy of Elixir). Take Nix and NixOS [4] for example. That is an impressive technology and it has a (not cutesy) documentation. But, as a beginner, I feel lost. I rather prefer a cutesy getting-starter tutorial or book. So, yes, I think there is a niche for developers that want to start with cutesy material. It is just a matter of taste. [1] https://learnyousomeerlang.com https://learnyousomeerlang.com [2] http://www.learnyouahaskell.com http://www.learnyouahaskell.com [3] https://pragprog.com/titles/elixir16/programming-elixir-1-6 https://pragprog.com/titles/elixir16/programming-elixir-1-6 [4] https://nixos.org https://nixos.org
- devoutsalsa 4y agoMy favorite part was a you used &Task.await/1 :) Every time I see someone kick off a task without the await part, I want to cry a little bit.
- PYTHONDJANGO 4y agoPlease explain, thanks.
- Jtsummers 4y agoThe pattern in the example above is a fork/join model of concurrency. Task.async will spawn a new task and return a handle to it, the task will be scheduled and run at some point. Task.await takes that handle and waits for the associated task to complete before continuing and returns its result. do_work = Task.async(fn -> long_calculation() end) That kicks off the new task, at some point later we should obtain and examine the result: result = Task.await(do_work) https://hexdocs.pm/elixir/1.13/Task.html#await/2 https://hexdocs.pm/elixir/1.13/Task.html#await/2
- gls2ro 4y agoFor learning a new language, I like a lot the exercises from exercism.org For example for Elixir they have: https://exercism.org/tracks/elixir https://exercism.org/tracks/elixir
- wunderlust 4y agoMaybe they could provide a kind of base documentation to GPT-3 and then have it generate lots of tutorials in different styles - “cutesy”, “advanced”, “continued education”, etc. (I meant this to be funny but I’d bet someone has considered it even more seriously.)
- oxff 4y agoI saw the same, it was like speaking to a retarded person at the start. Honestly insulting. I think it stated that `=` "makes computer remember stuff", this is vocabulary aimed at 5 year olds.
- gregors 4y agoI recently onboarded 2 JR developers who didn't know Elixir. I purchased pragmatic's video course for them, but they both liked the Joy of Elixir better. In contrast, the seniors liked the pragmatic training better.