標籤:

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

go學習筆記第3版

Go並發編程實戰

https://github.com/wonderfo/wonderfogo/wiki

https://github.com/gunsluo/Learning-Go-zh-cn

http://www.vaikan.com/go/a-tour-of-go/#1

怎麼學習golang? - 編程


學習任何一門語言,都要學習好基礎,把基礎打牢,那些框架對你來說都是工具,你自己的基礎好,懂得了他們的原理,自己就可以創造更優秀的框架。

基礎推薦官方文檔,沒有什麼比這個更清晰了。官方文檔可以看這個中文的,比較快一些 https://go-zh.org/doc/

其次參考這個Go指南,練習一遍 https://tour.go-zh.org/welcome/1

現在對Go語言應該有了一個全面的認識,然後你再結合Go語言聖經這本書,深入理解Go的基礎。

Go語言聖經中文版 https://www.gitbook.com/book/yar999/gopl-zh/details

然後通過《Go語言實戰》這本書,In Action系列都是比較經典的,看這本書的實習可以參考我《Go語言實戰》這本書的讀書筆記,一共近30篇文章,15萬字,非常全面,書里沒有的我這裡也講到了很多。這裡列其中幾篇:

  1. Go語言開發環境搭建詳解
  2. Go語言實戰筆記(一)| Go包管理
  3. Go語言實戰筆記(五)| Go 切片
  4. Go語言實戰筆記(九)| Go 介面
  5. Go語言實戰筆記(十三)| Go 並發資源競爭
  6. Go語言實戰筆記(二十)| Go Context
  7. Go語言實戰筆記(二十四)| Go 反射
  8. Go語言實戰筆記(二十六)| Go unsafe 包之內存布局

最終再通過一些別的第三方庫源代碼和實踐,就可以完全掌握了。我最近也在分析一些經典庫,可以保持關註:

  1. Go語言經典庫使用分析(一)| 開篇
  2. Go語言經典庫使用分析(二)| Gorilla Context
  3. Go語言經典庫使用分析(三)| Gorilla Handlers 詳細介紹
  4. Go語言經典庫使用分析(四)| Gorilla Handlers 源代碼實現分析
  5. Go語言經典庫使用分析(五)| Negroni 中間件(一)
  6. Go語言經典庫使用分析(六)| Negroni 中間件(二)

此外補充一些有意思的博文:

  1. 一個簡單的Golang實現的HTTP Proxy
  2. 一個簡單的Golang實現的Socket5 Proxy
  3. GitHub上優秀的Go開源項目
  4. 從Java到Golang快速入門
  5. Golang必備技巧:介面型函數

最新的Go 1.9出來了,這裡我專門寫了一些不錯的Go 1.9新特性的文章,建議參考:

  1. Go語言 | Go 1.9 新特性 Type Alias詳解

更多更詳細更新的可以關注我上面的【公】【眾】【號】【flysnow_org】。

最後,希望這個可以幫助你。。


看過很多本Go語言的書,推薦下

《Go程序設計語言》(艾倫A. A. 多諾萬)【摘要 書評 試讀】- 京東圖書

把這本書當成教科書就好,裡面很多地方寫的非常細緻。即便寫了很多年的老司機看過這本書也感慨萬千:「還有這種寫法!」


基礎:the go programming language和go in action。

原理學習:雨痕的go學習筆記。

web編程:直接看astaxie在github上的go web編程。

還有一本內容有些舊的,但個人覺得值得一看的書就是the way to go。大而全。github上有部分章節的中譯版。

另外,建議看一遍官方的language specificaition,effective go和go faq,對學go,理解go設計的來龍去脈大有裨益。


我推薦go語言聖經,學go必看的一本書。

http://www.gopl.io

中文電子版

https://www.gitbook.com/book/yar999/gopl-zh/details

紙質版快了


來來來小夥子,learning by doing,給你一個網站

6.824 Schedule: Spring 2015

用go實現分散式系統,學習一門語言最好的是有項目進行實踐,邊看語法變上吧


首先我覺得大家在學習的時候不僅僅是學習一門語言喲,經常會有想法——有什麼辦法,書或者教程可以讓自己一下子很厲害?包括我自己也是。但後來慢慢的我總結了,速成的不會很牛逼,越是深厚的功力越需要不斷的持續的學習研究,但是就像武俠小說武功一樣,還是有方法達到事半功倍的效果的,我自己的經歷是以下:

1.熟悉最基本的知識。例如語言發展歷史,基本語法,在武俠里是基本招式

2.看官網。網上經常有人問,Go牛逼在哪?或者Go到底有什麼優點?看到大家你一言我一句,可是看看官網第一段話:

The Go programming language is an open source project to make
programmers more productive.

Go is expressive, concise, clean, and efficient. Its concurrency
mechanisms make it easy to write programs that get the most out
of multicore and networked machines, while its novel type system
enables flexible and modular program construction. Go compiles
quickly to machine code yet has the convenience of garbage
collection and the power of run-time reflection. It"s a fast,
statically typed, compiled language that feels like a dynamically
typed, interpreted language.

很清晰,很簡潔的已經總結了,何必問來問去。官方網站是這門知識最正宗最前沿的知識,一定要追隨。

3.多研究,多思考,多問自己問題。我們可以看到不同的學習者,遇到一個東西有的問題很多,有的沒有問題,這是為什麼?是他都會了?不是,是他沒有去思考。沒有問自己為什麼?有了為什麼沒有動力去找答案。差距就出來了。

4.多練習,我們可以看到張無忌就算有神功也需要練習啊。多練習才會遇見問題,才會收穫經驗。

5.多總結,多交流。例如寫博客,做分享,討論等等。

大家都很年輕,我們的路還長,方法也很重要。即使技術大咖也是一步步成長的,一味的膜拜跪膝蓋沒啥意義。

共勉!


限於自己(目前)的水平,以下言論僅代表個人看法,可能有失偏頗(不當之處請見諒),僅供參考。

一、入門(排名不分先後)

推薦1:Go Web編程--&>如果對 Web 開發興趣不大,直接看前幾章基礎知識;

推薦2:The.Way.To.Go.A.Thorough.Introduction.To.The.Go.Programming.Language

推薦3:An Introduction to Programming in Go

能基本無障礙閱讀英文的童鞋,基本上看完 2 應能入門了(了解語言語法及基本的編程範式等)。

當然,若時間及興趣充足,Go語言程序設計 也可以一看。

不推薦1: Go語言編程--&>此書低級的筆誤及錯誤實在不能算少,至少我覺得,在作書態度上,許要差謝不少,雖然許的能力毋庸置疑。

不推薦2:Go並發編程實戰--&>文筆真的是比較啰嗦,內容似乎也不具有較好的參考價值,總體而言,可能「雞肋」比較適合評價這本書吧,看之無味,棄之可惜。

二、 夯實基礎(可同時閱讀及練習)

推薦1: The Go Programming Language(Go語言聖經)--&>漢化版其實筆誤也不少,譬如反射等章節,可能翻譯得也不太好,但總體而言還是能接受的,尤其是這是一本社區翻譯並免費分享的資料。本書的一些實例(如爬蟲等)及技巧、範式等值得學習。

推薦2:Go by Example。

推薦3:Go in Action、Go in Practice、Go Recipes 等。

三、實戰及應用

看項目需求及個人興趣等(譬如我就擼了個小輪子iniutils for Golang,也擼了個小玩意迷你文件下載伺服器 - ecofast - 博客園 等)。Github 上也有不少高質量的開源項目。


推薦給你,然後幾年後你發現推薦給你那些書全TM是翻譯抄襲官方文檔。

所有就不推薦了


看完這11本書,如果還不會,那就轉行吧。。。(找go文件夾)

https://github.com/dashpradeep99/https-github.com-miguellgt-books


這語言,本來就是遷就不太熟悉編程的人, 說實在,真沒什麼好學的, 要學的也是一些計算機通用的知識. 至於語法什麼, 做一些簡單的例子,看看那些精彩包的源代碼,基本就 OK 了.


如果你是想利用golang做web開發,那我推薦https://astaxie.gitbooks.io/build-web-application-with-golang

另外建議多看官方文檔,走一遍官方的go tour,一定要什麼書的話除了上面推薦的那本開源書籍之外,可以看看許式偉的那本Go語言編程。如果想進步快多看看網上別人寫的代碼,github上下載一些golang的小項目下來看看,試著自己改寫或者仿寫一個,很快就學會了。golang做web開發確實很不錯,簡潔高效


The Go Programming Language

就這一本就夠了


我推薦謝大的 Go web編程 網上有開源版本。為什麼推薦呢 13年的時候 我看就過Go語言程序設計,Go語言原動力等書,然而並不覺得有謝大的書簡潔易懂,後來特價蘿蔔出了一本書就Go語言並發編程,因為語言太啰嗦為人詬病。 如果說入門的話,我覺得此書剛剛好。不算太難,也不會過於淺顯。


https://golang.org/doc/effective_go.html讀讀這個,理解設計思想 和 語法設計的規則是最重要的


有c基礎就看源碼庫net/http等


我是搬運工 推薦下面幾個資源需要的自取

https://www.quora.com/What-are-the-best-online-resources-for-learning-Go-programming-language

golang/go


Go Programming Blueprints - 如果你不知道拿Go來做什麼

The Go Programming Language - 語言基礎


直接去官方網站看完 effective go。然後用go寫一些leetcode上的小程序,立馬掌握


aster謝的Go web編程

雨痕的那本go語言筆記不錯。當時是網上看的

go官方文檔

go tour,可以下到本地跑

go語言主要是goroutine這種非同步方式比較特殊,可能需要結合進程,線程,協作式多任務,generater,coroutine想關的知識來理解。


看幾天語法,然後直接上docker


如果學過c語言和c++,java,轉go很容易。

如果沒學過,會備受折磨


推薦閱讀:

golang寫法疑問?
王垠噴 Go 語言,許式偉贊 Go 語言,大家怎麼看?
標準庫bytes包中,Buffer對象的ReadRune方法如何用...?
golang 想要持久的火起來,該怎麼做?
Go 1.7.6 和 1.8.2 雙版本發布,GO語言開發團隊為什麼要維護一個較低的歷史版?

TAG:Go語言 |