之所以會寫這篇文章,是因為在自學go
語言的過程,總會有些困惑和迷茫,總希望更好地學習下去,因此有了一些想法,在這裡梳理一下,以便日後回過頭來也可以看看此時此刻的想法。
基礎,除了學習go
語言的基礎外,也應該加強計算機基礎的學習。
對於go
語言的基礎,很多從其他語言轉過來的人,會覺得go
的基礎就是簡單的語法知識,因此沒有注重這塊知識的學習,其實,我覺得對於go
語言的基礎除了基礎語法
之外,還有go語言的使用規範
、程式設計思維
、csp模型
等,都需要深入學習和研究。
另外乙個就是計算機基礎,這方面的基礎比較枯燥,包括資料結構
、演算法
、計算機原理
、計算機作業系統
、計算機網路
等,我覺得計算機基礎知識是乙個程式設計師能走多遠的關鍵因素,沒有這些基礎知識的加持,對於go
語言的學習與使用,只會停留很基礎的層面,無法入使用。
所以,基礎很枯燥,但對於基礎的學習,很有必要。
很多關於go
語言的書籍內容都是千篇一律的,大概是因為這些書籍只是簡單地羅列出一些很基礎的知識,其內容跟go
語言的官方文件所列出的差不多,因此,如果是剛入門的新手想學go
語言的基礎,建議還是多看go
語言的官方文件,特別建議看《effective go》,這裡面有官方提供的go語言最權威高效和的基礎知識與使用方式。
當然也不是說所有的書籍都不值得看,像《go程式語言》
和《go語言實戰》
這些經典的書籍,還是應該多看看。
除了官方文件與經典書籍,我覺得一些實戰的書籍也不錯,比如掘金小冊《基於 go 語言構建企業級的 restful api 服務》
,一般偏實戰的書籍或課程,我們可以學習如何應用go
語言開發程式,學習go
語言最重要的一點就是使用go
語言的思維開發應用程式,而不用其他程式語言的思維來寫go
程式。
另外乙個要說的是,英語真的很重要,很多的技術官方文件都是用英文寫的,所以需要一定的英語基礎才閱讀,很多人會說看翻譯的中文文件不就行了,對於一些中文文件,乙個是翻譯得不全,乙個是有時候也翻譯得不准,還真不如直接看英文文件。
閱讀優秀開源專案**
閱讀別人優秀的專案源**,是提公升自己寫**能力的乙個很好的方式,我們可以從那些優秀的開源專案中學到別人的**組織方式,設計模式和**分層,解決問題思路,優秀的演算法和資料結構,甚至可以學習一些**命名風格等。
尤其是從別的開發語言轉到go
語言的同學,更應該多閱讀go
語言的一些開源專案,因為go
語言的很多設計和開發思想,跟其他程式語言真的很大的區別,所以,當我們轉到go
開發時,應該學習使用go的思維去解決問題,而不是用其他程式語言的思維來使用go
語言。
go
語言的開源專案有很多,最有名的像大家都知道的docker
和kubernetes
,下面的**,是別人維護的go
語言優秀開源專案列表,建議大家收藏。
awesome-go.com多動手,維護乙個自己的開源專案
除了閱讀別人優秀的專案源**,其實,我們也可以維護乙個自己的開源專案,這樣的做好處是什麼呢?
加入技術社群
每一種程式語言或技術都屬於自己的社群或圈子,go
語言也一樣有自己的社群,當然,那些英文的社群雖然有更豐富的資料和訊息,但我們可能由於自己的英文水平,而無法與外國的技術大牛溝通,那也沒關係,go語言也有一樣非常優秀的中文社群,如go語言中文網
。
最好的學習方式:寫作
為什麼說寫作是最好的學習方式呢?因為寫作是乙個教別人的過程,我們希望寫的東西別人能看懂,這就會逼著我們主動去學習,而主動學習是最高效的學習方式。
這裡有個概念,叫費曼技巧
,講就是通過教授別人來達到主動學習的目的,而主動學習金字塔中學習效率最高的學習方式。
因此,在go
語言的學習過程中,最好的學習方式還是在學習的過程,學會總結並記錄所學的知識碰到的問題。
對所學的知識進行簡單的整理,或許這樣有助於更加清晰地認識自己的學習,也能更好地調整學習方向與目標。
你的關注,是我寫作路上最大的鼓勵!
自己的經歷
從02年剛開始畢業,哪個時候什麼都不懂 對語言就是pascle c foxpro2.5 c語言還是自己學習的,大學四年有很多地方很充實,也很無奈啊。開始找工作的時候 有個要計算機老師,他是給人家培訓計算機等級考試的,當時面試可以,等上機考試,可以說什麼也不會,打字還是拼音,人家問,五筆不會嗎。我說不...
做更好的自己
不管你做那一行,看完這篇文章,理解透了,就等於你清華大學mb a畢業了。文章很長慢慢讀!海爾集團ceo 張瑞敏 演講語錄 人成熟與不成熟跟年齡沒有關係。人成熟不成熟,就是你能不能站在 對方的角度去看待事物,就是能不能把我的世界變成你的世界。這個 社會有很多的成年人,還沒有脫離幼稚的行為。一點小事情就...
談談自己的感受
在公司做事,很多事情不是自己乙個人做的,是大家一起做的。每乙個人的能力決定團隊的能力,如果你是團隊的骨幹,團隊中有那麼乙個人能力欠佳,也有乙個人比較懶惰,你該怎麼樣跟他們相處呢?我的回答是,將問題找出來丟擲來,少說多做,或者說指定乙個規則,比如今天有什麼樣的問題,發生過幾次,誰的責任?對於每乙個問題...