程序員的發展方向

程序員的收入是廣受關注的問題,不少人從業3~5年以後就會遇到這個收入瓶頸。儘管物價不斷上漲,程序員尤爲是初、中級程序員的收入不升反降。即便上次在某個文章中看到有中國第一程序員之稱的某位,月薪也只有3萬,儘管這個數字已經很高了,但這個「中國第一」,也只有衆多小型軟件企業總監級別的收入而已。爲何這麼高水平的技術人員在公司中的位置仍然顯得與日俱降?本文會分析其中的緣由,並依據緣由給出相應的建議,爲收入遇到瓶頸的程序員找到出路。程序員

  要理解一我的能賺多少錢,先要理解錢的流轉規律。對於程序員,老是認爲若本身能力提高了,本身的收入就應該相應提高。不過,請先讀一下任正非寫給華爲員工的郵件中的一段文字:編程

所以,沒有責任心,不善於合做,不能集體奮鬥的人,等於喪失了在華爲進步的機會。那樣您會空耗了寶貴的光陰,還不如試用期中,從新決定您的選擇。進入華爲並不意味着高待遇,由於公司是以貢獻定報酬的,憑責任定待遇。對新來員工,由於沒有記錄,晉升較慢,爲此十分歉意。若是您是一個開放系統,善於吸收別人的經驗,善於與人合做,藉助別人提供的基礎,可能進步就會很快。blog

  從中能夠看出,先要替公司賺到錢,承擔責任,一個員工才能拿到錢。開發

  分析

  若一個程序員技術水平一個頂十個,在他替公司賺錢的道路上還有哪些障礙呢?典型障礙有不少,好比:產品

  1. 這個程序員開發的功能中有50%客戶不常使用基礎

  所以,客戶要麼沒有選擇這個產品,要麼只願意付出更低的價格。「這怪產品經理啊,爲何怪我?」錯。若賺到了錢,論功行賞的分配方法有不少;但若賺不到錢,分配方法就一種:你們都沒錢。也就是在一家產品方向失敗的公司,即便最頂級的程序員,也賺不到錢;或者說,他賺到的錢,可能還不如一個產品方向正確的公司的一個普通程序員。擴展

  2. 這個程序員開發的底層庫中,有50%不被調用軟件

  不少頂級的程序員都迷戀編寫底層庫,認爲這纔是施展技術實力的地方;他們多數不肯意參與業務級別的工做,認爲工做過於簡單還要和客戶打交道。這時候編寫出來的東西,常常會出現「需求鍍金」,就是最終代碼中充斥着大量的無用的功能。本人作過一段這種事情,所編寫的一個庫,可能幾年後使用率也不超過一半。騰訊

  若是這兩個問題不解決,咱們表面上看到的看到的10倍的能力,真正能轉化到生產力上的不足25%。公司的錢賺不來,我的收入低的問題也就很好理解了。程序

  3.頂尖高手在公司內部的位置已經再也不重要

  如今已經不是當年兩個修自行車的能造飛機的英雄時代了。如今的軟件不多像當年KV300、WPS同樣能夠由一個高手獨立寫成,多數都依託於一個十多人乃至近百人的大型團隊。若是這個團隊的總體實力很強,裏邊一個頂3、五個的程序員大有人在,那麼單個的能頂十個的程序員貢獻能有多大,就值得商討了。

  在10年前參與的一家公司中,有一位本身躲在本身辦公室的「掃地僧」,功力超過咱們團隊的最頂級的程序員還要數倍。不過,他卻在獨立開發一個與公司方向不符的小產品,因爲他是老闆的朋友,老闆也固執不過,就隨他去了。幾年後公司上市,不過是由於咱們所在的25人團隊的產品佔據市場份額60%以上。畢竟這種規模的團隊,若是技術和管理又能跟得上(這個團隊就是本人第一次遇到鬆結對編程、139團隊的那個團隊),生產力不是一個兩個游擊隊員可以相比的。若是不能把本身的能力轉化爲企業的盈利,收入就無從談起。

  答案

  有了這兩個分析,就不可貴到答案,總體上分兩個方向,最後咱們再總結兩個大相徑庭的方向的共同點。

  一個方向,是轉向關注業務。具體說來,包括成爲產品經理,或稱爲對產品需求負有責任的技術兼業務高手。

  爲什麼產品經理的收入很高?三星剛剛重獎了GalaxyIII的產品經理,而騰訊、阿里的產品經理也久負盛名,而他們的所謂「高級程序員」通常都默默無聞。緣由就是產品經理是「掌舵」的,不是「划船」的,他對團隊生產力的貢獻,不是加法,而是乘法。國內征途以幾十人團隊每一年幾億的收入,騰訊以9千人超過中國電信5萬人的營業額,國外Apple及FB的崛起,靠的不是技術高手的加法,而是產品經理的乘法。

  做爲純技術高手,可能直接轉爲產品經理很難,或者不肯意轉,那麼,至少要變成關心需求的技術兼業務高手。也就是不能只沉迷技術,而要關心是否正在開發客戶關注的核心需求,業務實現是否有效、友好,與競爭對手定位於功能比較等內容。

  做爲掌舵的人,更容易幫助團隊把技術能力轉化爲生產力,提高績效,也更容易得到更高的收入。

  第二個方向,是做爲技術領導,將本身的技術與管理結合起來,提高整個團隊的戰鬥力。

  技術高手做爲團隊的領導具備得天獨厚的優點,畢竟軟件管理是個複雜的過程,須要結合技術、團隊、過程的各方面才能作好。

  好比設定這樣一個目標:「促進團隊的代碼複用,以提高進度和質量。」我的參與過的幾個項目都證實作好這件事情意義非比尋常,然而作好卻很難。個別技術高手能夠以1/4代碼寫出相同的功能,然而整個團隊卻很難作到,緣由是缺乏恰當的團隊管理方法。而做爲純管理出身的項目經理,又不理解應該創建何種複用結構,如何分工。要讓純管理的人跨越技術壁壘是比登天,而讓技術高手幫助進行管理則只是一念之間的事情(雖然也很難!)。

  若是一個高手,可以幫助本身身邊的3、五個程序員提高水平,那麼很容易再得到至關於幾我的的生產力,這是他我的提高所很難再得到的。本人在十年前遇到一位高手,跟他學了一年,感受本身提高了三四倍的水平(從完成任務所需的功能量縮減而言,況且還有技術、質量方面的提高),而身邊另外幾個師兄弟,也都長進迅速,有一兩個甚至都超過了師傅的水平。除了傳授技術以外,這個團隊後來在這位高手帶領下,還改善了管理結構,演進成爲一個鬆結對和1-3-9團隊,在不到一年時間從5人擴展到25人,而產品質量沒有明顯的降低,後來市場佔有率更是達到60%以上。

  這兩個方向有一個共同點,就是把本身卓越的技術能力對團隊的貢獻,從加法變成乘法。高手必須認識到本身對團隊和企業的最大貢獻,不是本身獨立承擔的那點任務,而是影響產品和影響團隊的能力。

  最後一個常見問題:

  「我傳授了徒弟,最後卻被一腳踢掉怎麼辦?」這是不少技術高手所擔憂的事情。其實,老闆都是很聰明的人,技術、管理、業務可能都通常,但識人、用人絕對超過咱們,不然怎麼會咱們給他打工呢!一個高手若是被踢掉,更多是由於沉迷技術逐漸變得鑽牛角尖、封閉,最終變成無用之人。

相關文章
相關標籤/搜索