Hi Dave,
to help a talented beginner, I found it can be very productive to use the actual project and its requirements, lay the needed functionality out clearly and get started top down, providing a framework of the build environment, the expected supervisor and app structure and seed Common Test suites. If the product is too big, sub-dividing it into apps may work.
Concretely, after two weeks of letting toy with a core functionality, use the source that was produced, embed it into the frame of the project as described above and help navigating the new, clunky iteration for another two weeks.
Be available for newbie errors for approx. 2 months: try to never allow for more than an hour of unsuccessful bug hunt before reporting up for help. Else you'll loose days.
The circle you are describing can't really be repeated too often. You take the major ______s out by introducing apps, supervisors and tests early. But refactoring only because its will make things more OTP should not be allowed before all functionality is present in my opinion. That reminds me to how Joe Armstrong said he was surprised that people understood his book to recommend using only OTP behaviors while what he meant to do was to encourage writing your own.
Best,
Henning
On Oct 21, 2012, at 6:26 PM, David Goehrig <> wrote:
> As someone actively hiring Erlang programmers, I'm far less interested in how many existing programmers there are, and more concerned with how to train new programmers. Right now, I have a team of 8 engineers learning Erlang, and plan on hiring 8 more for the team before the end of the year. Because we are hiring experts in other fields (video engineers, machine learning, hardware engineering, graphics processing, rights management) and teaching them Erlang.
>> Our pool of new hires are constrained by:
>> 1.) domain knowledge in a component of our infrastructure
> 2.) self directed individuals who require minimal day to day supervision
> 3.) a willingness to learn Erlang
>> This turns out to be a great fit as the personality profile favors T shaped individuals. (A little of everything + world class specialty) but that category of individual is already rare enough that adding #2 becomes a positive boon. People want to work on this team because they get to learn Erlang.
>> It turns out the difficulty in training them is not Erlang's syntax, or the globally distributed infrastructure they're reworking. It is the cycle of learning itself:
>> 1.) Why would I ever want to use ________?
> 2.) Wow ________ is cool! I'm going to rewrite everything using ________!
> 3.) WTF were the thinking when they implemented ________, it is far too complex!
> 4.) Oh $#!+ I need rewrite everything again as a proper __ application.
> 5.) repeat cycle again ad nauseum infinity.) goto 1
>> This cycle goes through several iterations that seem to repeat for each group, where they discover the value of bits of OTP by reinventing it piece by piece.
>> I wish there way a way to fast track this learning by devising a fiendish set experiments to get them to do all the wrong things quickly. A "Learn Erlang the Wrong Way" course, to distill months of painful lessons into a few short weeks :)
>> Granted, you are probably still doomed to repeat those lessons for the next 2 years as they get ingrained in practice.
>> How have other's experiences been with Erlang training programs / seminars?
>>> -=-=- -=-=-
>> On Oct 19, 2012, at 1:33 PM, Max Bourinov <> wrote:
>>> Hi guys,
>>>> I see that demand of Erlang on the market is rapidly grows. I think it is just beautiful news! People are realizing the power of Erlang.
>>>> Also I heard strange information that there are 2-3 thousands full-time Erlang programmers in the world and this is biggest problem of the language. I have no idea how to calculate all Erlangers, but my first thought to ask a list to reply to this mail so we all can see how many replies we have. Of course it won't count all Erlangers, but I believe that big part of Erlangers are in this list.
>>>> So, please reply just once!
>>>> Let distributed asynchronous counting begin!
>>>> Best regards,
>> Max
>>>> _______________________________________________
>> erlang-questions mailing list
>>>>http://erlang.org/mailman/listinfo/erlang-questions> _______________________________________________
> erlang-questions mailing list
>>http://erlang.org/mailman/listinfo/erlang-questions