重新理解 Go 培訓和 Go 人才
昨天很多人都看到我們 GoCN 社群和慕課網聯合釋出的《Go 高階程式設計師實戰營》培訓課程,看到內容的第一眼大家都很驚訝,為什麼這個培訓內容這麼接地氣,當然很多人紛紛私信我幾個問題:
- 謝大,你怎麼創業方向變了嗎?打算搞培訓了?
- 謝大,這個課程是你設計的嗎?是你們公司內部的 Go 培訓嗎?
- 謝大,這個課程看了內容很深,我入門才兩年適合嗎?
- 謝大,我已經報名了課程,雖然我會動手去做去實現一些自己感興趣的東西,但沒有個方向,也不知道應該準備什麼,有些地方無從下手?
- ......
一過會兒功夫就積累了一大堆的問題,我雖然都一一回復了,但是很多人可能還是不明白我為什麼在這個時間點這個階段出這樣的實戰培訓營。那麼今天就和大家一起聊聊我做這個培訓的初心。
初心回顧
時間大概回到過年前後,那個時候我們公司因為業務快速的發展 (我創業還是在做工業網際網路方向),團隊繼續擴張,特別是 Go 方面的後端人才,我在那個階段天天泡在 boss 直聘、拉鉤招聘裡面,和差不多上百位候選人溝通交流,前前後後看了不下幾百封簡歷,線下也面試了好多 Gopher,大多數 Gopher 基本上處於這樣的狀態:
- PHP 工作經驗兩三年,利用業餘時間學習過 Go;面試 gopher 崗位時問他工作技能,結果發現他只會一些小工具的開發。
- 業務能力很雜,什麼都做過,聽上去像是全端人才;但是一些深入的問題就不行,例如 Go 如何進行效能監控、埋點之類的。
- 寫了三年 Go,但是都在區塊鏈行業,都在基於 Hyperledger 開發,其他的東西沒有開發過。
- 剛大學畢業,大學裡面基本上都是學習的 Java,聽說 Go 是未來,所以想找一家做 Go 的公司。完全沒有相關技術基礎打底。
可能很多人會反問:我學習能力強,我進來可以學習,快速入手的。但是對於這些處在業務快速發展期的公司,大家缺少的是能夠入職就可以幫助解決問題的人。 特別是像我們做的數字工廠業務,已經深入到工廠的生產運營中,如果出一個 bug,就可能導致一批的工廠停工,這個風險是非常大的。 當然退一萬步來講,我們其實可以做企業內部培訓,但是時間週期非常不確定,培訓一個新人能夠上手可能至少需要三個月起,而且還不一定能夠培養出來 (之前嘗試過失敗告終),這個成本對於大多數的公司是承受不起的。
我帶著招聘的困惑找到了同在創業的 AfterShip CTO 洪小軍,諮詢他在招聘過程中遇到的困惑,發現他那邊也是遇到我類似的情況,缺人但是又沒有很好的人才。當然這個裡面最主要的原因還是 Go 的人才嚴重缺失。最近這幾年雲原生的快速發展,基本上各大企業都招募 Go,而且還在不斷的擴大 Go 的應用領域。
HackerEarth 釋出了 2020 年開發者調查報告,有來自 76 個國家/地區的 16,000 多位開發者參與其中。調查顯示,Go 是今年最受歡迎的程式語言。無論是學生(29%)還是專業人士(32%),都將 Go 語言列在 “最想學習的語言” 第一位。
我後來又問了一圈招聘 gopher 的朋友:PingCAP 劉奇、滴滴 來煒、探探 任賀、合闊 如鴻等,他們也是遇到了我一樣的困境,想找有實戰經驗的人,找不到;自己培養,成本又很高。就算想要培養,也基本上靠運氣,遇到好的可能培養起來了,但大多數都是以失敗告終。
這時也是我第一次在腦子裡面冒出來: GoCN 社群能不能幫我們這些缺少 Go 實戰人才的企業進行前期培養?
Gopher 困惑
做了快十年的 Go 社群,我自己也從一個 Gopher 變成了創業者,從開發者到招聘者,這個過程中也遇到了很多迷茫的 Gopher,他們經常會遇到這樣的問題:
"我寫了兩年 Go 了,但是感覺只會 CRUD,沒有機會遇到高效能高併發,總覺得能完成任務就差不多了,但是過了幾年後發現,自己的技術水平和社群裡面其他同學的水平相差越來越遠。像我這樣的情況,應該如何提升自我?"
"我畢業後進了大廠轉的 go,學得半桶水,獨立做了專案,現在是在創業公司,也算是主力開發,但是我底子薄,好些個東西有想學的心,但感覺還是要比別人學習起來吃力一點;但我會動手去做去實現一些自己感興趣的東西,但沒有個方向,也不知道應該準備什麼,有些地方無從下手"
"我看到雲原生風生水起,我之前一直都在用 PHP 寫邏輯,特別想去寫中介軟體,特別想從 PHP 轉到 Go,但是沒有公司願意收我,我現在怎麼辦?"
"我看到很多崗位都在招聘 Go,從各項調研報告也顯示 Go 是未來,我想轉崗做 Go 開發,但是目前只是利用業餘時間寫一寫小工具,不知道如何深入學習"
.....
在社群裡面諸如此類的一堆問題,其實也是讓我作為社群負責人很著急,如何引導 Go 社群的人真正能夠得到提升,找到自己想要的工作。
調研謀劃
對於那些想找到 Go 工作的同學會感覺自己提升困難,找不到好公司;對於想找到 Gopher 的公司,又感覺很多 Gopher 同學實戰經驗少。所以我一直在思考是不是需要幫助雙方去解決這個 GAP 問題。所以我在 Go 社群發起了一個《你期待怎麼樣的 Go 培訓》的調研,收到了 600 多份的調研結果,這裡也和大家一起分享一下資料。
學習 Go 多少年了?
從什麼語言轉過來的?
你期待哪方面的培訓內容?
你期待怎麼樣的講師?
從調研的資料表明,很多 Gopher 都是在 0-3 年之內的比例,從 PHP、Python 轉過來的 Gopher 比較多,從大家投票的培訓內容來看相對比較平均一些,說明我列出來關心的那些點大家都很關注,Go 深度、Go 實戰、Go 工程三大塊,期待的講師來看大家希望講師是大廠專家兼開源庫作者。
重新理解 Go 培訓
技術人一聽到培訓可能想到的是早期的那種給你刷簡歷的培訓,我自己確實也面試到過很多這些培訓機構出來的人,特別是早期 IT 剛發展起來,需要大量人才的階段,很多人高中畢業去刷一個培訓機構,然後就來應聘工程師崗位,這種讓人很反感培訓出來的人才。
我在 Apple 的時候內部非常注重培訓,全年都有各種型別的培訓,我參加了很多內部的培訓,讓我對於培訓也有了重新認識,這些培訓真正的能夠讓自己在很多知識點成長起來,但是為什麼內訓和外訓差別那麼大呢?我自己總結出來就是,Apple 內訓的講師非常注重實戰,這個是和外面遇到的培訓最大的區別,就拿我參加的一個談判的課程培訓,三天的培訓,都是在不斷的實戰,講師不斷的丟擲來很多場景,讓我們扮演不同的角色,然後不斷的在實戰中掌握技巧和方法論。
所以對於培訓我有了自己更深入的理解,我覺得主要有四方面的深度理解:
- 培訓內容,這一部門主要看講師的實戰能力,能夠通過不同場景的內容展現出來之前的實戰經驗,讓學員能夠沉浸在場景中學習成長,講師通過講解場景應用和教導動手能力相結合的方式培養起來學員的實戰能力。
- 學習氛圍,一個人的學習經常是遇到問題不知道怎麼解決,就放棄了;或者是學習之後不知道怎麼應用,沒有了任何方向,放棄了;所以我們需要一個很好的學習氛圍,首先這個就需要一個有經驗的講師帶領,然後需要一個不錯的學習委員的角色帶領大家應該怎麼學習,怎麼應用等。所以這個非常考驗培訓背後的服務能力和指導能力,這個也是傳統培訓機構最缺失的部分,大多數就是填鴨式的培訓,我只管輸出,你們只管吃,但是真正好的培訓是需要培養氣氛,帶領同學前進,我覺得助教非常需要,然後需要從程式設計師的角度給大家去做 code review,講解案例等等,需要用程式設計師的方式來輔導指導背後的原理。
- 影響力,首先通過學習建立了一個小班級的小群體,這個培訓就是建立戰友情的很好的地方,我依稀記得當時我剛開始學習 Go 教的第一個班級《戰狼班級》,目前基本上這些同學相互幫忙相互推薦。第二我們學習培訓之後總希望自己掌握了這把屠龍寶刀之後能夠有用武之地,所以我也幫助通過 GoCN 社群給大家建立起來社群影響力,而建立社群影響力有多重途徑,輸出文章內容,參與開源專案,這樣不僅你學習到的知識可以輸出,也幫助自己建立起來了社群影響力。
- 企業需求,培訓的內容是企業期望的人才的技能圖譜來進行設計,這樣培訓完人才就可以對接企業,而且對自己是一種提升,對企業是內訓的延伸,縮短內部培訓的時間,實現人才和企業之間的一座橋樑。
策劃出版
基於我前期的調研和對於培訓的深度理解,我開始設計這樣一個人才培訓的規劃,經過了反反覆覆的講師刷選,我找到了 Go 領域裡面的頂級專家,Go 語言的 contributor 曹春暉老師來擔任這一次的講師,曹大來自一線大廠,在 PHP 轉 Go、Go 基礎架構、Go 語言深度等各方面都有非常深厚的經驗,這個正是我們培訓急需的專家,所以找到曹大,我們一拍即合就開始了這一次的 Go 高階工程師的設計。
大咖講師
實戰內容
三大實戰設計
瞭解更多關於這門課的資訊。https://class.imooc.com/sale/golive
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- Python和GO語言之間的區別是什麼?Python培訓PythonGo
- go語言開發培訓班哪裡好Go
- 有Go語言實戰培訓班嗎?go語言開發環境搭建Go開發環境
- 實戰區塊鏈技術培訓之Go語言區塊鏈Go
- go培訓課程都學什麼?go語言框架學習:xorm框架知識介紹Go框架ORM
- Go記憶體分配和GC的理解Go記憶體GC
- 讓Go Module重新Respect Go Vendor系列博文3篇Go
- 理解 go mod init 命令Go
- 深入理解 Go MapGo
- 深入理解Go ContextGoContext
- Go程式語言前景怎麼樣?參加培訓好就業嗎Go就業
- Go語言重新開始,Go Modules 的前世今生與基本使用Go
- Go 1.17.3 和 Go 1.16.10 釋出Go
- 深入理解 Go 中的 new() 和 make() 函式Go函式
- 實時重新載入go應用Go
- 使用 go 理解 Lock-FreeGo
- 理解 Go Channels[精品長文]Go
- 紅帽和NIIT在中國攜手推出線上培訓課程,加速開源人才培養
- 【GO】MAC安裝和測試GoGoMac
- 助力網安人才培養|綠盟科技CISP培訓走進勝利油田
- Go和TinyGoGo
- GO Modules的理解和遇到的問題解決方法Go
- 理解 Go 中的協程(Goroutine)Go
- [go語言]-深入理解singleflightGo
- go中Tag的理解與使用Go
- Go GPM的理解 與 runtime包Go
- Go 語言之父帶你重新認識字串、位元組、rune 和字元Go字串字元
- 如何正確理解Python培訓?有必要嗎?Python
- 快速理解Go陣列和切片的內部實現原理Go陣列
- go map 和 sliceGo
- go byte和runeGo
- Go 裡面的 ^ 和 &^Go
- 統計Go, Go, GoGo
- Go 切片詳解(理解是關鍵)Go
- NX建模和工程圖培訓
- Go 1.16 中關於 go get 和 go install 你需要注意的地方Go
- go培訓課程都學什麼?xorm框架學習系列(二):xorm結構體對映規則和表操作GoORM框架結構體
- 最乾貨 Go 進階講義搶先披露——毛老師培訓課堂開課了!Go