Erlang學習需要什麼基礎?
01-05
沒有C,C++, Java等開發語言背景的人學習Erlang反而更快。Erlang這種函數型語言,編程過程模擬人類的解決數學問題時的思路,更加適合初學者。你不會因為要搞懂指針,或者指針的指針,而去學習計算機系統架構。我們的計算機教育,一來就用中級語言(C語言)來教人寫代碼。
但是,
我學慣用計算機算做算數,為啥要設定我的答案一定是在2的32次方內?為啥要知道計算機的位長?為啥要關心變數的範圍?真正的面向人類的高級的計算機語言,都不需要你在寫代碼前,解答上述問題。所以Erlang,Python等,都是很好的入門語言。對初學者來說最大的障礙可能函數式編程。學習一下尾遞歸,再學習一下如何將普通的迭代式循環結構轉化為尾遞歸結構,基本上就沒啥障礙可言了。
作為一個每天都有寫Erlang的人, 我覺得:1. 知道什麼是尾遞歸, 以及怎麼把循環寫成尾遞歸;2. 有面向對象的概念, 但是實際上會用一個進程來模擬對象, 因為Erlang中沒有"對象";3. 大屏幕顯示器
我倒覺得,越是沒有編程基礎的,越容易學Erlang,其函數式思想、無變數的特點,更容易讓學生(數學思想)接觸編程。
http://learnyousomeerlang.com/ Learn You Some Erlang for great Good!
Erlang的語言特性集合很小,幾天就可以基本上手,但是其主要精髓在於分散式支持和錯誤處理機制,所以掌握語言特性後,下一步就是OTP的理解和運用。如果想對BEAM有所了解,最好先對OS Kernel有一定的理解,因為本質上BEAM相當於在OS層上的另一個語言級OS。對了, Elixir 馬上要發布1.0版本了,感覺Erlang語法彆扭的話,或者有Ruby 背景的話,可以去體驗一下,起碼不用定義多個同名變數,而且Lisp類型的宏是相當強大了。每個人都有自己的軌跡,有興趣就去學,沒有捷徑,也不會是黑洞。
貌似招聘erlang的公司很少啊,找不到出路。
函數式語言是另外一個不同的世界,一顆接受新事物的心,就很容易學。
最少有一些編程經驗,然後去買一本袋鼠書,在http://erlang.org下載erlang的環境,跟著書一點點走,什麽時候書爛了,你就入門了。去學就對了~
要有一點編程基礎, 不要跟你以前學過的語言做對比。
一對比,你就鬱悶了,哈哈如果什麼語言都沒接觸過的話,會比較難。
不過循序漸進的學起來還是可能的。
剛開始最煩的還是配置開發環境吧。SICP,可以先看這個。做前兩張的習題,基本函數式的思想就學到了。
有一定的編程基礎,能克服心理上的障礙(語法看上去比較嚇人),學習起來並不是那麼困難
Erlang代碼很優雅,但是不適合手寫眼看,需要用python其他腳本語言做個代碼生成框架
推薦閱讀:
※為什麼常說的「五代編程語言」(機器、彙編、面向過程、面向對象、智能)中沒有函數式語言的位置?
※設計一門編程語言的話,你認為最重要的一定要有的特性會是哪些?
※怎樣用簡單的語言解釋 monad?
※函數式編程中cps(continuation-passing style )是什麼意思?
※函數式語言的缺陷是什麼?
TAG:函數式編程 | Erlang編程語言 |