三刷Go語言聖經帶給我的感悟和收穫以及進階書籍整理推薦

不會飛的章魚發表於2019-08-21

Go語言是我大學畢業開始接觸的一門程式語言,在此記錄下我學習Go語言的歷程和感受。

一刷

2018年7月-8月,入職遊戲服務端開發,負責人給我扔了兩本書,一本是機械工業出版社的《Go程式設計語言》,另一本叫《程式碼整潔之道》。

第一次接觸一門新語言,給我的感受是,Go的語法很簡潔,有Python和C的影子,不過最讓我著迷的還是它的併發機制:協程和管道。

不過第一遍看完後,我只記住了概念,運用還不熟練。

二刷

2018年12月-2019年2月,從零開始寫一個定時刪除的服務,和學習一個流媒體適配服務,體會了把看到的理論用程式寫出來興奮,同時也經歷了出現記憶體洩露和CPU佔滿的解決bug的過程。

二刷總是覺得哪地方不理解翻回去通過概念和原理找解決方案,查漏補缺。

三刷

2019年-3月-2019年7月,印象最深的是,一個服務遇到了協程洩露和Mysql連結過多的bug,而這些看似神奇的bug,通過檢視日誌,dlv除錯,上stackoverflow找答案,看Go聖經概念做推斷後解決,讓我再一次體會到基礎的重要性。

三刷,快速的把聖經的概念和例子過了一遍。

感受和收穫

1,做“T”字型人才,先在一個領域上做精做深,再擴充其他領域會很容易。

2,工程思維:發現問題 -> 解決問題。有時候學會發現問題的關鍵,解決問題往往很容易。

3,找一本合適的書作為Go語言的入門書籍,會為以後做專案和深入學習節省大量的查漏補缺時間。

另外,如果覺得自己基礎過關了,可以嘗試去刷下A Tour of Go上的練習題,以下是我提供的一些參考答案

Go語言進階書籍推薦

  • 《Go併發程式設計實戰》
    本書有三個demo,分別是載荷發生器併發安全的字典和一個網路爬蟲框架,可以在學完基礎後將這上面的demo理解實現,加強技能。但是這本書沒有Web服務方面的實踐,它是著重併發程式設計
    另外我已經將三個專案的程式碼編譯通過上傳至github

  • 《Go語言實戰》

  • 《Go Web程式設計》
    這本書將完整地介紹使用 Go 語言開發 Web 應用所需的全部基本概念,從零開始搭建起一個簡易的論壇,在這個論壇裡面,使用者可以註冊賬號,並在登入之後發表新帖子又或者回復已有的帖子; 未註冊使用者可以檢視帖子,但是無法發表帖子或是回覆帖子 。

另外還有一本同名,作者是謝孟軍的《Go Web程式設計》也不錯。

  • 《Go高階程式設計》
    由曹大和柴大共同編寫的一本書,涉及cgo程式設計,go組合語言,RPCProtobuf和分散式系統,屬於更深層次學習Go語言的書籍。
    另外,在書上市的時候,很榮幸獲得兩位大佬的雙簽名書籍。
    enter image description here

  • 《Go語言101》
    這本書可以當作參考,上面很多細節點,可以查閱自己感興趣的部分。

  • 《Concurrency in Go》
    著重講解Go的併發原理。

  • 《Go in Practice》
    列舉出了70種工作中寫程式碼可能會碰到的問題,並對每個問題帶有詳細的討論過程和解決方案。

  • 《Data Structures & Algorithms In Go》
    側重資料結構演算法,Go程式設計和找工作方面的,書中分別給出了使用本書準備1個月/3個月/5個月後面試的計劃;

以上內容,希望能對正在學習Go和準備學習Go的朋友提供一些參考價值^_^

相關文章