結合自己的經歷談談怎麼更好地學習Go語言

張君鴻發表於2019-06-02

原創作者,公眾號【程式設計師讀書】,歡迎關注公眾號,轉載文章請註明出處哦。

之所以會寫這篇文章,是因為在自學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語言的開源專案有很多,最有名的像大家都知道的DockerKubernetes,下面的網址,是別人維護的Go語言優秀開源專案列表,建議大家收藏。

awesome-go.com

多動手,維護一個自己的開源專案

除了閱讀別人優秀的專案原始碼,其實,我們也可以維護一個自己的開源專案,這樣的做好處是什麼呢?

維護一個自己的專案,可以綜合地運用自己所覺得的知識,看書看視訊看文件去做程式碼練習,得到的只是一些簡單的程式碼片段,不是一個綜合性成果,真正體現自己學習所得的東西,應該是一個完整的專案。

加入技術社群

每一種程式語言或技術都屬於自己的社群或圈子,Go語言也一樣有自己的社群,當然,那些英文的社群雖然有更豐富的資料和訊息,但我們可能由於自己的英文水平,而無法與外國的技術大牛溝通,那也沒關係,Go語言也有一樣非常優秀的中文社群,如Go語言中文網

除此之外,很多技術圈都會建很多的微信群或QQ群,我覺得加入一兩個這樣的群,跟群裡的人討論技術,遇到不懂的問題,也可以發問,如果自己懂的,也可以幫別人解決,讓自己更加有學習的動力。

最好的學習方式:寫作

為什麼說寫作是最好的學習方式呢?因為寫作是一個教別人的過程,我們希望寫的東西別人能看懂,這就會逼著我們主動去學習,而主動學習是最高效的學習方式。

這裡有個概念,叫費曼技巧,講就是通過教授別人來達到主動學習的目的,而主動學習金字塔中學習效率最高的學習方式。

結合自己的經歷談談怎麼更好地學習Go語言

因此,在Go語言的學習過程中,最好的學習方式還是在學習的過程,學會總結並記錄所學的知識碰到的問題。

小結

對所學的知識進行簡單的整理,或許這樣有助於更加清晰地認識自己的學習,也能更好地調整學習方向與目標。


你的關注,是我寫作路上最大的鼓勵!

結合自己的經歷談談怎麼更好地學習Go語言

相關文章