{eval=Array;=+count(Array);}
go(又稱golang)是google的三位大牛羅伯特·格瑞史莫(Robert Griesemer), 羅勃·派克(Rob Pike)及肯·湯普遜(Ken Thompson)在2009年推出的編程語言,它是一種靜態(tài)強(qiáng)類型、編譯型、并發(fā)型,并具有垃圾回收功能的編程語言,很方便的支持協(xié)程,支持大并發(fā)。在后端開發(fā),微服務(wù),云計(jì)算方面應(yīng)用比較廣泛,目前國內(nèi)很多一線互聯(lián)網(wǎng)公司的服務(wù)都是用golang搭建,學(xué)好golang是很前途的。
我認(rèn)為學(xué)好golang有如下三步驟:
1)go語言程序設(shè)計(jì)(艾倫A. A. 多諾萬著),golang語言基礎(chǔ),是入門首選
2)go語言圣經(jīng)(Kernighan著),golang語言的權(quán)威著作,進(jìn)階首選
3)golang的官方文檔(https://golang.org/pkg/)
4)golang大牛的演講和blog()
1)開始學(xué)習(xí)時(shí),要邊看書變學(xué)習(xí),將書中的例子一定自己動(dòng)手寫一遍,運(yùn)行調(diào)試一下。
2)邊做項(xiàng)目邊學(xué)習(xí)是成長最快的方法,一定要參與golang項(xiàng)目的開發(fā),你的工作一定要是golang開發(fā)。
閱讀優(yōu)秀開源項(xiàng)目提升自己的技術(shù)水平和開闊一些視野
1)beego (https://github.com/astaxie/beego)
國產(chǎn)開源的高性能Web框架,讓你快速的開發(fā)Go Web應(yīng)用服務(wù),謝大主筆
2)codis (https://github.com/CodisLabs/codis)
Codis是一個(gè)分布式Redis解決方案,其實(shí)就是一個(gè)數(shù)據(jù)庫代理,讓你在使用Redis集群的時(shí)候,就像使用單機(jī)版的Redis是一樣的,對(duì)開發(fā)者透明。
3)docker (https://github.com/docker/docker)
無人不知的虛擬華平臺(tái),開源的應(yīng)用容器引擎,借助該引擎,開發(fā)者可以打包他們的應(yīng)用,移植到任何平臺(tái)上。
4)kubernetes (https://github.com/kubernetes/kubernetes)
Google出品,用于調(diào)度和管理Docker的開源容器管理系統(tǒng),利用他,可以方便的管理你的docker實(shí)例,哪怕非常多,也是目前最流行的docker管理系統(tǒng)。
5)golang (https://github.com/golang/go)
golang是開源的編程語言,可以閱讀golang的源碼提升自己
經(jīng)常總結(jié),讓經(jīng)驗(yàn)沉淀下來,有條件可以寫博客,也經(jīng)常看看別人的技術(shù)博客
以下是我為星球『Go項(xiàng)目實(shí)戰(zhàn)』用戶整理的新手如何學(xué)習(xí)Go語言的資源,分享給你。
學(xué)習(xí)任何東西,基礎(chǔ)都很重要?;A(chǔ)就好比建筑的地基,只有地基牢固了,才能建成高樓大廈。
學(xué)習(xí)編程語言亦是如此。很多人喜歡一上來就學(xué)習(xí)各種框架,其實(shí)那些框架對(duì)你來說都是工具,你自己的基礎(chǔ)好,懂得了它們的原理,自己也有能力創(chuàng)造更優(yōu)秀的框架。
Go語言這幾年發(fā)展的確實(shí)不錯(cuò),雖然沒有實(shí)現(xiàn)趕超C++的目標(biāo),但是已經(jīng)很接近了。而這些年也出現(xiàn)了一些Go語言的有名的項(xiàng)目,比如 kubernetes、Docker、Etcd、Tidb等項(xiàng)目。
我這里整理了一份關(guān)于Go語言的學(xué)習(xí)路線,也可以輔助你做判斷。
Go語言是一門全新的靜態(tài)類型開發(fā)語言,具有自動(dòng)垃圾回收、豐富的內(nèi)置類型、函數(shù)多返回值、錯(cuò)誤處理、匿名函數(shù)、并發(fā)編程、反射、defer等關(guān)鍵特征。從語言層面來說天然支持并發(fā),可以充分利用CPU多核,并且非常適合用來進(jìn)行服務(wù)器編程、網(wǎng)絡(luò)編程和分布式編程等。
在云計(jì)算領(lǐng)域,用Go語言編寫的云基礎(chǔ)項(xiàng)目如Docker、Kubernetes都取得了巨大的成功,別外還有知名的項(xiàng)目如Etcd、consul、flannel等,也都是使用Go語言實(shí)現(xiàn)的。
為你提供幾張學(xué)習(xí)Go語言的線路圖,從基礎(chǔ)到進(jìn)階、Web編程、微服務(wù)的學(xué)習(xí),你可以參考一下。
基礎(chǔ)學(xué)習(xí)
書籍推薦
《Head First Go語言程序設(shè)計(jì)》、《Go語言學(xué)習(xí)筆記》、《Go語言趣學(xué)指南》、《Go語言編程》
當(dāng)然,不必所有的書都讀,找其中一本學(xué)習(xí)即可。
在線學(xué)習(xí)Go語言資料
初級(jí)練手項(xiàng)目
Go語言進(jìn)階
書籍推薦
《Go程序設(shè)計(jì)語言》、《Go專家編程》、《Go語言高級(jí)編程》、《Go并發(fā)編程》
在線學(xué)習(xí)Go語言資料
1.《Go 語言設(shè)計(jì)與實(shí)現(xiàn)》: https://draveness.me/golang。
2.《Go 語言高級(jí)編程》: https://chai2010.cn/advanced-go-programming-book。
進(jìn)階練手項(xiàng)目
Go Web編程
書籍推薦
《Go Web編程》
在線學(xué)習(xí)資料
可以學(xué)習(xí)下 web 框架 Gin、beego:兩個(gè)框架都比較的流行,選擇其中一個(gè)其實(shí)就可以了,推薦 Gin。官方文檔都有中文,照著 demo 敲一下,了解下怎么處理 HTTP 請(qǐng)求的。
其次還需要掌握一下比較流行的 ORM 框架 Gorm,有官方中文文檔,照著 demo 敲一下基本上兩天就能掌握了,后面遇到不會(huì)的再來查。
Web框架相關(guān)的,基本上看官方文檔就可以了,就不用再去找專門介紹的書籍,沒有比官方文章更正宗的資料了。
除框架之外,你還需要學(xué)會(huì)的是包括但不限于:
Go Web項(xiàng)目推薦
Go 微服務(wù)
目前 Go 在微服務(wù)中的應(yīng)用也比較廣泛,但說實(shí)話,微服務(wù)是一個(gè)太龐大的話題,你不可能把每一個(gè)核心的問題都能夠搞清楚,而且也沒條件,或許只能在公司的具體的微服務(wù)生產(chǎn)環(huán)境中,才能夠?qū)ο嚓P(guān)的概念有更加深刻的體會(huì)。
推薦一本微服務(wù)概述的基礎(chǔ)書籍《微服務(wù)設(shè)計(jì)》、《微服務(wù)架構(gòu)設(shè)計(jì)模式》,可以幫助你理解微服務(wù)的建模、集成、測試、部署和監(jiān)控的一些基礎(chǔ)知識(shí)。
其次,你可以看一下《Go微服務(wù)實(shí)戰(zhàn)》這本書,看后半部分即可,里面其實(shí)介紹的還是關(guān)于微服務(wù)方面的知識(shí)。
推薦 Go 語言的微服務(wù)框架 GoKit、GoMicro、go-zero、kratos,可以隨便選擇一個(gè),理解其基本的用法、設(shè)計(jì)等等。其中 go-zero 和 kratos 是國內(nèi)開源的,因此都有比較詳細(xì)的中文文檔。
在線學(xué)習(xí)的資料:
https://ewanvalentine.io/microservices-in-golang-part-1
手把手實(shí)現(xiàn)一個(gè)簡單的 Go 微服務(wù)項(xiàng)目,你可以通過這個(gè)項(xiàng)目來學(xué)習(xí)微服務(wù)的相關(guān)知識(shí),并且有中文版。
Go語言原理研究
如果你對(duì)Go語言底層原理感興趣的話,可以看下這本書《Go語言底層原理剖析》。
開源項(xiàng)目學(xué)習(xí)
在項(xiàng)目開發(fā)過程中,也會(huì)用到各種開源項(xiàng)目。一開始沒必要直接鉆研源碼,先要學(xué)習(xí)開源項(xiàng)目背景,能解決什么問題,開源作者的項(xiàng)目理念,使用了哪些技術(shù)等等。
這些清楚以后,可以找自己感興趣的技術(shù)點(diǎn)或者模塊去針對(duì)性的學(xué)習(xí),千萬不要想著一開始就想一網(wǎng)打盡式的學(xué)習(xí),沒有針對(duì)性意味著沒有重點(diǎn),沒有重點(diǎn)很大概率就會(huì)白學(xué)或者學(xué)到的就會(huì)很少。
先推薦幾個(gè)經(jīng)典的開源項(xiàng)目供你參考:
如果你有自己比較看好的開源項(xiàng)目會(huì)更好,興趣永遠(yuǎn)是前進(jìn)的第一步。
相對(duì)前幾年,Go語言的書籍、教程,各種文章都如雨后春筍一般越來越多,學(xué)習(xí)起來也更加方便,但是同時(shí)也要注意不要過度陷入知識(shí)碎片而無法自拔,最重要的還是要去系統(tǒng)去學(xué)習(xí)一下,針對(duì)性的練習(xí)、實(shí)踐和應(yīng)用。
實(shí)踐出真知,通過gobyexample這樣的文檔一步步去學(xué)習(xí),基本上敲一遍能夠入門了。然后接下來就是自己做一個(gè)小項(xiàng)目,可以從自己最拿手的領(lǐng)域做起,多看多寫,時(shí)間沉淀久了自然就會(huì)了。
golang越來越有優(yōu)勢,有什么學(xué)習(xí)路線沒有?
golang學(xué)習(xí)比較簡單,不過任何一門語言都不是孤立存在的,在這里簡要說明一下golang開發(fā)的學(xué)習(xí)路線
1.golang基礎(chǔ),包括go語言安裝,go語言語法,流程控制語句,函數(shù),方法,面向?qū)ο蟾拍睿W(wǎng)絡(luò)編程,并發(fā)編程等
2.golang開發(fā)框架,包括beego,gin,Iris,Echo等
3.微服務(wù)開發(fā)
4.深入的話還可以學(xué)習(xí)算法部分。如果要接觸區(qū)塊鏈相關(guān)技術(shù)的話,還需要學(xué)習(xí)區(qū)塊鏈的加密算法等相關(guān)知識(shí)
5.如果要結(jié)合go實(shí)現(xiàn)應(yīng)用的話,肯定離不開各種數(shù)據(jù)庫,比如關(guān)系型數(shù)據(jù)庫oracle、mysql,或者各類非關(guān)系型數(shù)據(jù)庫等等
6.如果需要開發(fā)界面的話,還需要學(xué)習(xí)網(wǎng)頁編程如html,javascript,vue,elementUI,bootstrap等網(wǎng)頁開發(fā)技術(shù)和框架。
7.在以上學(xué)習(xí)的基礎(chǔ)上還可以向架構(gòu)方面深入學(xué)習(xí)。
鏈喬教育在線祝您學(xué)有所成。
非常好的問題。首先我是有三年go語言開發(fā)經(jīng)驗(yàn)的了?;卮鹉氵@個(gè)問題之前,首先要理解如何學(xué)習(xí)go,是你要達(dá)到什么樣的級(jí)別。就是目標(biāo),比如你要達(dá)到大師級(jí)別?;蛘吣阈枰胓o做什么開發(fā)工作?一定要先搞清楚需求,舉個(gè)例子
1 我要如何學(xué)習(xí)go才能做web開發(fā)
2用go做ai 或者圖像處理
3開發(fā)以太坊區(qū)塊鏈
就web開發(fā)而言的話就不同領(lǐng)域需要畫一個(gè)腦圖,就是路線圖,把達(dá)到目標(biāo)之前的各個(gè)知識(shí)點(diǎn)列出來,比如基礎(chǔ)go知識(shí),變量,常量,slice. map struct channel go routine 并發(fā)等等 還有相關(guān)領(lǐng)域的開發(fā)工具,的腦圖,比如goland vs code 還要需要的linux 命令行, dockers 等等相關(guān)路線圖 還有g(shù)in 框架
但是如果要學(xué)圖像 ai 區(qū)塊鏈還要學(xué)習(xí)相關(guān)基礎(chǔ)和框架,比如tensorflow 智能合約 opencv 如果只要學(xué)習(xí)基礎(chǔ)請(qǐng)關(guān)注我的頭條14天學(xué)會(huì)go語言,最重要的是要多練!謝謝
對(duì)于初學(xué)一門語言的同學(xué),一般會(huì)推薦一本經(jīng)典入門書籍。按照慣例go語言我推薦《go語言圣經(jīng)》。
書只是一方面。在學(xué)習(xí)習(xí)慣上,本人還是習(xí)慣帶著問題去學(xué)習(xí)。何為帶著問題學(xué)習(xí)呢?首先,要想想學(xué)習(xí)go語言的目的是什么?選個(gè)開發(fā)項(xiàng)目來練手,邊學(xué)邊做,帶著問題有目的的學(xué)習(xí)語言 效率會(huì)很高。
當(dāng)然,如果之前沒接觸過編程,可能前期需要看看入門的視頻和實(shí)例,按照指導(dǎo)一步一步跟著動(dòng)手實(shí)驗(yàn)。
總的來說,多動(dòng)手,多想多總結(jié),然后帶著問題學(xué)習(xí),學(xué)習(xí)效率應(yīng)該很高了。
(圖文無關(guān))
5月20日工業(yè)和信息化部信息中心發(fā)布《2018中國區(qū)塊鏈產(chǎn)業(yè)白皮書》,Go語言與區(qū)塊鏈成為“數(shù)字中國”建設(shè)的重要支撐,go語言由此被提起!
Go語言熱度攀升,市場薪資居高不下
據(jù)BOSS直聘研究院數(shù)據(jù)顯示2018年Go語言與區(qū)塊鏈職位月薪11000元以上占整體的95.5%
為什么Go語言被眾多名企青睞?
區(qū)塊鏈主流編程語言
簡單易學(xué)開發(fā)速度快
Go語言并發(fā)性好
如何學(xué)習(xí)GO語言:
可以到黑馬程序員看一下這些GO語言的教程哦!也可以后臺(tái)回復(fù):go語言
先來看看什么是go語言:
Go語言是谷歌2009發(fā)布的第二款開源編程語言。
Go語言專門針對(duì)多處理器系統(tǒng)應(yīng)用程序的編程進(jìn)行了優(yōu)化,使用Go編譯的程序可以媲美C或C++代碼的速度,而且更加安全、支持并行進(jìn)程。學(xué)習(xí)編程語言,主要的需要做到三點(diǎn):
基礎(chǔ)知識(shí)要學(xué)好。
學(xué)會(huì)抄代碼,直到自己能倒寫如流!
學(xué)會(huì)自己寫代碼,只有自己會(huì)寫代碼了,才是真正的學(xué)會(huì)了!
都說“欲速則不達(dá)”,么有扎實(shí)的基本功,怎么能更好的學(xué)習(xí)!就像建房子,首先要有地基,之后才能往上蓋,這樣就不會(huì)坍塌!
推薦入門視頻:20小時(shí)快速入門go語言
當(dāng)你把基礎(chǔ)學(xué)完之后,要想更好的掌握,就可以考慮抄代碼了!我們開始寫代碼都是沒什么思路,也無從下手,但是我們可以模仿別人寫代碼,上海俗話里面常說"吃大戶,用大戶,消滅大戶",我們就是"看代碼,抄代碼,最后自己寫代碼"
當(dāng)你可以寫代碼的時(shí)候,就說明對(duì)GO有了很好的了解,這時(shí)候就要自己做項(xiàng)目了。
關(guān)于學(xué)習(xí)視頻,樓樓可以找我要哦,關(guān)于對(duì)GO學(xué)習(xí),大家也可踴躍參加,歡迎指正批評(píng)!
go語言語法簡單,有編程基礎(chǔ)的學(xué)起來不困難,上手很快的。語法弄明白之后就是他的數(shù)據(jù)類型,已經(jīng)go語言的OOP。有了一定基礎(chǔ)之后可以看一些開源項(xiàng)目的源碼,幫助很大的。之后自己可以動(dòng)手寫一下小的項(xiàng)目,網(wǎng)絡(luò)編程的聊天室等等。其實(shí)go可以說的上是拿過來就可以用的語言,所以學(xué)習(xí)不要有壓力,多看看視頻,多動(dòng)手。
0
回答9
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答