GoLang 學習攻略

??? 自從了解到GO,發現這門語言太棒了,每次寫demo都一種愛不釋手的感覺。最近和身邊的小伙伴聊天,發現他們也想學習go,但是不知道從何入手,在這里把自己學習的思路整理出來,以供大家參考。其實我也是golang菜鳥,以下不正確的地方歡迎大家一起指正討論。

? ?? 個人覺得學習一門編程語言需要以下幾個過程:

???? a. 從整體上了解這門語言的產生背景和主要特征,如:google工程師無法忍受c++的缺點,因而重新設計一門編程語言改進這些缺點;現在的軟件要求高效優雅地并發編程,所以go默認地支持協程;同時需要深入理解這門語言的演進過程,從現在看go比c++優雅的多,但是并不能說C++不好,因為任何東西都有其歷史背景,如果你處在C到C++的演進年代并且使用了多年C,C++的出現也會讓你眼前一亮。

???? b.? 快速的上手并參與到商業級項目,個人認為學習任何東西不能把所有理論研究透徹再去動手,應該學會基本理論馬上動手,然后在實踐中驗證理論。可以花上一到兩個月學習基本理論,動手寫一些demo,然后快速地切入到商業級項目。

???? c. 要用語言特有的思維模式去設計項目,比如用GO設計并發程序應該用go routine,不要再使用傳統的同步鎖機制。這就好比《天龍八部》的鳩摩智,用道家的內功心法去催動佛家少林72絕技,落得個走火入魔的下場。編程設計就像練武功,你不能拿C/C++的內功心法練GO的招式。

???? d.? 從大量的實踐中總結經驗,多整理經驗教訓,避開常見坑,多年之后就可以如火純青地使用一門語言。

???? 以上就是我對學習編程語言的理解,如果有疑問,歡迎大家一起討論。說得有點多了,下面來點干貨了,簡單羅列一下go學習書籍,這些書籍都是來自于下面兩個鏈接,在這里非常感謝作者的分享。

????? 系統學習GO,推薦幾本靠譜的書?

?????? Go語言學習 學習資料匯總

?1.? 快速入門

???? Go指南:https://tour.go-zh.org/welcome/1

??? 《The Way to GO 》中文版: https://github.com/Unknwon/the-way-to-go_ZH_CN

????? 第一個鏈接是go官方快速入門的教程,之前看過gopl(go programming language,go圣經,go之父寫的,就像c programming language, c++ programming language一樣,是最權威的),所以沒有看過第一個鏈接內容,這個鏈接是需要翻墻的。

????? 第二個鏈接中文版電子書翻譯的太好了,正在拜讀,這本書基本覆蓋好了GO所有的特征,還包含很好的demo,建議看完go tour之后細讀這本書。

?2. 系統學習書籍

???? 如果有很深的編程語言內功,這個時候應該可以上項目了,建議看一下開源項目,比如 go ethereum源代碼。個人認為還需要深入了解go內部機制,可以參考如下書籍:

????? 《GO 標準庫》

?????? 《GO編程語言》GO圣經

??????? 《Go學習筆記》

????? 這三本我只讀過GO 圣經,其他兩本今年肯定讀完,哈哈。

?3.? 大量的實踐

???? 大家看到這會很奇怪,為什么把“大量的實踐”單獨列出來?個人認為程序設計就需要大量的實踐,多踩坑,不斷總結,即使剛開始寫不出很優秀的設計,也要不斷動手模仿demo。要堅持不斷學習,千萬不要相信那些“21天學會C++”之類的廣告語,要腳踏實地把每一個基本概念搞清楚,若干年之后你會慢慢成為大牛。

???? 以上就是我總結的學習編程語言的基本思路和go語言學習書籍,歡迎大家加入學習GOLang的大家庭,謝謝!

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。