年入50萬,程序員多嗎?

0 題記

先說明,這裏是指稅後。年收入50萬在上海算多嗎?比上不足,比下有餘。

640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

不過在上海達到這個水平,至少可以說是能達到財務自由了吧。況且,根據馬太效應的說法,和年入20萬到50萬這個增加階段相比,年入50萬到100萬這個增長難度會小很多。

 

雖然說,本人尚未達到年入50萬的水準,但現階段這個目標並不是遙不可及,而且周圍認識的朋友有不少已經達到了這個收入水平,所以自認爲尚有資格寫這篇文章。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1

在本文裏,將圍繞兩方面來寫,

第一,年入50萬的人需要有哪些技能。

第二,如何把這些技能真正轉換成50萬的年收入。

 

 

1  在公司裏,哪些人能年入50萬

 

 

這裏僅限於軟件行業。

年入50萬,那麼平均月薪得53k+,這樣扣去稅,交金等,平均月入能做到40+。

 

至於用哪種形式?比如是純工資,還是工資加年終獎,或者工資加獎金加股權等,本文不在乎。

640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

如果某人達到了這個水平,那麼公司自然會給出這個身價,如何給法,這個可能就是數學遊戲了。

 

一般來說,初級開發(3年內)月薪在12k到20k之間。高級開發(5年左右)高的就可以有25k,資深架構或資深項目經理(6年+),可以達到35k,能管20人之內團隊的架構或項目經理,可以達到45k,而帶50+團隊的部門經理(一般工作經驗在10年以上),哪怕是低點的話,就能達到50k+了,就能達到本文提到的收入水平了。

 

還有一種是走技術加成的路線,比如最近比較流行的AI,大數據或區塊鏈等,這類資深人才如果有5年+相關資深經驗,就能達到這個水平。

 

或者,到小公司或創業公司裏去做技術總監,至少也是這個價,但是否能持久?我就不敢妄加評論了。

 

 

2  可以適當算些工作外的收入

 

除了在上文裏提到的工作收入外,我還見過如下的一些創收方式。

640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

1 做軟件產品賣,或者幫人兼職做軟件。如果全職上班的話,一年估計能增收的額度估計在10萬以內。

 

2 做培訓,如果是講基礎內容,每週末去講一次的話,估計每年能增收8到10萬,如果講熱點知識,比如區塊鏈等,那麼年入可以到10萬到15萬,如果成了某個領域的大牛,去做高端企業培訓的話,每場的行情至少2萬,平均每月就講一場,那麼估計年入能20萬+。

 

3 像本人那樣寫書,按目前的圖書市場行情,每本書的收入估計在1.5w,一年估計3本,那麼在5萬左右,但如果算上寫書給自己帶來的無形價值,(比如靠出書積攢名氣,再去講課)  一年估計能增收10萬。

 

4 做各種技術諮詢,比如出方案,這個我接觸得不多,但如果能保證長久有活的話,每年估計也能增加10萬。

 

5 適當做些投資,比如買些基金或者理財產品,目前市面上大約是年收益5%。其實這樣算,如果有1千萬,每年保守的理財收益也能有50萬了。

640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

 

 

3  我見到的年入50萬的衆生相

 

1 小A,某外企部門經理,管理50多號人。

 

每天早上大約9點半到公司,每天估計開會(電話會議和現場會議)時間有6個小時,和領導和客戶溝通時間估計2個小時,剩下的就是寫ppt,郵件和跟進度了。一般來說,週末如果能有一天閒下來就不錯了。 

 

2 小B,某大廠架構師,技術牛人,分佈式架構5年+經驗,對於分佈式系統裏的反向代理,mq,數據庫集羣等組件有資深的實踐經驗。

 

每天平均開會時間+解決問題的時間,估計有6個小時,一般是下班後纔有時間幹自己的活,平時不怎麼寫代碼,而是出方案,具體來說就是根據業務系統的現狀設計組件,開發組件時遇到問題,得及時解決。而且需要手機一直開機,有問題得及時解決。

 

需要說明的是小B是資深架構,還沒做到技術總監級別,如果能做到負責某個產品的首席架構或技術總監,年入估計要70萬+了。

 

3 小C,有自己的公司,平時幫人出解決方案,賣自己公司的產品,順帶做監理,培訓等等,反正什麼活都幹,平時經常在飛機上,不定時需要和別人去談項目。而且,從談客戶到實施到問題解決到後繼維護,大多都是自己解決。

 

4 小D,做培訓的,培訓內容涵蓋PMP,數據庫,AI等,做大班培訓和企業培訓,在行業內也比較有名氣了,也是有自己的公司,而且做得時間比較長,有穩定的客戶源,算下來,一年有100萬+了。但每天也有見不完的客戶和幹不完的事。

 

5 小E,某創業公司(規模一般)的技術總監,年入55萬+,老闆的要求是,得解決任何技術問題,從帶人開發到測試到上線部署到性能優化,全都得管,大到租服務器上線項目,中有選用分佈式組件開發項目,小到代碼review測試,沒有不涉及到的。而且成天得提心吊膽,因爲創業難。 

 

歸納一個字,年入50萬,忙。

 

但相比那些混吃等死無所事事的,這些人能用忙來換錢,也算是有本事了,至少本人願意往這方面努力。

  

 

4  歸納下年入50萬的技術和軟實力方面的要求

 

先歸納下技術方面的要求。

1 至少得有架構師的能力,而且得能在項目裏搭建各種組件,這些包括但不侷限於:反向代理集羣,消息中間件集羣,微服務集羣組件,緩存實現方式,日誌管理組件,數據庫集羣,數據庫分庫分表集羣等。

 

2 項目裏的架構組件遇到問題時,能通過debug查看源代碼的方式解決實際問題。

 

3 能編寫linux發佈腳本,能在linux搭建基於Spring boot或tomcat等的項目,同樣,一旦項目運行出現問題,能通過查看日誌快速定位和分析問題。

 

4 得至少是一個領域的專家,比如在數據庫方面,知道oracle調優,或知道如何搭建集羣,總之精通數據庫方面的部署調優排查問題等方面的問題。這樣能做到在團隊裏,這個領域方面,你是無可替代的。事實上,真正大牛不會僅侷限於一個方面,往往同時是多個領域的專家。

 

5 在當前某個熱門領域(AI大數據或區塊鏈)有解決實際問題的能力,而不是僅僅能搭建一個腳手架項目。

 

 總之,技術上得綜合全面,而且精通一個或多個領域,而且最好能緊跟熱點。但一些高收入人羣的能力還不僅限於此,下面說下我看到的這些大牛在在非技術領域方面的技能。

 

1 能帶團隊,能把自己設計的方案平穩地讓手下的人實現,其中就包含了團隊協作,溝通,進度把控,風險把控等能力。

 

2 能和其它團隊的人溝通甚至扯皮的能力,畢竟最終出一個方案,得兼顧多方利益,有時候技術得向進度成本等因素妥協。

 

3 不斷學習的能力,包括能認識到哪些該學以及該怎麼學,這說起來非常簡單,但根據本人的實踐,難。

 

4 能和各種各樣的人打交道的能力。這往往是從事軟件開發的程序員比較欠缺的能力。 

 

5 更爲重要的是,能意識到當前的熱點,同時知道自己該往哪個方向發展,同時或者通過學習,或者通過和別人協作,不斷讓自己進步。

 

比如我就見到一個人,他看到區塊鏈當時比較火,所以一方面就挖礦,另一方面就學這塊,目前就從事這方面的開發,收入比之前就高了不少。

 

 

5  如何高效地達到年入50萬水準

 

 

我目前看到的是,在上海,一些能力比較強的人(大約10%),在具有5年工作經驗後,就達到了這個水準,在具有8年經驗的人羣裏,大約三成到一半人能達到這個水平。所以大家的目標應當是,8年內把自己的收入提升到這個水平。下面我提些可執行的措施。

 

1 給自己制定一個目標,比如我當前是高級開發,但兩年後,我得具備架構實踐方面的能力,能勝任架構師的角色。這還不算,然後得給自己列個學習和實踐的清單,比如該學哪些,該操練哪些。

人無遠慮必有近憂,目標雖然可以是虛無縹緲的,但沒目標,一定是一事無成。

 

2 不僅得了解架構組件的實現和配置方式,還得了解該組件的部署和配置方式,而且出了問題還得知道如何調試和排查問題。就拿kafka組件舉例,不能僅僅瞭解怎麼用,而且還能編寫部署集羣的腳本,一旦出了問題,還得知道通過日誌甚至debug底層代碼排查問題。

 

3 在第2點的要求,儘可能多地掌握高併發場景下的技術點,比如數據庫分庫分表,消息緩存等。

 

4 目前不少系統是部署在Linux上的,所以Linux技能也是必備項,不僅會通過linux命令部署應用,而且還得編寫部署腳本,最好還能在Linux配置各類集羣。 

 

如上是技術方面的需求,其實說起來非常簡單,要達到上述要求不容易。下面列些實踐中的經驗。

 

1 積累上述技能時,得靠踩坑來積累經驗,尤其是高級開發往架構方面升的階段。這時可能會發現自己欠的債太多,或者工作壓力本身就大,出了問題又很難排查,往往這個時候就得靠咬牙堅持了。(本人目前就處於這個階段)

 

2 最好進一個大廠,比如BAT或互聯網企業,不是說外企等其它公司就無法提升自己了,但畢竟互聯網公司提升自己的效率更高。如果發現在當前公司雖然舒適,但無法給自己更好的發展前景時,那可能就得爲自己多加考慮了。

 

這裏也說個笑話,一個人的提升速度和1 踩坑率(踩坑數量除以天數)2 平均加班時間  3 身邊牛人的數量 這三點成正比,哪些公司能同時滿足上述三點呢?

 

3 不斷總結積累,至少把在工作中用到的技能點吃透,比如最近我在用線程,那麼就得把諸如volatile等的細節搞明白。又如,最近我會在linux部署和排查項目,那麼就得不斷掌握linux各種相關的命令。

 

4 先做學徒再做師傅,剛開始總是不可能有實踐機會,總是會跟在架構師後面打零工,這時就得多琢磨架構師是如何分析和解決問題的。

 

比如我最近在跟着一些大牛在做數據庫分庫分表,當程序調通後,我沒有就事論事,而是再進一步去了解相關組件的底層細節以及集羣配置方式,所以最近我感覺在架構層面,進步不少。

 

5 同時鍛鍊自己分享,和別人溝通,執行力和時間管理等方面的領導方面的能力。

 

6 平時不能光埋頭幹,得定時到外面找些活,比如寫書做軟件做培訓等等,這樣掙錢是一方面,另外能見識到更多的人,這樣自己視角就更廣泛了。 當自己人脈廣了以後,小到找活,大到換工作,都有幫助。