2022 年這樣學(xué)習(xí) Go
一門語言的入門方式,每個人可能不一樣,但基礎(chǔ)的知識都是必須掌握的。這里整理了一個 Go 語言 6 步入門法,希望對你有幫助。
Go 是一門開源語言,目前被許多大公司使用,例如 Uber,Dropbox,Netflix,IBM 和 Twitter,國內(nèi)的騰訊、字節(jié)跳動、阿里等大廠。
對于所有級別的求職者來說,Go 是一個不錯的選擇。但是如何開始?你需要了解什么?今天,我們將討論學(xué)習(xí) Go 和建立可靠的產(chǎn)品組合的最佳途徑。
本教程包括:
Go 開發(fā)人員 步驟 1:了解 Go 的基礎(chǔ)知識 步驟 2:Master Go 庫和其他工具 第 3 步:學(xué)習(xí)使用 Go 進(jìn)行測試 步驟 4:了解 Go 模式 步驟 5:開始建立您的投資組合 步驟 6:練習(xí) Go 編碼面試題 接下來要學(xué)什么
Go 開發(fā)人員
Go 是 Google 在 2009 年開發(fā)的一種靜態(tài)類型的,編譯型編程語言。該語言結(jié)合了 C++ 的效率和 Python 的可讀性。
Go 開發(fā)人員使用 Go 語言來構(gòu)建網(wǎng)站和軟件產(chǎn)品。Go 開發(fā)人員的一般職責(zé)包括使用 Go 并使用其全套工具和框架。大多數(shù) Go 開發(fā)人員也進(jìn)行測試和調(diào)試。
Go 開發(fā)人員的大多數(shù)職位要求也需要多種其他技能,最常見的是:
腳本編寫經(jīng)驗(yàn)(Shell / PERL) 使用設(shè)計(jì)模式進(jìn)行應(yīng)用程序設(shè)計(jì)的經(jīng)驗(yàn) JAVASCRIPT,SOAP,REST Web 服務(wù),或微服務(wù) 使用 Git 的經(jīng)驗(yàn) DevOps 實(shí)踐知識
Go 的入門門檻相對較低。這是一種易于學(xué)習(xí)的語言,并附帶詳細(xì)的技術(shù)文檔。對于具有 C 語言經(jīng)驗(yàn)的人來說,轉(zhuǎn)到 Go 相對容易。因此,如果學(xué)習(xí) Go 很容易,那么你實(shí)際上如何獲得 Go 語言開發(fā)的工作?讓我們分解一下。

步驟 1:了解 Go 的基礎(chǔ)知識
要成為 Go 開發(fā)人員,你需要對語言和語法有深入的了解。你可以先安裝語言并自學(xué),也可以學(xué)習(xí)在線課程。學(xué)習(xí) Go 的良好途徑如下所示:
關(guān)鍵字,標(biāo)識符 運(yùn)算符,類型,函數(shù)和常量 指針,結(jié)構(gòu),方法 map,數(shù)組,切片 CLI interface 錯誤處理 Goroutine,channel,緩沖 channel defer、panic Go 設(shè)計(jì)模式
你的學(xué)習(xí)路徑將在很大程度上取決于你的背景。如果你是編程的新手,那么 Go 是一個不錯的選擇。它易于學(xué)習(xí)并且借鑒其他流行的語言,例如 Python 和 C++。對于新手,最好從關(guān)鍵字和標(biāo)識符之類的基礎(chǔ)知識開始。然后,你可以使用數(shù)據(jù)類型,運(yùn)算符和字符串來夯實(shí)基礎(chǔ)。
如果你已經(jīng)有一定的編程經(jīng)驗(yàn),則建議從 Go 的獨(dú)特特性開始,從頭開始學(xué)習(xí) Go。Go 建立在不同的模型上,并且對面向?qū)ο蟮木幊痰奶幚矸绞揭灿兴煌?/p>
Go 的目標(biāo)是使用最少的關(guān)鍵字來減少類型輸入和復(fù)雜性,因此相比 Java 等其他語言 Go 需要更少的代碼??梢栽跊]有符號表的情況下解析關(guān)鍵字,因?yàn)槠湔Z法為 LALR(1)。Go 的行為就像是一種混合的命令式語言,但在構(gòu)建時考慮了并發(fā)性。以下是 Go 的一些獨(dú)特功能:
沒有函數(shù)和操作符重載 沒有隱式轉(zhuǎn)換 沒有 class 或類型的繼承 靜態(tài)/強(qiáng)類型 沒有動態(tài)代碼加載或動態(tài)庫 沒有 assertions 或不可變變量
package?main
import?"fmt"
func?main()?{
????fmt.Printf("Hello?World")
}
步驟 2:標(biāo)準(zhǔn)庫和其他工具
一旦掌握了該語言的基礎(chǔ)知識,就應(yīng)該使用它的庫和工具。大多數(shù)公司都希望你具有以下經(jīng)驗(yàn):
Go 依賴管理工具 語義版本控制 腳本和存儲庫 Go 標(biāo)準(zhǔn)庫 SQL 基礎(chǔ) Git 基本認(rèn)證 HTTP/HTTPS Web 框架和路由器 關(guān)系數(shù)據(jù)庫(MySQL/PostgreSQL)
如果你已經(jīng)有一些編程經(jīng)驗(yàn),那么你可能已經(jīng)在以上工具中擁有了其中一些經(jīng)驗(yàn)。如果沒有,不要驚慌!在學(xué)習(xí)如何使用 Go 和相關(guān)技術(shù)進(jìn)行構(gòu)建時,你將學(xué)習(xí)其中的大多數(shù)技能。
要學(xué)習(xí)的最重要的內(nèi)容是框架,Go 庫和數(shù)據(jù)庫。其他技能可以在工作中學(xué)習(xí)。
在框架方面,建議從 Web 框架 Echo,Beego,Gin,F(xiàn)iber、Revel 和 Chi 等開始。
其他庫,最受歡迎的有 Go Kit,GORM,Gen 和 CLI。使用優(yōu)質(zhì)庫和包將使 Go 的使用變得更加容易。每個都有自己獨(dú)特的功能,因此最好選擇一個與你的目標(biāo)相符的功能。
在數(shù)據(jù)庫方面,擁有一些有關(guān)關(guān)系數(shù)據(jù)庫(例如PostgreSQL或MySQL)的經(jīng)驗(yàn)很重要。除此之外,日志框架的知識可能會很有用,比如 Zap。
步驟 3:學(xué)習(xí)使用 Go 進(jìn)行測試
測試是大多數(shù)公司都會尋找的一項(xiàng)重要技能。軟件測試是我們檢查實(shí)際軟件產(chǎn)品是否符合要求并在分發(fā)后實(shí)際正常運(yùn)行的方式。
作為 Go 開發(fā)人員,你將為現(xiàn)實(shí)世界構(gòu)建產(chǎn)品,因此你需要測試產(chǎn)品的可用性和可靠性。這包括:
單元測試 集成測試 行為測試 端到端測試
對于新手來說,單元測試無疑是最重要的。Go 的標(biāo)準(zhǔn)庫中有一個內(nèi)置包 testing。但是,Go 偏向于極簡主義,因此你可能需要其他工具來進(jìn)行更強(qiáng)大的測試,例如流行的框架 Ginkgo 和 GoCheck。Ginkgo 還可以用于行為測試和集成測試。
步驟 4:了解 Go 模式
大多數(shù)公司希望看到你是了解 Go 設(shè)計(jì)模式的。在軟件設(shè)計(jì)中針對一些常見問題,可以用設(shè)計(jì)模式來解決,它是可重復(fù)、通用的解決方案。不同的設(shè)計(jì)模式有助于劃分業(yè)務(wù)邏輯或定義結(jié)構(gòu)。
結(jié)構(gòu)性 創(chuàng)建性 行為性 并發(fā) 穩(wěn)定
最重要的是創(chuàng)建性的(例如構(gòu)建器,工廠,單例),行為性的(例如迭代器,觀察者,命令)和結(jié)構(gòu)性的(例如適配器,橋接器,裝飾器)。
如果你已經(jīng)是程序員,那么你可能熟悉設(shè)計(jì)模式,并可以在 Go 上下文中開始學(xué)習(xí)它們。如果你不熟悉編程,最好的學(xué)習(xí)方法是開始使用它們進(jìn)行編碼。借用一些示例實(shí)現(xiàn)并圍繞它們進(jìn)行構(gòu)建。
步驟 5:開始建立你的技能組合
一旦你完成了這些步驟,就可以開始為你的技能組合構(gòu)建東西了。這樣公司就會看到你具有使用 Golang 的實(shí)際經(jīng)驗(yàn)。此外,事實(shí)證明,掌握一種語言的最佳方法是用它來構(gòu)建功能強(qiáng)大的產(chǎn)品,因此,構(gòu)建的越多,你就會學(xué)到越多。
建立技能組合包括:
在 Go 上完成在線課程 為開源 Go 項(xiàng)目做貢獻(xiàn) 從頭開始構(gòu)建 Go 項(xiàng)目 在現(xiàn)有項(xiàng)目中實(shí)施 Go 使用 Go 編碼經(jīng)典算法問題 完成相關(guān)技術(shù)(如 SQL)的課程
你實(shí)際上可以構(gòu)建任何想將自己的技能付諸實(shí)踐的東西,例如列出滿足個人需求,演示網(wǎng)站,難題,游戲和編碼挑戰(zhàn)的清單。
專注于 GitHub 上的開源貢獻(xiàn)。這表明你可以構(gòu)建真實(shí)的項(xiàng)目,并且知道如何使用流行的版本控制系統(tǒng)。
步驟 6:練習(xí) Go 編碼面試題
一旦有了上面的儲備,就可以開始練習(xí) Go 面試問題。這將幫助你準(zhǔn)備面試,并更多地了解你剛剛學(xué)到的語言。編碼面試問題并不是一成不變的,因?yàn)樗鼈兺浅橄蟮?,但它們確實(shí)可以改善你的代碼并幫助你在壓力下工作。
當(dāng) Go 開發(fā)人員面試你時,你將能順心應(yīng)手的回答,因此盡早進(jìn)行練習(xí)很有必要!它還將幫助你發(fā)現(xiàn)你的知識差距。
一些常見的問題包括:
什么是 goroutine?你如何停止它? 如何在運(yùn)行時檢查變量類型? 如何在不打印的情況下格式化字符串? 如何在 Go 中連接字符串? 如何在 Go 中初始化結(jié)構(gòu)? 。。。
接下來要學(xué)什么
恭喜成功!學(xué)完以上內(nèi)容,你應(yīng)該已經(jīng)是一位 Go 開發(fā)人員了。但還有很多事情要做,比如深入 Go 實(shí)現(xiàn)等,學(xué)無止境!
原文鏈接:https://dev.to/educative/how-to-become-a-golang-developer-6-step-career-guide-476n
我是 polarisxu,北大碩士畢業(yè),曾在 360 等知名互聯(lián)網(wǎng)公司工作,10多年技術(shù)研發(fā)與架構(gòu)經(jīng)驗(yàn)!2012 年接觸 Go 語言并創(chuàng)建了 Go 語言中文網(wǎng)!著有《Go語言編程之旅》、開源圖書《Go語言標(biāo)準(zhǔn)庫》等。
堅(jiān)持輸出技術(shù)(包括 Go、Rust 等技術(shù))、職場心得和創(chuàng)業(yè)感悟!歡迎關(guān)注「polarisxu」一起成長!也歡迎加我微信好友交流:gopherstudio
