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

原創做者,公衆號【程序員讀書】,歡迎關注公衆號,轉載文章請註明出處哦。html

之因此會寫這篇文章,是由於在自學Go語言的過程,總會有些困惑和迷茫,總但願更好地學習下去,所以有了一些想法,在這裏梳理一下,以便往後回過頭來也能夠看看此時此刻的想法。程序員

關於基礎

基礎,除了學習Go語言的基礎外,也應該增強計算機基礎的學習。golang

對於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語言的學習過程當中,最好的學習方式仍是在學習的過程,學會總結並記錄所學的知識碰到的問題。

小結

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


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

相關文章
相關標籤/搜索