[erlang-questions] Onboarding programmers who are new to Erlang
Fri Aug 29 03:48:42 CEST 2014
On 2014年8月29日 金曜日 09:25:54 Leo Liu wrote:
> On 2014-08-29 09:07 +0900, zxq9 wrote:
> > After those bits of SICP, showing them the JSON parser example in Real
> > World Haskell is a big winner. That single example and its commentary
> > gives precisely the sort of background necessary to understand Joe's
> > discussions in Programming Erlang.
> I am curious if any bits in Joe's book that are particularly
> challenging. I don't want to miss anything important Joe has written.
I don't think anything in Programming Erlang is hard, actually. But
interpreting the discussions is difficult for someone who has never thought
through the related issues, worked their own way around certain issues in
another environment, or dealt with different programming environments.
Joe talks about tradeoffs in many places, but not often at length. The
commentary is very important to understanding why things are the way they are
and what alternatives could have been chosen instead, but if you've never
explored any of the alternatives you don't have the personal history to relate
to the discussion at all. In that case all those brief, often insightful
comments just flit by under the uncomprehending eye, contributing nothing to
the learner's experience. I think about half the value of books like Joe's lie
outside the scope of cut-and-dried Erlang/OTP knowledge. If we didn't care
about that other half we would just read the Erlang docs directly from our
first day with the language.
Getting one's mind prepped by seeing two radically different (but still
functional) environments in SICP and Real World Haskell (in addition to
whatever imperative background the new guy has) is useful before reading Joe's
book, IMO. Actually, I think re-reading SICP is even more interesting after
reading PE and writing a bit of Erlang and C for a while.
In the same vein, I also encourage my folks to play around with assembler and
follow the "Programming from the Ground Up" examples, because it makes the
computer a lot less mysterious, things Knuth says more comprehensible, C make
a lot more sense, and full-blown environments like OTP really strike home in
the sense that "I can now just focus on the problem my customer faces --
that's amazing!" Without all that background I just don't see coders make
intelligent tooling choices and often they do silly things like fixating on a
specific language or runtime or whatever.
Anyway, this is my perspective. I have customers with actual problems --
things of value moving around, things they can't forget about, people they
need to communicate with, etc -- I have no space for monolingual coders who
know only one tool and are incapable of forming their own opinions about new
tools/environments/situations. To do that, though, they really need a
background more broad than a single book or language lest the lessons Joe has
put down that go beyond Erlang syntax and address Erlang's nature be missed.
More information about the erlang-questions