這次去深圳的時候,抽空參加了一個深圳本地的線下沙龍,去的時候這個活動已經進行開始,剛坐下來不久,就聽一個新程式設計師問一個老程式設計師的一個問題,引起了大家的熱議。
年輕的程式設計師的問題是這樣子的,他說現在新技術更新太頻繁了,過個兩三年就會出現一個新的框架,比如早些年非常流行的 Struts 說淘汰就淘汰了,好不容易掌握了 Spring ,現在又出現了 Spring Boot、Spring Cloud 框架,根本就學不過來。
那麼作為一名老程式設計師和一名新程式設計師在面對新技術的時候是站在一個水平線上的,但明顯剛入行的程式設計師精力更旺盛一些,學習熱情又強,那麼老程式設計師的優勢體現在哪裡呢?
感受了一下,這不就是新程式設計師要把老程式設計師拍到沙灘上嗎?
估計前端開發人員看到這個問題硬是要吐出一口老血了,前端框架的更替那叫一個火箭速度呀。今天還在 AngularJS ,明天突然就出現個 React,當 React 快要掌握的時候,市場上 Vue 大火,並且經常出現最新版本不能往後相容,坑X呀。要想精通所有框架,對每個程式設計師來講,那真的是臣妾做不到呀。
那如果真按照新程式設計師說的那樣,那老程式設計師不是早被淘汰了,為什麼市面上老程式設計師的工資比新程式設計師高好幾倍呢?難道 Hr 都是腦癱。
其實呢不是這樣子的。
就拿招聘來講吧,我們經常看到的面試條件會寫到2/3年以上開發經驗,某某行業背景的優先。就說這面試總要求多年以上的開發經驗,這到底是要求什麼樣的能力?可以很負責任的講,這種能力就是解決問題的能力。
老程式解決問題的能力比新程式設計師要強 N 倍。新程式設計師開發過程中,突然遇到一個問題卡住了,有可能就這個問題就卡一兩天,當他拿著這個問題去問老程式設計師的時候,可能老程式設計師就抽了一眼,說怎樣怎樣試一把,問題就解決了。
老程式設計師的學習能力其實是更強的,因為前面有了積累很容易掌握類似的技術,比如當你精通了 Java ,我相信經過很少時間的刻意學習,你就會學會 Python 開發。語言和技術只是一種工具,它的本質是為了解決問題,當你腦中有了解決方案後,其實僅僅剩下語法實現了而已。
至於具體怎麼實現用什麼語言,那只是一種技巧而已。
特別是生產出現問題的時候,一個牛逼的程式設計師要頂 N 個程式設計師,解決生產問題的程式設計師要面對,超強壓力,超複雜情況,快速定位問題的能力,這些能力都不是一朝一夕能夠積累出來的,都是從一個坑一個坑裡面爬出來後所積累的。
程式設計師畢竟還是一個比較燒腦的行業,沒有幾年的積累,很難成為一個老練成熟的開發工程師。
這裡說的是普遍努力的老程式設計師,不排除有些老程式設計師,工作了一天,重複了三年的這種情況,也不包括很多剛畢業就很凶猛的年輕程式設計師們,這裡講的都是廣大的普通程式設計師的對比。
我對程式設計師們的一些建議:
在剛畢業三年內的時候,優先全面提高自己的技術,快速響應完成工作的能力。積極主動的工作,每次工作完成後主動彙報,向領導要求更具有挑戰一些的工作,工作擔子越重,成長越快。
畢業三年後的程式設計師最好確定一個行業方向沉澱下來,一個優秀的架構師,必須同時精通業務和技術,所有行業內才經常會有業務架構和系統架構兩個說法,只有同時精通通業務和技術,才能貼合公司業務設計出高效、可擴充套件、穩定的、適合公司發展的技術架構。
畢業三年左右的程式設計師重點是,找一個自己喜歡的行業沉澱下來,找一塊自己喜歡的技術,挖精挖透。
畢業六年後,如果你畢業六年中到處換行業,並且技術上沒有太多的沉澱,那六年後你的競爭力會越來越小。剛畢業的六年內,也就是大多數人的30歲以內,你的職場生涯是急劇上升的,前幾年每年工資翻一倍都是很正常的現象。
但是到了6年後,也就是30歲以後,由於各種原因你的精力肯定被有所分散,同時熬夜需要恢復的時間也越來越長,如果沒有建立起自己的競爭力,那麼未來職場生涯並不好走。
所以不論是老程式設計師還是新程式設計師都有自己的優勢,年輕程式設計師有時間有精力,老程式設計師有行業和技術積累。有了老程式的指引,新程式的成長會更快速;沒有新成員的加入,哪有中國 IT人的明天。
最後,歡迎新程式設計師們把我們拍在沙灘上,這樣中國 IT 才更有希望。