<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jun 16, 2014 at 10:50 AM, Garrett Smith <span dir="ltr"><<a href="mailto:g@rre.tt" target="_blank">g@rre.tt</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class="">On Mon, Jun 16, 2014 at 9:51 AM, Torben Hoffmann<br>
<<a href="mailto:torben.hoffmann@erlang-solutions.com">torben.hoffmann@erlang-solutions.com</a>> wrote:<br>
<br>
</div>-snip-<br>
<div class=""><br>
> I think that a learning resource focused on teaching people the Erlang model from the<br>
> ground up would be a great improvement. A clear narrative around how do we solve a<br>
> problem the Erlang way. Teaching the basic constructs is not the problem.<br>
><br>
> My initial target for such a learning resources would be young people in the higher<br>
> grades of elementary school, say 12-15 years. Why? Because I want to influence them<br>
> before their minds are totally corrupted by other programming models.<br>
><br>
> I don't think we would have to dumb anything down in particular for this group - we<br>
> just have to find a cool example and organise the learning around how to become so<br>
> good that one can solve such a problem.<br>
> Some sort of game will probably be the best candidate, say, some sort of Transport<br>
> Tycoon clone?!?!<br>
<br>
</div>I don't have enough experience teaching programming to this age group<br>
to provide anything more than a hunch. But I suspect that the Erlang<br>
way, which is hard enough for very seasoned programmers to grok, might<br>
be a bit ambitious for these young learners.<br></blockquote><div><br></div><div>Interesting, I am planning on giving a programming course at my kids school and was planning on using Erlang as well. I was thinking that because they don't have proper experience with other less tradition languages like the common OO languages that they might not face the same problems we do when adapting this new paradigm. The Erlang language itself is rather simple and straightforward so I don't think that is a problem in its own. Infect using something like Elixir might even add too many variance to the whole thing (I wasn't planning on using that). You can gradually build up towards the different patterns in Erlang, and once they get that they will thank you for the rest of the programming live.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
I'm speaking in particular about the model that emerges when you<br>
isolate processes. It changes everything: your approach to building<br>
software (move from state oriented to activity oriented), error<br>
handling (move from defensive measures to assertive/let-it-crash),<br>
program structure (from monolith to system), and so on. The benefits<br>
of this shift are hard to get across, in my experience anyway. I wish<br>
it wasn't, or I wish I was better at communicating.<br>
<br>
I think maybe just teaching a new language might be enough ambition<br>
for this group. I don't mean to throw cold water on this. Just<br>
thinking out loud.<br>
<div class=""><br>
> And now for the controversial part of my idea: this should probably be done using<br>
> Elixir plus something for the GUI.<br>
> Yes, I said the other E word, so I'm ready to be stoned ;-) [1]<br>
><br>
> Why Elixir?<br>
><br>
> Programming Elixir requires the same understanding of the Erlang concurrency model in<br>
> order to program well. Otherwise you are just doing Ruby-on-BEAM, which is kinda lame<br>
> and misses the boat totally.<br>
><br>
> So using Elixir would allow us to expose people to the Erlang model, which I think is<br>
> the main point. The more people that uses the BEAM, the better for the<br>
> FindingDevelopers problem.<br>
><br>
> What is better about Elixir from a learning standpoint is, in my highly subjective<br>
> opinion, that you can get started quite easily with the mix tool.<br>
><br>
> Furthermore, the Elixir syntax is more familiar to youngsters. I asked my 12 year old<br>
> son to have a look in the "Introducing Elixir" book and his initial reaction was<br>
> "That's easy to read, it looks like lua." Minimising the amount of surprise is a good<br>
> thing!<br>
<br>
</div>All of these points are true -- Elixir has a huge advantage here.<br>
Which is why I'm afraid you must be stoned.<br>
<div class=""><br>
> Given that I think games are awesome for teaching there needs to be some sort of GUI<br>
> element at some point and here I'm leaning towards Elm (<a href="http://elm-lang.org" target="_blank">http://elm-lang.org</a>) since it<br>
> is functional, but other suggestions are most welcome.<br>
<br>
</div>All I can say for sure is that if you can create a simple developer<br>
experience around building anything related to *Minecraft* you have a<br>
chance at capturing the minds of an entire generation of programmers.<br>
<div class=""><br></div></blockquote><div><br></div><div>+1 on minecraft, something I was thinking about is an web app that lets students communicate with each other. Like facebook but for the class. Not a game but it enhances the group feeling of the class, and might even be useful for the school as well. A game is going to take a lot of extra stuff to make really engaging.</div>
<div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="">
> Am I on the right track to anything with this?<br>
> Is there a need for such a learning resource?<br>
> Is Concurrent, Functional Programming relevant enough to warrant putting some energy into?<br>
<br>
</div>What does the 12 year old say?<br></blockquote><div><br></div><div>Please keep us (me) updated on this!</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class=""><div class="h5">_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">Mark Nijhof<br><div><div>t: <a href="https://twitter.com/MarkNijhof" target="_blank">@MarkNijhof</a><br>s: marknijhof</div></div>
<div><br></div></div>
</div></div>