erlang工做前新手學習指引路線

Erlang學習總結,新手指引html

要具體的寫erlang入門技術網上有很是多,我寫的確定沒有那些大牛寫的好,本身也實習了快一個月,也作一個總結,給後erlang初學興趣者提供些拙見吧java

第一步搭建學習環境node

         還沒進公司前,我搭建的是erlang17+ Eclipse + erlide 網上教程很是多,不細說搭建流程linux

第二步基本的語法知識git

         認真看erlang程序設計的前5章,新出第二版也是大同小異,而後寫一些題目,作一些潤年和斐波那契數列之類的題目了,熟悉lists函數庫的使用方法後,能夠水一些HduOj的11頁語法題,練練語法,這一步的要求是能夠熟練使用tuple(含record)和list的基本使用方法面試

第三步熟悉主要的otp算法

         認真看erlang程序設計的七、八、9章,瞭解進程的基本工做的原理,進程之間發消息和創建link等。網絡

附習題三道數據結構

一、用進程實現,初始有[{'a@localhost', 0}, {'b@localhost', 0}, {'c@localhost', 0}],當中a@localhost,b@localhost,c@localhost是三個erlang節點,相應的當前各類server節點人數是0,0,0,以後每次發送消息{update, Node},相應的Node人數就添加1,而後再提供一個,發送消息get_node_list,返回這三個節點在線狀況,比方[{'a@localhost', 12}, {'b@localhost', 10}, {'c@localhost', 23}]。app

 

二、建立一個網絡進程,註冊名是player_socket,同一時候在player_socket進程建立一個玩家進程,註冊名是player,接着,一、假設player進程crash了,那麼要通知player_socket進程,同一時候要關閉player_socket進程;二、假設player_socket進程掛了,那麼要通知player,但是不關閉player進程。

 

三、有8個Jobs分給4個進程去處理。比方fun(Id) -> io:format("~p~n", [Id]) end,Id就是第幾個Job,那麼就是[1-8]8個數字打印,分給四個進程去打印。

    注意:能解決以上題目,otp入門差點兒相同了,每道題目都要解決,不管花多久時間

第四步工做搭建好開發環境

         首先要會一些主要的Linux命令操做,沒玩過Linux或很是久沒玩的少年需要花時間熟悉它,公司的實際開發環境是linux+erlang17.0+emacs編輯器+rebar編譯,代碼管理和版本號控制git。資料在網上也有很是多關於rebar編譯和git,這裏我也寫不出的一二三。只是emacs的使用方法着實讓人很是是蛋疼,看文檔的話也不必定會用那些快捷鍵,這個要不斷的失敗嘗試

第五步gen_server  application  supervisor

         認真看書1六、18章這裏開始纔是真正的接觸erlang,要求初步瞭解這三者的使用方法,而後結合第四步一塊兒學習,這裏假設對gen_tcp不瞭解的話,要求去學習下

第六步項目框架基礎

         有了前五步的積累,這裏推薦otpserver框架經典博客一篇

         http://www.blogjava.net/yongboy/archive/2012/10/24/390185.html咱們公司的項目框架是以博客中的第二個框架爲基礎擴展

 

序:以上六步花了10天的時間熟悉,我到底有多弱,第十一天最終開始給公司貢獻最水的代碼了,進公司前,有兩個多月沒拍代碼,近四個月沒看過erlang,曾經看的差點兒相同都忘了,面試的幾家遊戲公司也沒有問關於erlang的知識,憑藉着數據結構和算法的底子也找到了幾家公司,現在呆的這家公司的威神大哥在網上認識的,人挺不錯,衝着這點別的單位都不去了,後面也證明本身的選擇沒有錯,感謝

相關文章
相關標籤/搜索