銅靈 發自 凹非寺
量子位 出品 | 公眾號 QbitAI
如果你有意進大廠,學習Go語言一定要提到你的日程上了。
美國程序員招聘網站Hired發布《2019軟件工程師狀態》報告中顯示,基于市場供需來說,Go語言使用者目前最受招聘市場歡迎。
對比之下,你喜歡的Python受歡迎程度未排進前五。
Go躥紅,是因為它在業界的使用頻率越來越高了。國外的Google、AWS、Cloudflare等,國內阿里、知乎等都已經大規模用Go語言開發相關產品,知乎還舍棄了Python用Go重構推薦系統。
今天,網友hoanhan101分享了一份完整Go語言學習筆記,里面記錄了他從零開始學習Go語言時所用的方法,以及對應全部學習資料。
Hackernews熱度1天升至400,好評如潮,一句話概括:
適合新手服用!
先上資源地址:
https://github.com/hoanhan101/ultimate-go
三階段學習最全筆記
hoanhan101小哥建議,從零開始入門Go語言,可以分成三個階段。
一階段,啃完Ultimate Go Programming的視頻講座。
二階段,利用Go語言培訓社區Ardan Labs里提供的資源,強化實踐。
三階段,反過來研究關于計算機系統的理論教材,對系統知識再進行了解。
hoanhan101的學習思路是,注重理論與理論的結合,并且不能放棄死摳源代碼。
重點來了,上述三個步驟需要的課程資源,hoanhan101小哥幫你整理好了,在GitHub資源中直接點開就能用。
這部分學習筆記大致分為幾部分。
一是Go語言設計理念(Design Philosophy),內含介紹文檔×1,不知道Go可以用來做什么可以從這里開始學習。
在這份入門指南中建議,在學習Go語言前必須制定一套設計理念,比制定盲目應用的規則更重要。
設計理念中特別強調了理解代碼本身,學寫代碼其實和學一門自然語言有相似之處,需要閱讀好的壞的代碼加深語感,而這塊是很多程序員缺乏的。
二是語言機制(Language Mechanics),包括Go語言的句法、數據結構、解耦三部分,每個分別有多個細分介紹。
三是軟件設計(Software Design),內容細化到分組類型解耦過程、界面轉換、界面污染,mock過程和常見雷區。
每個分類里還包含若干源代碼分析,都是小哥自己學習時踩過的坑。
四是研究并發性(Concurrency),也就是在Go協程(Goroutine)、數據競賽、多個channel和不用模式語境和模式下的操作過程。
五是測試和分析(Testing and Profiling),寫到了基本單元測試、表測試、自測試等發測試方法,以及常見的標準等。
此外,還有各種包(Packages),作者表示這部分還在完善中。
Go語言資源大匯總
Go的熱度不是蓋的,這份資源一出,Hackernews上的討論區就開始活躍了,不少網友繼續貢獻資源、分享心得,也有一些對這份學習筆記的評價。
用戶@olah_1推薦了一個Go語言課程,表示:
Learn Go with Tests是我經歷過的最好的編程語言課程。
地址:
https://github.com/quii/learn-go-with-tests
自帶中文版資源:
用戶@plinkplonk建議,如果搞不明白Go是什么,可以去OReilly上資料:
http://shop.oreilly.com/product/0636920046516.do
用戶@ValentineC推薦了一個GitHub上5000+star的課程培訓,來自上面提到的機構Ardan Labs:
https://github.com/ardanlabs/gotraining
還有網友貢獻自制學習思維導圖:
地址:
https://github.com/dzyanis/roadmap
也有人推薦學習如何在沒有框架的情況下用Go語言編寫web app:
https://github.com/thewhitetulip/web-dev-golang-anti-textbook
據說,這份資料是由有15年編程經驗人完成,現在免費開放。
有了這么多過來人的建議,還怕學不好么~
傳送門
GitHub地址:
https://github.com/hoanhan101/ultimate-go
hackernews討論區:
https://news.ycombinator.com/item?id=20701671




