這次想談一下對服務端研發崗新人培養的一些看法。
新人不光指應屆生,社招人員進入到新的業務,也算新人,但這次隻讨論應屆生的培養。
自己不是專業搞培養的,隻是帶過幾個新同學,是以有些看法也未必準确,歡迎大家積極回報、溝通。
1.重要性
新人對于團隊的發展極其重要。
- 新人是團隊人力的重要補充。隻有有充足的人力,才能更多、更快的實作需求,確定業務的快速發展,在網際網路戰場上争取到一席之地。
- 新人能夠帶來新的思想、新的技術。團隊成員長時間在一起,大家的思想、看法慢慢會趨同,新人的到來,能夠帶來新的想法,讓團隊通過另一個視角看待問題。
- 新人能夠讓團隊變得更強。人多才有慢工出細活的可能,新人培養的好,能夠推動團隊向更好的方向發展。
新人培養不會在短期内看到明顯效果,但這是擷取最終勝利不可或缺的一點。新人培養不是重要不緊急的事情,它是重要且緊急的事情。
很多團隊對新人培養的關注度不夠,導緻團隊後期青黃不接、戰鬥力下降。
要将新人培養好,必須付出心血。僅僅等新人自己成長,他們可能會走彎路,或者看不到方向,很多新人無法快速成長。新人培養如同種莊稼,細心照料會迎來豐收。
2.現狀
要做好新人培養,需要明白新人的一些現狀,正常情況下,新同學
- 可能存在重點知識和項目組不比對情況,如使用的程式設計語言不一緻、進入大資料組卻完全沒學習過大資料等
- 對公司提供的各種平台不了解
- 不知道各個組之間的關系,它們是如何協同的
- 對現有的業務代碼不了解,同時缺乏相關業務經驗,很難根據已有的經驗快速領悟業務
- 沒有做過一個真實的項目,不清楚要有哪些标準和流程
- 在學校學到很多理論知識,但并不知曉這些知識在實際業務中是如何使用的
從另一個角度看,這些并不是壞事,說明新人是一張白紙,沒有“技術債”,能夠更快的發展。尤其對很多大廠來說,招收标準較高,這些人能夠很快的領悟與成長。
3.培養
既然新人培養如此重要,那需要做好哪些事情呢?我認為有三個階段:小白階段、業務骨幹階段、技術上司階段。這三個階段以前在文章關于程式員職業發展的思考中談過,但更多的是從個人成長方面聊的,本次主要從培養方面來聊一下,主要談小白階段。
新人培養對導師也有很高的要求。
我覺得做導師有一個前提,就是要把握好度,核心在于做好指導,不要太關注于細節,不要管的過深過廣。論語中的“朋友數,斯疏矣”可以很好的解釋這個事情。要明白大家隻是同僚關系,學習、成長永遠是自己的事情。做好自己的本職工作即可。
另外導師要心裡有杆秤,能夠做出合适的規劃和正确的指導。
培養目标有兩個,一個是短期目标,讓新人能夠盡快的适應工作并發揮作用;一個長期目标,讓新人成長為更加優秀的人,能夠走得更長遠。
3.1工作
應屆生的現狀需要在本階段過渡完成,實作從學生到研發人員的轉變。這個階段主要是打基礎、模仿。
補全語言關
學校教授的程式設計語言知識比較基礎,或者與公司使用的語言不符,為了更快的進入狀态,首先需要補好語言關。
因為公司主要使用Go,就以Go為例講述。在這個階段,不建議閱讀源碼或中高階内容,先熟悉語言、用的順手即可,在使用過程中自然而然會有很多疑問,後期可以慢慢探索。
初級階段,過語言關,需要做好如下幾件事情
- 系統性學習語言基礎知識,如文法、特性等
- 推薦《Go語言程式設計》 許式偉 呂桂華 人民郵電出版社有限公司。這本書比較基礎,知識點全面,且淺顯易懂。
- 忌似懂非懂情況下開發,不但容易導緻線上問題,也不利于後期成長
- 熟悉lib庫
- 英文版:http://docscn.studygolang.com/pkg/
- 中文版:https://studygolang.com/pkgdoc
- lib庫是開發人員的武器庫,熟練掌握lib庫,在開發時能起到事半功倍的效果
- 閱讀Go架構并總結
- 可以看Gin架構,該架構為主流架構,很多大廠在此架構上自研。另外該架構代碼隻有1w多行,閱讀量不大
- 可以對架構進行梳理總結Gin源碼剖析,或者仿寫架構Gin架構簡潔版
- 通過架構閱讀,不但可以檢驗對語言的掌握程度,還能知曉架構内部邏輯、設計語言,對今後的發展大有裨益
- 不斷練習
- 程式設計語言一定要實際使用才會深刻,否則隻是紙上談兵
- 可以上力扣練習,除了能熟悉語言還能練習算法
- 可以自己編寫開源項目
- 業務上的小需求可以積極參與
平台介紹
對于公司提供的各種平台
- 導師需要按照8/2原則,找出最常用的平台,平台最常用的功能,給新人進行講解
- 新人需要學會基本使用,慢慢摸索其它平台、平台其它功能的使用
組織關系介紹
對于公司各個部門
- 導師需要對各個團隊進行介紹,使新人了解各個部門主要職責,包括不限于研發、業務、産品、資料團隊
- 導師需要告知各個團隊接口人
行業知識
研發人員不應隻是實作産品需求的木得感情的機器,研發人員一樣需要感覺業務。這樣才能在研發的時候發現問題、提出更優的意見,後期随着影響力提升,可以和産品、業務一起探讨行進的方向。
行業知識分大環境知識和項目組知識。項目組知識比較容易了解,就是本組負責的内容。大環境知識範圍比較廣泛,如電商,包含内容即多且雜。
不過小白階段不需要把大環境完全搞明白,心裡記住這個事情,随着經驗增加,慢慢拼湊完整。項目組知識則需要盡量搞明白,這是今後工作的基礎。
大環境知識
這方面需要能回答一些問題
- 這個行業的發展曆程是怎樣的
- 這個行業梯隊是怎樣的,頭部公司有哪些優勢和劣勢
- 這個行業核心名額有哪些
- 這個行業一般涉及哪些研發部門、組織架構是怎樣的
- 這個行業未來發展方向是怎樣的
- 這個行業常用技術、前沿技術有哪些
項目組知識
項目組裡的知識需要深刻的掌握。掌握必然是由淺入深,不能一蹴而就。随着時間遷移,不斷思考與實踐,對業務慢慢會有更深的了解。
可以從大尺度到小尺度了解業務
- 了解項目組負責哪些功能子產品
- 檢視架構圖
- 閱讀業務文檔
- 導師進行講解
- 判斷項目組核心流程是哪些
- 同上
- 掌握核心流程
- 檢視技術文檔
- 使用流程
- 閱讀接口代碼,畫流程圖
- 了解底層資料結構
- 解決、優化業務問題
- 追查、處理報警
- 解答使用者、營運問題
實戰
導師需要在新人入職2個星期後,帶新人做一個項目。實戰目标為新同學獲得一定項目能力。需要注意以下幾點
- 指導新人掌握項目基本情況,如該項目為優化項目,則需要讓新人熟悉現狀、現有架構等
- 帶領新人經曆整個流程,從需求對接到項目複盤,需要新人全程參與
- 對項目進行合理拆分,確定新人開發子產品難度适宜
- 關注新人代碼程式設計品質,并适時指導重構
- 項目過程中,鍛煉新人與協同部門的溝通能力,盡快的融入大集體
- 項目完成後,新人對項目進行總結
3.2成長
最終能夠飛得多高、走得多遠,和性格強相關。現在看真的是性格決定命運。
性格需要慢慢調整,但是一些習慣卻可以快速的培養。
培養習慣
習慣雖然不會立即作用于成長,但好的習慣會在今後慢慢展現,自己也會受到很多益處。對于服務端研發,有幾個習慣需要重點關注一下:
-
歸類能力
IT人做的就是資訊流,但資訊往往多且雜,就需要自己有很強的歸類能力,保證自己能夠及時準确找到所要資訊,如學習資料、工作資料、目錄結構等
-
學會深度思考
深度思考的鍛煉能夠讓人透過現象看本質,練習方法也很簡單,多問為什麼,然後擷取答案。
在這個過程中,不但會鍛煉自己解決問題的能力,還能将自己以前所學的知識映射到實際場景中。
-
持續學習
計算機行業是快速發展的行業,不斷有新的技術出現,而且随着自己接觸面變廣,也會不斷發現自己不了解的知識,是以需要不斷的學習
- 逛技術論壇、逛社群、加入高品質的技術群、看書、知識付費等
- 和同僚多讨論技術問題
- github上做開源項目
- 寫技術部落格
上司力
以前寫過評價自己的标準,雖然用來判斷将領是否合格,不過用來自查自己是否具有上司的素質也是可以的。智信仁勇嚴,各科60分表示初步能夠勝任上司崗位,在後續的過程中不斷提升各科分數,上司力不斷提升。
4.總結
新人培養無論對于導師還是新人,都是一項挑戰。
導師需要懂技術、懂業務、善于溝通、善于規劃,還需要有平常心。
新人需要克服困難,盡快熟悉陌生的環境,實作自己的價值,慢慢的成長。
廣告時間:位元組跳動|校園招聘!!!
最後
大家如果喜歡我的文章,可以關注我的公衆号(程式員麻辣燙)
我的個人部落格為:https://shidawuhen.github.io/
往期文章回顧:
- 設計模式
- 招聘
- 思考
- 存儲
- 算法系列
- 讀書筆記
- 小工具
- 架構
- 網絡
- Go語言