5分鐘學Go 基礎01:初識 Go 的第一印象是薪水可觀
阿新 • • 發佈:2021-02-18
> 本文首發於公眾號「5分鐘學Go」,一個讓你每次花 5 分鐘就能掌握一個技能點的公眾號。目前在博主連更 5 分鐘學Go系列,大家可以關注下,第一時間掌握Go技能。如果想要加群交流,可以在公眾號後臺回覆「加群」,回覆「gogogo」,還有博主精心整理的一份Go語言從入門、進階到高階的學習寶典。歡迎你的關注。
最近幾年,隨著雲端計算、區塊鏈等技術的發展,有一門語言逐漸成為大家熱衷討論的物件,成為了繼 Python 之後的另一塊香餑餑,那就是 Go 語言。
其實如果要追溯歷史的話,Go 語言誕生於 Google,從 2007 年便開始設計,並於 2009 年 11 月 10 日正式釋出第一版,此後便開始在 Google 內部使用。
正如 Python 藉助 AI 的東風大火一樣,Go 語言大範圍的使用和普及也是藉助了雲端計算、區塊鏈等技術的東風,特別是雲端計算,以 Google 開源的 Kubernetes 為代表,Go 逐漸成為了雲端計算領域的第一首選語言,目前還沒有競爭對手。
國內最早全面使用 Go 語言的公司要屬七牛雲了,其創始人許式偉說過一句話:“Go 語言是網際網路時代的 C 語言”。可想它如今的地位是不言而喻的。
下圖是 2020 StackOverflow 的調查,左邊是最流行的語言排行榜,右邊是最熱門的語言。流行看的是歷史地位和應用程度,而熱門更多看的是近來的關注程度。
| 最流行的語言 | 最熱門的語言 |
| :---------------------: | :---------------------: |
|![](https://gitee.com/bakari/mypicture/raw/master/2021-2-16/1613468659952-gopop.png)|![](https://gitee.com/bakari/mypicture/raw/master/2021-2-16/1613468701286-gotop.png)|
可以看到,Go 語言應用範圍具有一定的侷限性,所以流行程度並不高,但關注程度是相對較高的,特別是對比前幾年的資料你會發現,它是一直增長的。
接下來再來看下大家比較關心的一個問題:哪種語言的薪資較高?畢竟程式設計師這個行業,迴歸到現實,都是“面對薪資程式設計”。如下圖所示,左邊是 2019 年的資料,右邊是 2020 年的資料。
| 2019程式語言薪水排名 | 2020程式語言薪水排名 |
| :------------------------------: | :------------------------------: |
|![](https://gitee.com/bakari/mypicture/raw/master/2021-2-16/1613468756011-gosalaries2019.png)|![](https://gitee.com/bakari/mypicture/raw/master/2021-2-16/1613468756012-gosalaries2020.png)|
可以看到,Go 語言的薪水排名都穩居前三甲。所以,綜合來看,Go 語言是今後最值得學的一門語言。
那 Go 語言到底有哪些優勢呢?為何能成為雲端計算領域的第一大語言?下面簡單說說,更多內容在後面的文章中我們會逐一展開。
首先它是一種靜態、強一致型別、編譯型的系統級程式語言。這幾個關鍵字可能不那麼好理解,但是看完下面這幅圖相信你能理解個大概:
![](https://gitee.com/bakari/mypicture/raw/master/2021-2-16/1613468808216-langtype.jpg)
從型別來看,Go 語言和 Java 語言同處於第一象限,但它編譯型、系統級的特性又讓它具備 C/C++ 語言的高效能的特性。
其次一個比較重要的優勢是 Go 天然支援高併發,小白也能輕鬆寫出高併發程式碼。
最後值得一提的是 Go 語言的語法簡單,學習曲線平坦,開發效率可以和 Python 媲美。
此外,還有很多的優秀特性,後面會帶大家逐一領略(大家可以關注下公眾號,每天第一時間收到推送,花 5 分鐘就可以掌握一個 Go 技能點)。
看到這裡大家一定很好奇,有哪些開源專案是使用 Go 語言開發的?
Go 生態系統有眾多明星開源軟體:Docker、Kubernetes、Rancher、istio、Drone、Lantern、Hyperledger、Caddy、Prometheus、InfluxDB、etcd、CockroachDB、TiDB、Gogs ...
(這裡有一份開源的關於 Go 優秀的軟體、庫和框架:[Awesome Go](https://github.com/avelino/awesome-go "Awesome Go"))
極客時間的郝林在他的專欄裡也整理過一張使用 Go 語言開發的開源專案大圖,非常全。
![](https://static001.geekbang.org/resource/image/29/f8/29c794731d9fb43f9fd37cc4d91994f8.png)
OK,今天就到這裡,本文是 5 分鐘學 Go 語言的第一篇,先讓大家對 Go 有個大概的印象,後面會展開更多的內容,沒關注的朋友可以關注下,一起抱團學習。就像一句話說的:
> 學習 Go 語言,最好的時間是 10 年前,其次是現在。
![](https://gitee.com/bakari/mypicture/raw/master/2021-2-17/1613573093482-gobottomno