太白上仙本身在帶團隊方面有着很是充足的經驗,由本上仙直接招到公司的小白 coder 中,在 18 年的時候就出了兩個阿里的 P8 啦!git
而跟着本上仙作過項目成長爲 P8 已經有 7 我的了!惟一惋惜的是目前尚未人升到 P9 。github
本上仙自覺得在帶小白方面特別有經驗,可以迅速挖掘每一個人的天賦,讓你們在儘量短的時間內提升本身的實力。面試
本上仙最近把這一套經驗提煉成了一套理論,但願可以對每一個技術人員的職業道路上都有一些幫助!算法
若是問技術人員最核心的能力是什麼?數據庫
我相信每一個大廠的 Leader 都會作出一樣的回答—— trouble shooting 的能力。網絡
這種能力是真正能拉開人差距的能力,由於技術不斷在創新,沒有人能見過全部問題,咱們每一個技術人員都是在不斷學習不斷成長的。多線程
可是在招聘和評定職級的時候,咱們很難這麼快的去評定一我的解決問題的能力到底有多強。數據庫設計
因此咱們須要瞭解每一個同窗的過往項目,考察他在過往項目中學到的點,從而經過一些能迅速評定的能力,來判斷各位同窗 trouble shooting 的能力。分佈式
技術界的老前輩們,總結出有三種公認的能夠迅速斷定,且不會有太大出入的能力。工具
即基於項目的基礎、業務設計、算法。
因此,到目前爲止,公司進行技術評定,無論是面試筆試,必定是從三個方面來考察求職者的技術能力。
根據不一樣崗位對這三方面的需求差別,企業又把技術崗分爲兩大類,分別是開發崗位和算法崗位。其中開發崗位的考覈點是着重於基礎和一個好的業務設計,對算法的要求並不高;
而算法崗位的考覈點則是着重於算法,其次是基礎,對業務設計方面要求不高。
由於算法是須要必定的天賦,同時也是這三方面中比較難的,因此在同一職級(資深技術專家如下)中,算法崗位的薪資是高於開發崗位的。
在企業的考覈中,無論是算法崗位仍是開發崗位,求職者想要應聘成功拿到高薪,就要有與相應職級要求的項目經驗而匹配的三方面的能力。
每個打工人的動力毫無疑問,就是錢。談錢不傷感情!
在絕大多數狀況下,每一個打工人的薪酬就表明了他的技術職級。
本上仙把 100 萬如下年薪如下的技術分紅了 8 個層級,爲了方便你們理解,本上仙都寫到黑板上了,以下圖所示:
這個表格基本上 L 就是 P 的意思,也就是好比你處於 L7 這一級,你在阿里系就是 P7。
對於大廠來講,招人都是 L4 以上,一線大廠都是 L5 起。
最右側的要求年齡是指你要在要求的年齡達到這個水平纔好入職大廠,固然對於晚熟的同窗來講很傷,不過招聘是個 case by case 的事情,凡事都要結合實際狀況來看。
固然,本上仙但願看了這篇文章的同窗都早熟,披荊斬棘橫推各路 offer !
你們根據表格知道本身所處的技術職級以後,若是想要打怪升級,就要仔細研究本上仙說過的這句話了:「基於項目的基礎、業務設計、算法。」
每一個讀者確定都是聰明絕頂(並無說你們禿頂),這句話已經講得很顯然了,首先就是根據本身的升級目標選項目。
在選項目這個事上,若是已經工做的,我建議你們的項目基於工做內容去選,就算最簡單的工做也能問出很深很深很深的問題!
每個人的經歷不一樣,他的能力必然有很大的差別,並非別人會什麼你就要會什麼,關鍵要看能不能理解透徹。
對於 L7 及以上的同窗,我相信你們這點理解已經很透徹了!
對於還沒工做的同窗來講,我幫年輕的同窗們選了四個渠道,本上仙把這四個渠道按照優劣不等排序分爲上上策、上策、中策和下策。
爲了方便同窗們閱讀,我也寫到黑板上了!
那有沒有十全十美的辦法呢?將來可能有,好比本上仙在思考能不能讓AI代替這些大廠的 L8 以上的來教你們,買個軟件總比僱個 L8 便宜得多啊!
惋惜了,這個方案本上仙還在研究呢!由於照着目前已有的 AI 算法,理論上就基本搞不出來,須要先把算法更進一步纔有但願!
選定了項目以後,如何 up 本身三方面的能力呢?
其本質就是要了解你的這些項目裏用到的相關基礎、業務設計和算法。
具體的提高辦法,我也給同窗們畫了個腦圖!
若是你須要這張腦圖,請麻煩關注個人公衆號:「太白上仙」,回覆:「 666 」便可。
本上仙可沒虧待任何一個級別的讀者啊!給每個能力點都寫了 7 種辦法,從 0 基礎的學生到 P12 的科學家都能找到本身該如何提高哦!
好吧,請 P12 的諸位科學家輕拍!小仙路過而已。
好了,在講了這麼多以後,本上仙給你們在上面基礎上抽象一下個人這套核心理論——帥氣太白打怪升級論!
由於你們都是碼農,我也很少說了,直接寫了點僞代碼,你們一看便知!
對於帶團隊來講,這套辦法屢試不爽!絕對可以快速幫助本身團隊的隊員成長!
比起純粹靠天靠臉吃飯,這套理論能讓你至少學習進步的時候有個方向!
而不是無頭蒼蠅同樣逮住什麼學什麼,而後學了很快就忘記了,幹了幾年還升不了職級拿不到高薪 offer !
畢竟理論太抽象,咱們舉個簡單例子來實際看看。
固然,完整的例子是很長的,小仙功力有限,沒辦法寫上幾萬字,因此只能挑一些重點來說。
好比對於 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須要明白如何設計一個文件系統包括其功能、格式,計算機是如何組織分配、保護和檢索文件的。
這套理論是天衣無縫的麼?固然不是!
這個難就難在選項目是個很難的點,要針對每一個人選出正確的項目,他才能迅速成長。
單純的基礎性學習是毫無心義的,由於咱們但願團隊裏的成員靠着這套方法論最終得到的是trouble shooting 的能力,
在使用這套理論的時候,須要特別注意,必定要在選了合適的項目以後本身動手去作起來,這個就是鍛鍊你trouble shooting 能力的時候了。
這個就比如你去工地挖個坑(咱們都是碼農麼,拿工地打比方很恰當,哈哈哈),光看是沒有用的。
由於有的人確定說你要先理解每粒砂石的摩擦係數,而後經過微積分計算剷土的力道;也有人說須要先學會鐵鈷鎳在不一樣溫度下的化學分子特性,從而更好地使用鐵鍬這一工具。
衆說紛紜,不如本身動手鏟兩下!鏟了你才知道你須要的是什麼,不然在這個網絡信息爆炸的年代,說什麼的人都有。
而本上仙的這套方法論,是但願同窗們經過項目鍛鍊trouble shooting 的能力,從而得到相關基礎、業務設計、算法的能力。
若是喜歡太白上仙,能夠關注 【太白上仙】 公衆號
也能夠關注太白上仙的github