那些編程水平很高的程序員是怎麼練成的?

    靠自學和培訓班,程序員頂多只能達到能勉強餬口的程度。靠做增刪改查業務提升經驗的程序員,收入只能勉強達到中等水平,而且到了30歲就會被畢業生所頂替。

    要達到水平很高的程序員,第一要找能提供優質實踐機會的大廠,第二要在諸如高併發或機器學習的項目裏多解決實際問題,第三還要不斷跳槽,不斷地找更優質的平臺和更優質的項目機會。

    接下來說下成爲高水平程序員的流程,順便提些中間可能會遇到的發展誤區。

    在校生,或者是培訓班的程序員,哪怕學得再多,學習階段接觸的項目看上去再高大上,只要沒有項目實踐機會,這些程序員基本沒有價值,因爲學習項目和實際做的項目差距很大,而且如果學成以後有三個月的時間不去軟件公司,那麼學到的技能很快就會忘記。所以這個階段的程序員應當儘快找打一份工作,當然如果直接找到大廠工作最好,如果沒有,別顧工資,也別看公司大小,儘快找到一份能接觸到真實開發項目的工作機會。

    在工作中接觸到編程技術後,你就會發現之前學的技術很多是用不到的,或者精心學的語法或框架甚至項目裏不是這樣做的。這和學習無關,哪怕當時學得再好也會遇到這類問題,畢竟學習升級到實踐總會有個過程。

    這時,項目需要的技術纔是你真正要學的。我這裏不給出詳細的技術,因爲對沒有實踐機會的程序員來說,這沒有意義,而對已經開始做項目的程序員來說,這方面的體會一定比我還深,也不需要我說。在這個階段,甚至通過一週做項目提升的程度要比學習階段一個月提升的還要多。

    但如果程序員僅僅停留於此,可能會非常熟悉本公司的業務,憑此能在本公司混得風生水起,但技術上可能僅僅停留在增刪改查。由於在大多數小公司裏,未必能接觸到高併發分佈式,或大數據,或機器學習或深度學習之類的高級技能,所以如果在小公司呆就了,可能接觸到的也就是增刪改查的技術。

    這種技術不值錢,任何一個畢業生頂多通過半年就能掌握。所以此類程序員社會上會有很多,能力上頂多成爲初級程序員,哪怕能力是在初級程序員階段的天花板,但如果僅僅會增刪改查,也只能是叫初級程序員。

    我見過太多的初級程序員,在30歲之後,只能在多個小公司之間輾轉,工資也就維持中等水平,或者工資比畢業生還低。爲了能從初級程序員提升到高級程序員,辦法只有一個,進大廠,或者進獨角獸企業之類的好一點的平臺,因爲大多數小公司只能提供增刪改查的項目實踐機會。

    怎麼進大廠:背面試題,或者按大廠的面試機會,好好準備簡歷上的項目,同時準備大廠面試時需要的項目說辭和技術說辭。這個階段是很難的,因爲平時只做增刪改查業務的程序員,很難在項目中挖掘出分佈式組件等技術亮點,而且大廠面試官眼睛很毒,只要通過三言兩語就能甄別出求職者是真有值錢技術的項目經驗還是隻會說。

    說句題外話,進大廠要早。雖然現在有很多所謂的面試祕籍,或者面試項目,其實大廠面試官通過提問,一定能甄別出哪些沒相關項目經驗,但靠所謂面試技巧發揮的程序員。

這點大家別有僥倖心理,本人在大廠做了若干年技術面試官,哪怕求職者之前背了太多的題,只要求職者沒在項目裏用過技術,這一問就能問出。但比如求職者比較年輕,比如25歲到27歲,面試官會在看穿的基礎上,感覺求職者有一定潛力,所以面試也可能讓過。但如果求職者過了30歲,或者年級更大,那麼如果僅具備增刪改查技能,可能就未必能進大廠了。

    進了大廠,或者接觸到諸如分佈式,集羣或者深度學習等技術的項目後,程序員會發現一些高級技能的進階途徑。所謂實踐出真知,只有具備相關技術的實踐經驗,程序員才能進階到高級。

    如果程序員在項目裏多上點心,多解決些實際問題,或者多接觸些搭建集羣等運維的活,可能進步起來會更快。

    到了這個階段,程序員自己根本就不用主動進步,甚至能被驅動進步。這話怎麼說?在平時開始時會接觸到大量值錢技術沒,在解決日常問題時,也可能會接觸到值錢或者是底層源碼,這樣一來二去就有經驗了。也就是說,有值錢項目的實踐能力外帶多通過解決問題積累經驗,程序員能升級到架構師,這從技術上可能就非常強了。

    量化一下吧,100個程序員裏可能最後能達到架構師水平的,未必會超過5人,我在上海,達到架構師水平的程序員,一年70萬年薪都不算多。

    後面再要怎麼進步呢?其實就是更好地變現技術,提升技術變現成金錢的能力。比如可以找個小公司做技術頭頭,或者找個風頭行業的公司,或者乾脆找個創業公司。 這個階段,提升就不能單靠編程水平了,而是要靠提升解決實際問題的能力。

    最後做個總結:

    1 程序員的編程水平不是單靠訓練出來的,而是靠做項目積累出來的。

    2 程序員做的項目,或者說程序員所在的公司也有三六九等之分,要提升能力先要找個更好的平臺或包含值錢技術的項目。

    3 單純靠學習提升編程水平很不現實,提升編程水平其實更靠準備面試的能力,面試發揮的能力和跳槽找好公司的能力。

    4 程序員畢竟也是喫青春飯的,如果不提升,可能會舒服一陣,但如果不升級到資深開發甚至架構師,程序員在30歲或者35歲以後,會很難。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章