【寫在前面】:
筆者是一個 80 后 IT 技術(shù)狗,做過很多技術(shù)崗位, C 語言開發(fā)、 php 網(wǎng)站后端開發(fā)、軟件測試工程師、外企的 helpdesk ,最近 6 、 7 年一直專注在運維領(lǐng)域。
可以說筆者一直在摸著石頭過河,沒有明確的職業(yè)生涯規(guī)劃害苦了我自己,最近幾年、長吁短嘆、后悔錯過的那些時光,著實讓我痛苦……
這種糾結(jié)的煎熬也是我寫這篇文章的初衷,希望每一個即將步入、或者已經(jīng)入坑的 IT 技術(shù)人員,能早些思考、做好規(guī)劃,不要再重復類似我這樣的經(jīng)歷。
【上限思考】:
決定你事業(yè)方面能達到什么高度的關(guān)鍵、是你所掌握的技術(shù)最終所能達到的上限!
你是否具備將現(xiàn)在使用的技術(shù)完全掌控、甚至推陳出新的潛力呢?
比如,你現(xiàn)在利用 JavaScript 進行開發(fā),那么,你是否有信心由現(xiàn)在的使用某種框架、發(fā)展到以后去制定某種框架呢?
當然,這個只針對 IT 技術(shù)狗這一特殊群體,技術(shù)管理方向不在討論范圍內(nèi)。
【從 0 到 1】:
這個概念出自“彼得-蒂爾”的一本著名商業(yè)管理類書籍,雖然書中原本是講創(chuàng)業(yè)、企業(yè)經(jīng)營和發(fā)展的,不過筆者看過后卻對困擾我多年的職業(yè)生涯規(guī)劃問題恍然大悟。
簡單說,從 0 到 1 意味著創(chuàng)造、創(chuàng)新、極致的改進,帶入到職業(yè)規(guī)劃這一個話題,我的理解是:“是否能夠真正掌控一門技術(shù),具備改進、重新創(chuàng)造一個全新技術(shù)的能力”
以 nginx 這樣一個 IT 相關(guān)技術(shù)領(lǐng)域人員都應該聽說過的技術(shù)為例,聊聊筆者眼中的、技術(shù)學習的“從 0 到 1”
對 nginx 的掌握分成幾個階段呢?筆者按照自己的理解,簡單分享下:
(1)初級階段:初窺門徑,就是按照網(wǎng)上的文檔、照貓畫虎的把服務(wù)開通、讓你的業(yè)務(wù)跑起來
(2)中級階段:小有所成,具備了一定的使用經(jīng)驗,能夠在更復雜的場景下提供服務(wù)
(3)高級階段:高深莫測,已經(jīng)開始探索技術(shù)本身的實現(xiàn)原理,能夠在原有技術(shù)的基礎(chǔ)上進行隨心所欲的改進、擴展
(4)從 0 到 1 的階段:高山仰止,完全領(lǐng)悟了某一技術(shù)領(lǐng)域,并能夠按照自己的需求設(shè)計出全新的技術(shù)細節(jié)
【從 1 到 n】:
原著中對這個概念的解釋是:“通過復制現(xiàn)有的模式、殺入市場做競爭型企業(yè),相當于重復造輪子,屬于水平進步”。
帶入到職業(yè)規(guī)劃中,筆者認為所謂的 從 1 到 n ,就是上面 nginx 例子中的初級、中級階段,也就是說,你只具備使用技術(shù)的能力,不理解技術(shù)的原理、無法對這門技術(shù)進行特殊場景下的優(yōu)化、調(diào)整或擴展(二次開發(fā))。
如果只保持在這個技術(shù)水平階段,你也許只能做企業(yè)中的一個螺絲釘,永遠無法真正創(chuàng)造出屬于自己的輝煌,再多的經(jīng)驗,也都只是“水平進步”。
以運維行業(yè)為例,筆者見到的情況是,中級階段的運維人員最多,高級階段的工作很多是由研發(fā)人員負責的,至于從 0 到 1這個階段,只是傳說了……
【注】:高級階段大多由研發(fā)團隊負責,主要是因為目前國內(nèi)的運維人員普遍缺乏編程基礎(chǔ),進行這個階段的學習成本太高,很多人都放棄了。但掌握技術(shù)的原理更有利于運維進行技術(shù)排障、提高工作效率。而二次開發(fā)的工作,更適合了解業(yè)務(wù)邏輯的運維人員進行。
【不要急于求成】:
筆者總結(jié)自己的職業(yè)生涯,認為自己犯過兩個痛心疾首的錯誤,分享給大家,希望朋友們能引以為戒!
(1)不要盲目選擇一個看起來入門更容易的領(lǐng)域
在選擇前,一定要問問自己,你真的了解這個領(lǐng)域么?
別讓入門容易成為你選擇的理由,因為入門更容易,往往意味著“學精”更困難,要提前做好這個準備,不要掉以輕心。
況且,不管什么工作,最終想要做好,都會經(jīng)歷很多困難,如果這么看,入門是否容易、其實并不是最重要的。
(2)你內(nèi)心里,真正喜歡的是哪個領(lǐng)域
你的喜好不會決定你未來達到的高度,但它可以讓你未來的成長更加輕松。
如果可以選擇,希望你能選擇一門你真心喜歡的技術(shù)領(lǐng)域,因為在未來很長的時間里,你可能都需要每天去面對它。
如果你別無選擇,那么就嘗試讓自己愛上你不得不選擇的領(lǐng)域。
【分享下筆者的經(jīng)歷】:
筆者職業(yè)生涯早期一直是在開發(fā)領(lǐng)域掙扎求生,但是因為基礎(chǔ)知識并不扎實,工作做的磕磕絆絆,一直不是很順利,最后感覺運維的門檻比較低,下狠心轉(zhuǎn)到了這個領(lǐng)域。
當時抱著的信念就是“寧為雞頭不為鳳尾”,在開發(fā)領(lǐng)域總覺得自己基礎(chǔ)不好,進步不大,到了這個技術(shù)門檻比較低的領(lǐng)域,總能混的不錯吧?
起初確實如筆者想象的,那時候的國內(nèi)運維領(lǐng)域還不太成規(guī)模,對于這個職位的規(guī)劃大家都沒什么經(jīng)驗,筆者這樣有一定開發(fā)基礎(chǔ)的人很受歡迎,終于體驗了一把“搶手”的感覺。并且在工作本身方面,也沒有做開發(fā)時那么多技術(shù)壁壘,感覺學習新的技術(shù)沒太大難度,無非就是配置不同的應用軟件、檢查下日志錯誤、調(diào)整下Linux 系統(tǒng)幾個優(yōu)化參數(shù)。
在那段自我感覺良好的日子里,筆者跳槽了不少次,每次都能獲得不菲的工資提升,在不同的環(huán)境下學到了很多不同的技術(shù),甚至有點飄飄然的膨脹。
直到大概 13 年左右的一次面試,終于筆者受到當頭暴擊,意識到自己的淺薄……
當時是去一家國內(nèi)頂級的大公司面試,那幾年順風順水的職業(yè)生涯讓筆者萌生了進入巨頭企業(yè)的想法。在自我介紹的時候筆者滔滔不絕的介紹這些年服務(wù)過的不同領(lǐng)域、使用過的諸多技術(shù),試圖證明自己的價值,但面試官聽完后問了幾個問題,讓筆者冷汗直流。
“你了解 keepalived 使用的 vrrp 協(xié)議么?”
“能講解下 nginx reload 的處理流程么?”
“熟悉 squid 的內(nèi)存管理機制么?”
“講講 ext3 文件系統(tǒng)的數(shù)據(jù)塊尋址”
不會、不會、全都不會……當時大概問了 4、5 個問題,其中有一兩個筆者只是模糊的聽過,剩下的完全沒有了解過……
渾渾噩噩的低落了一個多月,起初筆者也私下瘋狂吐槽,只是做個運維好不好,用的到那些知識嘛?完全不接地氣、顯唄自己水平高啊……
但后來待自己心平氣和下來后,終于明白了一點,以前的自己太過于膚淺,一直只是“水平進步”,完全沒有正視自己所從事的“運維”這個職業(yè),有些弱智的認為會用主流應用軟件、具備處理故障的經(jīng)驗,就是一個好的運維……
就像上文總結(jié)的,筆者過于輕率就進入了一個自己不熟悉的領(lǐng)域、并且簡單的認為這個領(lǐng)域門檻很低,能夠輕易獲得成功。從來沒有真正思考過,自己的職業(yè)生涯要怎么規(guī)劃、知識體系要怎么建立,筆者的失敗,是自然規(guī)律。
【結(jié)束語】:
筆者當前也只是處在“從 1 到 n”的水平進步階段,因為前些年的膚淺發(fā)展,錯過了知識儲備的黃金時段,浪費了好多時間,現(xiàn)在也只能盡力彌補,希望能夠亡羊補牢。
每每想起這些,真的是痛徹心扉,因此愈發(fā)的希望有緣看到這篇文章的朋友們,一定要慎重的規(guī)劃自己的職業(yè)生涯,堅持、正確的建立自己的知識體系,不要滿足于“水平提高”,一定要嘗試“從 0 到 1”的“垂直提高”!
下次有機會筆者會將自己曾經(jīng)在建立知識體系時候犯過的錯誤也分享出來,希望能給朋友們做個反面典型。