淺談程式設計師職業生涯規劃

涼風羽Richard發表於2018-06-30

前言

  隨著移動網際網路的普及,催生了大量各種網際網路相關的職業,也有大批的青年才俊湧入了這個市場,雖然是藍海,紅利滿滿,但是如何能在這一波浪潮下激盪向前,而不是像浪花一樣曇花一現?可以從這波網際網路行業的職業價值,深入研究,發現其中的供求關係,為企業提供的真實價值,瞭解真正的核心競爭力才能像自行車這樣不斷向前,處於真正的穩定。

程式設計師的真實價值

  老闆之所以僱用我們,是想要我們給企業帶來價值,說白了,就是直接或者間接的幫公司掙錢。我們的薪資,一般是作為公司的人力成本。雖然控制成本很重要,但其實真正的重點卻在你為公司帶來的價值和你的薪資之間的差額。

淺談程式設計師職業生涯規劃
  所以當老闆覺得你的薪資高了,其實是在說你為公司帶來的價值不夠。 當我們來到一家新公司工作,由於沒有實際工作的資料可以衡量,你認為自己的價值、公司認為的你的價值和最終你給公司帶來的實際價值之間會存在一定誤差。而簡歷和麵試,就是為了讓你認為的你的價值和公司認為的你的價值離得更近。簡歷其實就是一個價值主張,它說的是:我到這家公司來,能完成這些和那些工作,為公司帶來這樣和那樣的價值,而我只要這麼一點點的薪水,所以趕緊僱用我吧。

  總之,一定要改變我上班別人給我錢的思維方式,轉換到我能為這家公司創造什麼價值的方向上來。 這種換位思考能幫助你想明白很多事情,比如說:

  • 擁有一系列技能的同一個人,在不同的公司創造的價值往往是不同的,於是他能拿到的薪資也就不同。
  • 公司僱傭一個人,並不是看他有多牛,而是看他能給公司帶來哪些價值。 雖然大部分情況下,個人能力和能給公司帶來的價值是正相關的,但如果你能提出並證明一個更好的價值主張,你很可能就會比這個牛人更適合這家公司。 一個極端的例子是:一個頂級架構師在一家使用無伺服器端架構的創業公司很可能沒有用武之地,而一個客戶端高手在這家公司裡可能能搞定一切。

程式設計師市場的供求關係

  當一個崗位供大於求時,招聘方就有了更多的砝碼來壓低薪資,從而獲取更多的剩餘價值;而當一個崗位供小於求時,候選人就有了更多的選擇,也就更值錢。 一個崗位的供求從長遠來講,是受行業和技術發展影響的,比如隨著網路的大規模發展,同樣是從事軟體開發工作,傳統軟體的開發崗位就沒有網際網路和移動開發崗位的需求量大;而從短期來講,每一波浪潮帶來的新興市場和高利潤的行業交叉細分市場職位就會更值錢一些,而只要專注於新興市場和細分市場則會讓你始終處於浪潮的前沿,享受這波浪潮帶給你的紅利。例如ios剛出來的時候,你的競爭力可以在短時間內趕上或者超過開發J2ME開發功能機的資深工程師。

程式設計師的本質

  自動化 其他行業的工作,都需要由人來完成;今天做的事情,明天可能還要同樣的做一遍。但這是人類工作的方式,不是機器工作的方式。

  軟體,仔細想想,它不就是一系列可以重複執行的命令麼?

  為了讓機器去做重複的工作,我們才需要編碼,通過各種程式語言告訴機器如何去完成一項特定的工作,而在這之後,這項工作就由機器完成了,再也不需要人類來參與。程式設計師的注意力會轉移到下一個還沒有被自動化的工作上。

為什麼一個好的程式設計師可以代替很多普通的程式設計師?

  深入理解了程式設計師們和重複的不共戴天以後,你就會明白為什麼一個好的程式設計師可以代替成百上千個普通的程式設計師,因為機器放大了這個差距。如果一個普通程式設計師在重複勞動,那麼一個好的程式設計師花一天寫段程式碼就能幹掉他一年的活。

  所以你看,程式設計師就是不斷的幹掉自己的後路,逼著自己去做創造性的工作,不斷指數級的提升生產率的職業。

工程化是關於如何 低成本、高效率、按時按量完成既定任務的。

  所以判斷一個工程師是否優秀,並不是他多有創意多有名氣,而是看他有多穩,看他能多 Getting Things Done,中文就是靠譜。

  有時候一個好的解決方案,未必採用了最新的技術和框架,而是看上去樸實無華,功力都包涵在背後的細節裡。就像頂尖高手打的斯洛克檯球,每一杆都平淡無奇,只是因為上一杆的回球太到位。

  同樣的,一個好的工程師,會選擇最適合需求和團隊的方案,考慮開發效率和系統效率的均衡,從而已達到最優效果;而不是整天和別人去爭論什麼語言最好、哪些框架過時了。

  工程化和自動化可能是程式設計師職業中最重要的兩個信念,如何在保證工程品質的前提下,創造性的通過自動化來避免重複勞動,是值得我們花上經年累月的時間,在工作中時刻思考和實踐的問題。對這個問題的思考,將幫助你獲得前所未有的競爭力,比如說,如果你擁有了一系列的半自動化工具,在人工智慧日益成熟的時代,它們就可能變成全自動工具,這背後的職業價值和商業價值不言而喻。

程式設計師的焦慮

  網際網路是一個新興但高速發展的行業。新興意味著沒有那麼多的行業大咖給新人指點江山,也沒有一套公認的可靠的可複製的職業發展祕籍。高速發展意味著變革與競爭,大量新人因為大勢所趨而湧入,如果不想被後浪拍死在沙灘上,則必須不斷學習,不斷提升自我,以保持在淘汰線以上的水準。

  中國網際網路行業工作強度很大,而一線的初創公司更忙,然而大部分剛剛進入行業的從業者60%都將進入初創公司。秉承著小步快跑,快速迭代的原則,開發出人員更是戰場中的衝鋒陷陣的騎兵,長時間的透支身體,在高速公路上高負荷前行,就是頂級跑車,也會力不從心,產生焦慮。

程式設計師職業複利性

  就好比理財利息的計算方法一樣,在資金一樣的情況下,複利的回報要遠遠超出單利,而年限越長,複利的效應就越明顯。而我們從事的職業一樣有這樣的效應,選擇一個優秀的職業,在職業生涯後期會展現出越來越高的複利回報,就好比指數的微笑曲線,律師,醫生是複利性高的職業選擇,選擇大於努力,一個優秀的選擇則可實現彎道超車。
軟體開發人員的職業複利性較差主要表現在以下兩個方面:

  • 不同方向的開發人員都有著自己所熟悉的開發語言,專業性較強,雖有語法有一定的通用性,但是技術深度則需要時間來積累,可轉移的只有程式設計設計思想,編碼規範等通用資訊。
  • 如果沒有明確的規劃,或者是面向工資程式設計,即使抓住了趨勢,吃到了頭部紅利。但你的日常工作積累的不是通用知識和綜合能力,可能僅僅是對某項技術的熟練度與經驗,如果沒有自我驅動的自律與動力,僅僅是完成公司的業務,那就是業務驅動,工作經驗反而成了你的累贅,把你拖下泥潭。

程式設計師職業的壁壘

  大部分奮鬥在一線的開發人員把自己的職業與某項技能緊密相連,作為一個開發人員肯定會了解一個高度耦合的程式碼一定就是糾纏不清,牽一髮而動全身,只有高度抽象的函數語言程式設計才能在一次次迭代重構中穩如泰山。網際網路行業變化太快,都說天上一天,地下一年,網際網路從業者又何嘗不是在飄在天上。回首看下諾基亞的發展,桌面級應用的開發,整個行業如大浪淘沙,隨著各種雲平臺的崛起,各種API服務的開放,開發人員的工作效率會大大提升,就好比農業社會轉向工業社會,並不是農業人口勞動力過剩,而是技術的創新解放了更多的勞動力,從而湧入新的行業。網際網路亦是如此,生產效率的提高,在有限的土地上會淘汰掉更多的低產從業者。如果此時到了你的職業生涯中期,僅僅依靠熟練度和輩分在公司中作為你的核心競爭力,那麼你將會被解放(解僱)......

  而網際網路行業其實也早已洗牌與無形之中,例如基礎運維工程師,DBA,基礎演算法工程師,安全工程師,影象演算法工程師,資料工程師等等都在此列。 轉眼間2018已經過去四分之三,網際網路的紅利不知道還有多久的延續,站在風口,順勢而為,但是回首一下過往,風口是那樣的短命。

  從最早的微博微信社交大戰火了三年,然後020和P2P普惠金融火了兩年,直播和共享單車火了1年,無人貨架佈局的硝煙也已經不在瀰漫,僅僅就在2018,直播答題,到知識微商,到區塊鏈,短視訊平臺等等諸多風口,也是亂花漸欲迷人眼。機會從來就沒有變少,只要你keep study,keep hungry. 你的可轉移能力不斷提升,你終將在一輪輪大浪淘沙中脫穎而出。

程式設計師職業能撬動的價值有限

  職業能影響的人越多,製造的價值越高,職業的上限價值也越高。
  網際網路行業的供求關係和價值體系造成了一個現象,前幾年的大眾創業,萬眾創新的創業潮中,造成了程式設計師供不應求的現象,隨處可見的都是我有一個可以撬動地球改變世界的idea,現在還差一個程式設計師就可以3個月推出mvp,5個月拿到天使輪,納斯達克也不是沒有那麼遙不可及。隨著這一現象催生除了大量培訓機構,網際網路市場也變得魚龍混雜,技術參差不齊。以及風口上的豬不斷的迭代,o2o泡沫的消逝,市場變得不再那麼供不應求,終將會回到良幣驅除劣幣的時代。你要知道加州淘金熱中賺的盆滿缽滿的不是那些遠渡重洋,不為萬千險阻的淘金客,而是那些賣鏟子提供基礎設施的賣家。靠技術在it界立足的也只有那些不知道熬過多少個日夜,付出大量精力來提高生產效率的技術專家,沒有任何捷徑可走,即使你天賦異稟,也有萬千個刻意練習更加努力的人與你競爭。對於普通的開發者,對技術並沒有那麼深的熱愛,往往工作五年後工資也趨於穩定,對於大多數公司來說,你的熟練度和經驗達到了一定的閾值,其對公司效益的提高是有限的,在5年這個瓶頸期,長期享受了高增長之後的從業人員將引起增長緩慢的瓶頸期焦慮。

如何應對

  所謂穩定就是最大的謊言,之前有一篇朋友圈的熱文,曾經擠破頭想進入的高速公路收費員等鐵飯碗也被慢慢淘汰,也有諸多BB機維修工程師等熱門梗,這充分說明了人就像一輛自行車,只有動起來,既往不戀,縱情向前才是最穩定的。重新定位自己的職業生涯,不以熟練度作為自己的核心競爭力,不把自己的職業生涯押注在某項單一標的上,而是keep study ,keep hungry ,持續不斷的提高自己的可轉移能力,視野,格局等,在現有的公司裡不斷加強自己的不可替代性。

往期回顧

淺談程式設計師職業生涯規劃

相關文章