程序人生:高水平程序員是怎樣練成的?
靠做增刪改查業(yè)務(wù)提升經(jīng)驗的程序員,收入只能勉強達到中等水平,而且到了30歲就會被畢業(yè)生所頂替。
要達到水平很高的程序員,第一要找能提供優(yōu)質(zhì)實踐機會的大廠,第二要在諸如高并發(fā)或機器學(xué)習(xí)的項目里多解決實際問題,第三還要不斷跳槽,不斷地找更優(yōu)質(zhì)的平臺和更優(yōu)質(zhì)的項目機會。
接下來說下成為高水平程序員的流程,順便提些中間可能會遇到的發(fā)展誤區(qū)。

在校生,或者是培訓(xùn)班的程序員,哪怕學(xué)得再多,學(xué)習(xí)階段接觸的項目看上去再高大上,只要沒有項目實踐機會,這些程序員基本沒有價值,因為學(xué)習(xí)項目和實際做的項目差距很大,而且如果學(xué)成以后有三個月的時間不去軟件公司,那么學(xué)到的技能很快就會忘記。所以這個階段的程序員應(yīng)當(dāng)盡快找打一份工作,當(dāng)然如果直接找到大廠工作最好,如果沒有,別顧工資,也別看公司大小,盡快找到一份能接觸到真實開發(fā)項目的工作機會。
在工作中接觸到編程技術(shù)后,你就會發(fā)現(xiàn)之前學(xué)的技術(shù)很多是用不到的,或者精心學(xué)的語法或框架甚至項目里不是這樣做的。這和學(xué)習(xí)無關(guān),哪怕當(dāng)時學(xué)得再好也會遇到這類問題,畢竟學(xué)習(xí)升級到實踐總會有個過程。
這時,項目需要的技術(shù)才是你真正要學(xué)的。我這里不給出詳細的技術(shù),因為對沒有實踐機會的程序員來說,這沒有意義,而對已經(jīng)開始做項目的程序員來說,這方面的體會一定比我還深,也不需要我說。在這個階段,甚至通過一周做項目提升的程度要比學(xué)習(xí)階段一個月提升的還要多。

但如果程序員僅僅停留于此,可能會非常熟悉本公司的業(yè)務(wù),憑此能在本公司混得風(fēng)生水起,但技術(shù)上可能僅僅停留在增刪改查。由于在大多數(shù)小公司里,未必能接觸到高并發(fā)分布式,或大數(shù)據(jù),或機器學(xué)習(xí)或深度學(xué)習(xí)之類的高級技能,所以如果在小公司呆就了,可能接觸到的也就是增刪改查的技術(shù)。
這種技術(shù)不值錢,任何一個畢業(yè)生頂多通過半年就能掌握。所以此類程序員社會上會有很多,能力上頂多成為初級程序員,哪怕能力是在初級程序員階段的天花板,但如果僅僅會增刪改查,也只能是叫初級程序員。
我見過太多的初級程序員,在30歲之后,只能在多個小公司之間輾轉(zhuǎn),工資也就維持中等水平,或者工資比畢業(yè)生還低。為了能從初級程序員提升到高級程序員,辦法只有一個,進大廠,或者進獨角獸企業(yè)之類的好一點的平臺,因為大多數(shù)小公司只能提供增刪改查的項目實踐機會。
怎么進大廠:背面試題,或者按大廠的面試機會,好好準備簡歷上的項目,同時準備大廠面試時需要的項目說辭和技術(shù)說辭。這個階段是很難的,因為平時只做增刪改查業(yè)務(wù)的程序員,很難在項目中挖掘出分布式組件等技術(shù)亮點,而且大廠面試官眼睛很毒,只要通過三言兩語就能甄別出求職者是真有值錢技術(shù)的項目經(jīng)驗還是只會說。

說句題外話,進大廠要早。雖然現(xiàn)在有很多所謂的面試秘籍,或者面試項目,其實大廠面試官通過提問,一定能甄別出哪些沒相關(guān)項目經(jīng)驗,但靠所謂面試技巧發(fā)揮的程序員。
這點大家別有僥幸心理,本人在大廠做了若干年技術(shù)面試官,哪怕求職者之前背了太多的題,只要求職者沒在項目里用過技術(shù),這一問就能問出。但比如求職者比較年輕,比如25歲到27歲,面試官會在看穿的基礎(chǔ)上,感覺求職者有一定潛力,所以面試也可能讓過。但如果求職者過了30歲,或者年級更大,那么如果僅具備增刪改查技能,可能就未必能進大廠了。
進了大廠,或者接觸到諸如分布式,集群或者深度學(xué)習(xí)等技術(shù)的項目后,程序員會發(fā)現(xiàn)一些高級技能的進階途徑。所謂實踐出真知,只有具備相關(guān)技術(shù)的實踐經(jīng)驗,程序員才能進階到高級。
如果程序員在項目里多上點心,多解決些實際問題,或者多接觸些搭建集群等運維的活,可能進步起來會更快。
到了這個階段,程序員自己根本就不用主動進步,甚至能被驅(qū)動進步。這話怎么說?在平時開始時會接觸到大量值錢技術(shù)沒,在解決日常問題時,也可能會接觸到值錢或者是底層源碼,這樣一來二去就有經(jīng)驗了。也就是說,有值錢項目的實踐能力外帶多通過解決問題積累經(jīng)驗,程序員能升級到架構(gòu)師,這從技術(shù)上可能就非常強了。

量化一下吧,100個程序員里可能最后能達到架構(gòu)師水平的,未必會超過5人,我在上海,達到架構(gòu)師水平的程序員,一年70萬年薪都不算多。
后面再要怎么進步呢?其實就是更好地變現(xiàn)技術(shù),提升技術(shù)變現(xiàn)成金錢的能力。比如可以找個小公司做技術(shù)頭頭,或者找個風(fēng)頭行業(yè)的公司,或者干脆找個創(chuàng)業(yè)公司。 這個階段,提升就不能單靠編程水平了,而是要靠提升解決實際問題的能力。
最后做個總結(jié):
1 程序員的編程水平不是單靠訓(xùn)練出來的,而是靠做項目積累出來的。
2 程序員做的項目,或者說程序員所在的公司也有三六九等之分,要提升能力先要找個更好的平臺或包含值錢技術(shù)的項目。
3 單純靠學(xué)習(xí)提升編程水平很不現(xiàn)實,提升編程水平其實更靠準備面試的能力,面試發(fā)揮的能力和跳槽找好公司的能力。
4 程序員畢竟也是吃青春飯的,如果不提升,可能會舒服一陣,但如果不升級到資深開發(fā)甚至架構(gòu)師,程序員在30歲或者35歲以后,會很難。
寫在最后:對于準備成為一名優(yōu)秀程序員的朋友,如果你想更好的提升你的編程核心能力(內(nèi)功),讓自己成為一個具有真材實料的厲害的程序員,不妨從現(xiàn)在開始!C/C++,永不過時的編程語言~
微信公眾號:C語言編程學(xué)習(xí)基地
整理分享(多年學(xué)習(xí)的源碼、項目實戰(zhàn)視頻、項目筆記,基礎(chǔ)入門教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長比自己琢磨更快哦!
