1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Go 語言學習路線來啦

        共 3940字,需瀏覽 8分鐘

         ·

        2021-07-27 10:50


        時不時的有人問我一些關于 Go 語言學習路線、學習資源方面的問題,這篇文章就來詳細說一說。借此希望給那些正在學習,或是想學習 Go 語言的朋友一些幫助。


        需要說明的是,按照我推薦的來學習,完全掌握 Go 相關開發(fā)知識,并且找到 Go 開發(fā)的工作應該是問題不大的,當然具體能達到什么樣的程度,得看個人了。


        提醒一下,文中提到的所有書籍,都可以在公眾號后臺回復相應的關鍵字獲?。?span style="background-color: rgb(255, 218, 81);">算法、操作系統(tǒng)、網(wǎng)絡、數(shù)據(jù)庫、Go、微服務,按需自取。





        一、基礎知識


        無論你學習什么編程語言,這些基礎知識是通用的,并且它們很重要,所以我覺得還是拿出來說一說,只不過現(xiàn)在網(wǎng)上這方面的知識已經(jīng)很多了,知乎、公眾號搜一下,就能夠找到很多相關的內(nèi)容,所以我這里就簡單說下。


        數(shù)據(jù)結構和算法


        推薦入門書籍《大話數(shù)據(jù)結構》、《啊哈!算法》、《漫畫算法·小灰的算法之旅》、《算法圖解》,進階的話可以看看《算法導論》、《算法》。



        如果覺得書籍比較枯燥,網(wǎng)上也有一些付費專欄,可以訂閱來看看。注意一點,如果不是搞算法方向的話,掌握最基礎常用的內(nèi)容就可以了,沒必要去死磕太多高級的數(shù)據(jù)結構和算法。


        鞏固算法知識的話,可以上 Leetcode 刷幾個題。當然,這塊內(nèi)容還有一個作用,那就是應付面試,大家都懂的。我的 Github 上面有一個項目,可以幫助學習學習和鞏固算法,地址:


        https://github.com/roseduan/algo-learn


        項目使用 Go、Java、Python 實現(xiàn)了常用的數(shù)據(jù)結構和算法,以及相關 Leetcode 題目。


        操作系統(tǒng)


        這塊的內(nèi)容,簡單看下就好,了解下基礎的概念,在工作的前幾年里,你可能不太會用得上太多操作系統(tǒng)上面的知識,但相信我,這是職業(yè)生涯進階必過的坎,遲早會遇上的。


        學習資源推薦:書籍《操作系統(tǒng)概念》、《深入理解計算機系統(tǒng)》、《現(xiàn)代操

        作系統(tǒng)》。

        書籍看不下去的,很能理解你(因為我也看不下去),這里推薦一個學堂在線的操作系統(tǒng)課程:


        https://www.xuetangx.com/course/THU08091000267/1516699


        是清華大學的公開課程,概念比較基礎容易理解,想要進階深入的話,人家也有配套的操作系統(tǒng)實驗可以跟著做。


        計算機網(wǎng)絡


        基礎書籍:《圖解 HTTP》、《圖解 TCP_IP》、《網(wǎng)絡是怎樣連接的》。

        進階書籍:《計算機網(wǎng)絡·自頂向下方法》、《TCP_IP 詳解》。



        同樣,知道你看不下去書籍,在中國大學 MOOC 上面有一些名校的公開的網(wǎng)絡課程,都是比較基礎的,可以在上面找找,有挺多質(zhì)量不錯的。


        數(shù)據(jù)庫


        數(shù)據(jù)庫的重要性就不用說了,必備的知識。


        基礎的 sql 掌握起來應該沒啥難度,自己多練練就行了,推薦書籍《SQL 必知必會》、《MySQL 必知必會》。


        想要進階,可以多了解下數(shù)據(jù)庫一些基本設計概念,推薦書籍《數(shù)據(jù)庫系統(tǒng)概念》,對于 mysql 進階,例如 B+ 樹存儲模型、事務、索引、鎖等,推薦書籍《高性能 mysql》、《MySQL 技術內(nèi)幕:InnoDB 存儲引擎》。


        二、Go 語言基礎


        說到正題 Go 語言了,如果你是 Go 語言零基礎,或者剛入門不久,都可以順著我的這個路徑學習鞏固一下。


        推薦入門書籍《Go 語言學習筆記》、《Go 語言趣學指南》、《Head First Go》,跟著書籍多敲敲代碼,入門沒有太大的問題。

        還有我私藏的一些在線學習 Go 語言的資料:


        1. Go By Example 中文版 : https://gobyexample-cn.github.io,使用代碼示例來學習 Go 語言。


        2. Go 面試題 : http://www.topgoer.cn/docs/gomianshiti/mianshiti,也是使用代碼示例來講解 Go,用來準備面試也是很好的。


        3. 無聞大佬的在線入門指南 : https://github.com/unknwon/the-way-to-go_ZH_CN


        4. 跟著單元測試學習 Go : https://github.com/quii/learn-go-with-tests,有中文版。


        學完基礎,知道你可能想試試手,這里推薦幾個初級的項目,隨意挑選自己感興趣的一兩個即可。


        1. starcharts : https://github.com/caarlos0/starcharts,項目的功能是生成 Github 上面的項目的 star 趨勢圖,核心代碼不多,用來練手很合適。


        2. gorched : https://github.com/zladovan/gorched,使用 Go 寫的一個小游戲。


        3. pacgo : https://github.com/danicat/pacgo,也是使用 Go 寫的一個小游戲,每一步都有詳細的描述和代碼實現(xiàn)。


        4. wechat-go : https://github.com/songtianyi/wechat-go,微信 web 版 API 的 Go 實現(xiàn),模擬微信網(wǎng)頁版的登錄/聯(lián)系人/消息收發(fā)等功能。


        三、Go 語言進階


        掌握了基礎的 Go 相關語法知識之后,可能需要更加深入的理解 Go 語言,對于初學者來說,可以挑選自己感興趣的部分看看,想一下子全部吃透不太可能。


        注意這塊內(nèi)容是比較獨立的,可隨時查看,不會妨礙你學習后面的內(nèi)容。

        這里推薦書籍《Go 程序設計語言》(號稱 Go 圣經(jīng))、《Go 專家編程》、《Go 語言高級編程》。

        在線的學習資料:


        1.《Go 語言設計與實現(xiàn)》: https://draveness.me/golang。


        2.《Go 語言高級編程》: https://chai2010.cn/advanced-go-programming-book。


        想要進一步鞏固所學知識,這里推薦幾個比較進階的項目給你:


        1. rosedb : https://github.com/roseduan/rosedb,不要臉的推薦一下自己的項目,一個用 Go 實現(xiàn)的簡易高效的 k-v 存儲引擎。


        2. gochat : https://github.com/LockGit/gochat,一個 Go 語言實現(xiàn)的輕量級 im 系統(tǒng),對網(wǎng)絡方面熟悉或者感興趣的可以看看。


        3. 7DaysGolang : https://github.com/geektutu/7days-golang,7 天使用 Go 從零實現(xiàn) web 框架、分布式緩存、ORM 框架,、RPC 框架,代碼量不多,但是質(zhì)量挺不錯的。


        四、Web 開發(fā)


        基礎知識掌握之后,可以上手做一些 web 應用,進一步了解更多的 Go 語言相關框架以及生產(chǎn)環(huán)境中的常用中間件,推薦書籍《Go Web 編程》。

        可以學習下 web 框架 Gin、beego:兩個框架都比較的流行,選擇其中一個其實就可以了,推薦 Gin。官方文檔都有中文,照著 demo 敲一下,了解下怎么處理 HTTP 請求的。


        最好掌握一下比較流行的 ORM 框架 Gorm,有官方中文文檔,照著 demo 敲一下基本上兩天就能掌握了,后面遇到不會的再來查。


        基本上看官方文檔就可以了,不用去找其他的書籍,沒有比官方文章更正宗的資料了。


        推薦幾個使用 Go 構建的基礎 web 項目:


        1. gin-vue-admin : https://github.com/flipped-aurora/gin-vue-admin,使用 Gin 框架構建的后臺管理系統(tǒng)。


        2. ferry : https://github.com/lanyulei/ferry,基于 Gin + Vue + Element UI 前后端分離的工單系統(tǒng)。


        3. go-admin : https://github.com/go-admin-team/go-admin,Gin + Vue + Element UI 的前后端分離權限管理系統(tǒng)。


        對于 web 項目的學習,可能有同學覺得項目太龐雜,根本不知道怎么下手。我想建議的是,可以在本地把項目跑起來,然后斷點調(diào)試一個 HTTP 請求的整體流程,搞懂了一個接口,其他的大同小異。


        五、微服務


        目前 Go 在微服務中的應用也比較廣泛,但說實話,微服務是一個太龐大的話題,你不可能把每一個核心的問題都能夠搞清楚,而且也沒條件,或許只能在公司的具體的微服務生產(chǎn)環(huán)境中,才能夠?qū)ο嚓P的概念有更加深刻的體會。


        推薦一本微服務概述的基礎書籍《微服務設計》、《微服務架構設計模式》,可以幫助你理解微服務的建模、集成、測試、部署和監(jiān)控的一些基礎知識。

        推薦 Go 語言的微服務框架  GoKit、GoMicro、go-zero、kratos,可以隨便選擇一個,理解其基本的用法、設計等等。其中 go-zero 和 kratos 是國內(nèi)開源的,因此都有比較詳細的中文文檔。


        這里推薦一個在線學習的資料:


        https://ewanvalentine.io/microservices-in-golang-part-1


        手把手實現(xiàn)一個簡單的 Go 微服務項目,你可以通過這個項目來學習微服務的相關知識,并且有中文版。




        最后,再提醒一下,文中提到的所有書籍,都可以在公眾號roseduan寫字的地方后臺回復相應的關鍵字獲?。骸舅惴?、操作系統(tǒng)、網(wǎng)絡、數(shù)據(jù)庫、Go、微服務】,按需自取。




        題圖:from wallheaven.cc


        瀏覽 102
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            亚洲AV综合AV三区加勒比 | 欧美大奶子 | 影音先锋男人资源网站 | 国产精品偷拍自拍 | 激情婷婷五月 | 777大香蕉 | 好吊淫视频 | 91欧美性爱| 美女黄频免费网站 | 嫩嫩的一线天XXX馒头 |