I can share my experience having had to train 15+ developers (coming mostly from a Java background) when rewriting an existing project practically from scratch.<div><br></div><div>First, try to hire people that are really interested in Erlang and genuinely want to learn it and program in it. We had a mixed group of people, and with those that were "forced" to use it the results were not that great, whereas with the ones that had wanted to learn it by themselves the results were excellent. Self-motivation is key to get people to excel at it (I know, this is probably a truism).</div>
<div><br></div><div>Second, make sure that you have several people in the project that already know Erlang very well and can act as a reference to other developers. At the beginning it's very difficult to know which one is the correct way to implement something in Erlang, especially if you're not coming from the functional programming world. Pair-programming might help for this, but we didn't have the resources to try it.</div>
<div><br></div><div>Third, keep in mind that the code the new (to the Erlang world) developers write will probably be inelegant (in Erlang terms) and not use the established Erlang features and idioms. With enough will power they'll probably get whatever they have to do to work, but it takes a while to get into the Erlang mindset (especially the let it crash philosophy), so if possible allow time for a rewrite.</div>
<div><br></div><div>BTW, I don't regret one bit making the switch to Erlang.</div><div><br></div><div>Good luck with it,</div><div><br></div><div>Juanjo</div><div><br><br><div class="gmail_quote">On Sun, Oct 21, 2012 at 1:26 PM, David Goehrig <span dir="ltr"><<a href="mailto:dave@nexttolast.com" target="_blank">dave@nexttolast.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">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.<br>

<br>
Our pool of new hires are constrained by:<br>
<br>
1.) domain knowledge in a component of our infrastructure<br>
2.) self directed individuals who require minimal day to day supervision<br>
3.) a willingness to learn Erlang<br>
<br>
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.<br>

<br>
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:<br>
<br>
1.) Why would I ever want to use ________?<br>
2.) Wow ________ is cool! I'm going to rewrite everything using ________!<br>
3.) WTF were the thinking when they implemented ________, it is far too complex!<br>
4.) Oh $#!+ I need rewrite everything again as a proper __ application.<br>
5.) repeat cycle again ad nauseum infinity.) goto 1<br>
<br>
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.<br>
<br>
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 :)<br>

<br>
Granted, you are probably still doomed to repeat those lessons for the next 2 years as they get ingrained in practice.<br>
<br>
How have other's experiences been with Erlang training programs / seminars?<br>
<br>
<br>
-=-=- <a href="mailto:dave@nexttolast.com">dave@nexttolast.com</a> -=-=-<br>
<br>
On Oct 19, 2012, at 1:33 PM, Max Bourinov <<a href="mailto:bourinov@gmail.com">bourinov@gmail.com</a>> wrote:<br>
<br>
> Hi guys,<br>
><br>
> 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.<br>
><br>
> 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.<br>

><br>
> So, please reply just once!<br>
><br>
> Let distributed asynchronous counting begin!<br>
><br>
> Best regards,<br>
> Max<br>
><br>
> _______________________________________________<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>
_______________________________________________<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>
</blockquote></div><br></div>