太白上仙自己在帶團隊方面有著非常充足的經驗,由本上仙直接招到公司的小白 coder 中,在 18 年的時候就出了兩個阿里的 P8 啦!
而跟著本上仙做過專案成長為 P8 已經有 7 個人了!唯一可惜的是目前還沒有人升到 P9 。
本上仙自以為在帶小白方面特別有經驗,能夠迅速挖掘每個人的天賦,讓大家在儘可能短的時間內提高自己的實力。
本上仙最近把這一套經驗提煉成了一套理論,希望能夠對每個技術人員的職業道路上都有一些幫助!
1、核心能力
如果問技術人員最核心的能力是什麼?
我相信每個大廠的 Leader 都會做出同樣的回答—— trouble shooting 的能力。
這種能力是真正能拉開人差距的能力,因為技術不斷在創新,沒有人能見過所有問題,我們每個技術人員都是在不斷學習不斷成長的。
但是在招聘和評定職級的時候,我們很難這麼快的去評定一個人解決問題的能力到底有多強。
所以我們需要了解每個同學的過往專案,考察他在過往專案中學到的點,從而通過一些能迅速評定的能力,來判斷各位同學 trouble shooting 的能力。
2、考核剖析
技術界的老前輩們,總結出有三種公認的可以迅速判定,且不會有太大出入的能力。
即基於專案的基礎、業務設計、演算法。
所以,到目前為止,公司進行技術評定,不管是面試筆試,一定是從三個方面來考察求職者的技術能力。
根據不同崗位對這三方面的需求差異,企業又把技術崗分為兩大類,分別是開發崗位和演算法崗位。其中開發崗位的考核點是著重於基礎和一個好的業務設計,對演算法的要求並不高;
而演算法崗位的考核點則是著重於演算法,其次是基礎,對業務設計方面要求不高。
因為演算法是需要一定的天賦,同時也是這三方面中比較難的,所以在同一職級(資深技術專家以下)中,演算法崗位的薪資是高於開發崗位的。
在企業的考核中,不管是演算法崗位還是開發崗位,求職者想要應聘成功拿到高薪,就要有與相應職級要求的專案經驗而匹配的三方面的能力。
3、職級剖析
每一個打工人的動力毫無疑問,就是錢。談錢不傷感情!
在絕大多數情況下,每個打工人的薪酬就代表了他的技術職級。
本上仙把 100 萬以下年薪以下的技術分成了 8 個層級,為了方便大家理解,本上仙都寫到黑板上了,如下圖所示:
這個表格基本上 L 就是 P 的意思,也就是比如你處於 L7 這一級,你在阿里系就是 P7。
對於大廠來說,招人都是 L4 以上,一線大廠都是 L5 起。
最右側的要求年齡是指你要在要求的年齡達到這個水平才好入職大廠,當然對於晚熟的同學來說很傷,不過招聘是個 case by case 的事情,凡事都要結合實際情況來看。
當然,本上仙希望看了這篇文章的同學都早熟,披荊斬棘橫推各路 offer !
4、選定專案
大家根據表格知道自己所處的技術職級之後,如果想要打怪升級,就要仔細研究本上仙說過的這句話了:“基於專案的基礎、業務設計、演算法。”
每個讀者肯定都是聰明絕頂(並沒有說大家禿頂),這句話已經講得很顯然了,首先就是根據自己的升級目標選專案。
在選專案這個事上,如果已經工作的,我建議大家的專案基於工作內容去選,就算最簡單的工作也能問出很深很深很深的問題!
每一個人的經歷不同,他的能力必然有很大的差異,並不是別人會什麼你就要會什麼,關鍵要看能不能理解透徹。
對於 L7 及以上的同學,我相信大家這點理解已經很透徹了!
對於還沒工作的同學來說,我幫年輕的同學們選了四個渠道,本上仙把這四個渠道按照優劣不等排序分為上上策、上策、中策和下策。
為了方便同學們閱讀,我也寫到黑板上了!
那有沒有十全十美的辦法呢?未來可能有,比如本上仙在思考能不能讓AI代替這些大廠的 L8 以上的來教大家,買個軟體總比僱個 L8 便宜得多啊!
可惜了,這個方案本上仙還在研究呢!因為照著目前已有的 AI 演算法,理論上就基本搞不出來,需要先把演算法更進一步才有希望!
5、能力 UP!
選定了專案之後,如何 up 自己三方面的能力呢?
其本質就是要了解你的這些專案裡用到的相關基礎、業務設計和演算法。
具體的提升辦法,我也給同學們畫了個腦圖!
如果你需要這張腦圖,請麻煩關注我的公眾號:“太白上仙”,回覆:“ 666 ”即可。
本上仙可沒虧待任何一個級別的讀者啊!給每一個能力點都寫了 7 種辦法,從 0 基礎的學生到 P12 的科學家都能找到自己該如何提升哦!
好吧,請 P12 的諸位科學家輕拍!小仙路過而已。
6、核心理論
好了,在講了這麼多之後,本上仙給大家在上面基礎上抽象一下我的這套核心理論——帥氣太白打怪升級論!
因為大家都是碼農,我也不多說了,直接寫了點虛擬碼,大家一看便知!
對於帶團隊來說,這套辦法屢試不爽!絕對能夠快速幫助自己團隊的隊員成長!
比起純粹靠天靠臉吃飯,這套理論能讓你至少學習進步的時候有個方向!
而不是無頭蒼蠅一樣逮住什麼學什麼,然後學了很快就忘記了,幹了幾年還升不了職級拿不到高薪 offer !
7、理論舉例
畢竟理論太抽象,我們舉個簡單例子來實際看看。
當然,完整的例子是很長的,小仙功力有限,沒辦法寫上幾萬字,所以只能挑一些重點來講。
比如對於 Java 初學者來說,其入職目標是 L2 ~ L6 級,但是學要從 L2 開始。
你一開始不要上來就學什麼多執行緒、RPC、RMI 這種,不經過任何實戰去一直學習,只能把自己立刻搞暈。
這種不實戰一直學習的辦法基本上是自己勸退自己!
如果想往演算法方向發展的,可以在學了基礎之後,立刻去 LeetCode 刷上一些題,至少你就有地方去寫程式碼了!計算機是個工科,你只有 coding 才能提高自己。
如果演算法沒天賦,想要做專案,就要先去理解介面和資料庫設計,先去把基本的 SQL 語句搞明白,搞個專案跑跑看。把你的專案搞通了,搞明白了覺得能達標 L3 了再去看多執行緒不遲!
其實很多初學者對技術的理解有極大的偏差,覺得用個 Runable ,new 個 Thread 就是會執行緒了,在 SQL語句都沒搞明白的情況下去看這個,最後只能是自己一團糟!
對於技術的學習我只想說四個字——先深後寬。
深度不夠,你就戳不中面試官的 G 點,面試官就覺得你很無聊,你就拿不了好的 offer !
關於深度的把握,我就拿存一個檔案這種簡單的業務來說,對於L2應該明白檔案寫入用哪個類哪個方法;對於L3就應該明白IO相關類的區別;
L4你要對檔案系統有個基本的概念;L5需要知道檔案系統和分散式KV、分散式檔案系統、資料庫優劣的選擇;
L6至少能夠對應用分散式KV可能出現的問題有所瞭解;而L7需要明白如何設計一個檔案系統包括其功能、格式,計算機是如何組織分配、保護和檢索檔案的。
8、實踐難點
這套理論是完美無缺的麼?當然不是!
這個難就難在選專案是個很難的點,要針對每個人選出正確的專案,他才能迅速成長。
單純的基礎性學習是毫無意義的,因為我們希望團隊裡的成員靠著這套方法論最終獲得的是trouble shooting 的能力,
在使用這套理論的時候,需要特別注意,一定要在選了合適的專案之後自己動手去做起來,這個就是鍛鍊你trouble shooting 能力的時候了。
這個就好比你去工地挖個坑(我們都是碼農麼,拿工地打比方很恰當,哈哈哈),光看是沒有用的。
因為有的人肯定說你要先理解每粒砂石的摩擦係數,然後通過微積分計算剷土的力道;也有人說需要先學會鐵鈷鎳在不同溫度下的化學分子特性,從而更好地使用鐵鍬這一工具。
眾說紛紜,不如自己動手鏟兩下!鏟了你才知道你需要的是什麼,否則在這個網路資訊爆炸的年代,說什麼的人都有。
而本上仙的這套方法論,是希望同學們通過專案鍛鍊trouble shooting 的能力,從而獲得相關基礎、業務設計、演算法的能力。
如果喜歡太白上仙,可以關注 【太白上仙】 公眾號
也可以關注太白上仙的github