當人們問起如何開始學習一門新的程式語言時,我通常會告訴他們同樣的事情:從官方資源開始。它們由該語言的創建者編寫和維護,不僅反映了語法,還反映了其背後的哲學。
在這篇文章中,我將以學習 Go 作為一個例子,說明我們通常如何學習新事物。
對於 Go 來說,每個初學者都應該閱讀以下兩個官方指南:
- A Tour of Go – 一個互動式教程,引導您了解 Go 中的核心語法、類型和並發特性。它簡潔、實用,非常適合快速了解這門語言。
- Effective Go – 這一個超越了語法,專注於編寫慣用的、“Go-like” 的程式碼。它解釋了如何組織程式、處理錯誤以及有效地使用 Go 獨特的設計模式。
完成這兩者將為您打下堅實的基礎 — 不僅在於 Go 的運作方式,還在於 Go 程式設計師的思考方式。
從小處著手,建立事物
一旦你掌握了基礎知識,真正理解 Go 的最佳方法就是開始用它來建立東西。你不需要一個大型專案。事實上,小型、重點突出的專案可以幫助你更快地學習並保持動力。
以下是一些可以開始的想法:
- 一個簡單的網頁伺服器 – 使用 Go 內建的
net/http套件來處理請求和回應。你將學習到 Go 的標準函式庫如何鼓勵簡潔、極簡的設計。 - 一個任務排程器 – 練習使用 goroutine 和 channel 來執行背景作業或定時任務。這是獲得 Go 並發模型實務經驗的好方法。
- 一個命令列工具 – 建立一些實用的東西,例如檔案重新命名器、筆記工具或待辦事項清單管理器。Go 的 flag 和 os 套件使這變得非常容易。
- 一個 JSON API 客戶端 – 連接到公共 API,解碼 JSON 回應,並在終端機中漂亮地顯示它。
- 一個 URL 縮短器 – 在一個專案中結合網頁處理、資料儲存和並發。
這些專案中的每一個都會向你介紹 Go 的不同方面 — 網路、並發、檔案處理或資料結構 — 同時讓你獲得一些具體的成果來展示你的進度。
系統地閱讀和思考
一旦你能夠輕鬆地編寫小型程式,就值得花一些時間閱讀一本結構良好的書,該書從頭到尾涵蓋了 Go。
其中最好的書之一是 The Go Programming Language by Alan Donovan and Brian Kernighan。它由對程式語言設計和 Go 原則都有深刻理解的人撰寫。本書系統地引導你了解該語言,從基礎知識到進階概念,如反射、並發和套件組織。
這不是一本輕鬆的讀物,但如果你慢慢地閱讀並一起編碼,它會給你一個關於 Go 如何組合在一起的堅實的心理模型 — 這是單靠教程無法提供的。
與 Go 社群保持聯繫
為了保持你的技能敏銳,養成閱讀 The Go Blog 的習慣。它定期發布關於 Go 的新功能、效能改進和語言設計決策的見解。
當你覺得準備好了,開始瀏覽開源 Go 專案。閱讀好的程式碼是學習如何編寫好的程式碼的最快方法之一。以下是一些值得關注的經典專案:
- Kubernetes – 實際運作中的複雜、大規模 Go 程式碼
- Gin – 一個快速、優雅的網頁框架
- Prometheus – Go 用於監控和系統程式設計的一個很好的例子
最後,如果你想密切關注 Go 社群中的趨勢,Go Feed 是一個發現新鮮的部落格文章、教程和討論的好地方。
總結
學習 Go 並不是要匆忙地學習語法或記住模式。而是要理解簡單性 — 如何編寫清晰、快速且可維護的程式,並做好一件事。從官方指南開始,建立小東西,閱讀一兩本好書,並不斷探索。隨著時間的推移,你會發現 Go 的設計不僅會影響你編寫程式碼的方式,還會影響你思考軟體的方式。
No comment for this article.