[erlang-questions] Onboarding programmers who are new to Erlang

zxq9 <>
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.

-Craig



More information about the erlang-questions mailing list