IT職場人生系列之二十四:程序員如何增加收入

這是IT職場人生系列的第二十四篇。(序言專欄目錄

程序員的收入是廣受關注的問題,很多人從業35年之后就會遇到這個收入瓶頸。盡管物價不斷上漲,程序員尤其是初、中級程序員的收入不升反降。即使上次在某個文章中看到有中國第一程序員之稱的某位,月薪也只有3萬,盡管這個數字已經很高了,但這個“中國第一”,也只有眾多小型軟件企業總監級別的收入而已。為什么這么高水平的技術人員在公司中的位置仍然顯得與日俱降?本文會分析其中的原因,并依據原因給出相應的建議,為收入遇到瓶頸的程序員找到出路。

要理解一個人能賺多少錢,先要理解錢的流轉規律。對于程序員,總是認為若自己能力提升了,自己的收入就應該相應提升。不過,請先讀一下任正非寫給華為員工的郵件中的一段文字:

因此,沒有責任心,不善于合作,不能集體奮斗的人,等于喪失了在華為進步的機會。那樣您會空耗了寶貴的光陰,還不如試用期中,重新決定您的選擇。進入華為并不意味著高待遇,因為公司是以貢獻定報酬的,憑責任定待遇。對新來員工,因為沒有記錄,晉升較慢,為此十分歉意。如果您是一個開放系統,善于吸取別人的經驗,善于與人合作,借助別人提供的基礎,可能進步就會很快。

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

分析

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

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

因此,客戶要么沒有選擇這個產品,要么只愿意付出更低的價格。“這怪產品經理啊,為什么怪我?”錯。若賺到了錢,論功行賞的分配方法有很多;但若賺不到錢,分配方法就一種:大家都沒錢。也就是在一家產品方向失敗的公司,即使最頂級的程序員,也賺不到錢;或者說,他賺到的錢,可能還不如一個產品方向正確的公司的一個普通程序員。

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

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

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

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

現在已經不是當年兩個修自行車的能造飛機的英雄時代了。現在的軟件很少像當年KV300WPS一樣可以由一個高手獨立寫成,多數都依托于一個十多人乃至近百人的大型團隊。如果這個團隊的整體實力很強,里邊一個頂三、五個的程序員大有人在,那么單個的能頂十個的程序員貢獻能有多大,就值得商討了。

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

答案

有了這兩個分析,就不難得到答案,整體上分兩個方向,最后我們再總結兩個截然不同的方向的共同點。

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

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

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

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

第二個方向,是作為技術領導,將自己的技術與管理結合起來,提升整個團隊的戰斗力。

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

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

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

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

最后一個常見問題:

“我傳授了徒弟,最后卻被一腳踢掉怎么辦?”這是很多技術高手所擔心的事情。其實,老板都是很聰明的人,技術、管理、業務可能都一般,但識人、用人絕對超過我們,否則怎么會我們給他打工呢!一個高手如果被踢掉,更可能是因為沉迷技術逐漸變得鉆牛角尖、封閉,最終變成無用之人。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/449804.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/449804.shtml
英文地址,請注明出處:http://en.pswp.cn/news/449804.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ASP 代碼當前記錄集不支持更新問題的解決辦法。

錯誤類型:ADODB.Recordset (0x800A0CB3)當前記錄集不支持更新。這可能是提供程序的限制,也可能是選定鎖定類型的限制。 /Model/manage/Admin_Admin.asp, 第 35 行 找到放在數據庫文件的--- 右鍵--》屬性---》安全----》添加IIS來賓用戶---》權限為&#…

@PathVariable 注解 說明

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 PathVariable 映射 URL 綁定的占位符 帶占位符的 URL 是 Spring3.0 新增的功能,該功能在SpringMVC 向 REST 目標挺進發展過…

數據清洗,篩選

本人在私募,負責數據收集以及清洗,就是包括收集數據,按照領導要求,選出滿足條件的數據,用于校驗策略是否正確。 現在就在這進行代碼上傳,即用于自己總結整理,也用于供大家學習了解,實…

JS媒體查詢

樣式的改變使用C3的媒體查詢 行為和功能的改變使用JS的媒體查詢 matchMedia()方法參數可寫任何一個CSSmedia規則,返回的是新的MediaQueryList對象,該對象有兩個屬性 media:查詢語句的內容matches:檢查查詢結果,返回boo…

Ruby初步介紹

Ruby是腳本語言,與傳統的C, Java不同的是,它不需要經過編譯,而是直接可以被執行 Ubuntu下執行第一個ruby腳本 print("Hello David, This is your first Ruby script.\n") davidubuntu:~/RubyTrain/Basic$ ruby Hello.rb 運行結果: Hello David, This is your first R…

C/C++ main用法總結

今天看到一篇很好的文章,詳細的講解了C、C中的main函數,以及returne的用法。轉載過來大家一起分享下。轉自:http://www.cnblogs.com/ct6816678/archive/2012/10/26/2741824.htmlreturn是C預定義的語句,當return語句提供了一個值時…

如何將數據寫入excel中,而不覆蓋原有數據

之前直接用pandas庫,然后to_excel(),結果直接將原始數據直接覆蓋,幸虧有備份。(友善提醒,做數據處理之前,先將數據本地備份一份,確認完全沒有問題,然后還是備…

對List集合中的元素進行排序

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 ollections對List集合中的數據進行排序 有時候需要對集合中的元素按照一定的規則進行排序,這就需要用到 Java中提供的對集合…

Jmeter----5.1 設置中文

注意:JMeter5需要Java8 以上,本文環境是Win7 64位 設置永久默認漢化:在Jmeter的安裝目錄下的bin目錄中找到 jmeter.properties這個文件,用文本編輯器打開。在#languageen下面插入一行languagezh_CN 這樣,再次打開Jmete…

pandas計算移動平均值

本人今天遇到遇到一個任務,計算同月份合約當天各合約總持倉量的移動平均值。立刻寫下了這個函數: group df.groupby([合約系列,date]) f pd.DataFrame(group[持倉量].sum().rolling(20).mean()) 上交后,提出要求,不行&#xff…

一個優美的架構需要考慮的幾個問題

隨著公司的架構逐步發展,越來越多的問題被提出來,也發現一個良好的技術架構需要考慮的問題 1 架構的可擴展性 這里面又包括以下幾個方面 水平垂直可拆分服務無狀態數據可緩存可異步處理(提高性能)可復制(提高效率&…

HSTS的來龍去脈

前言 安全經常說“云、管、端”,“管”指的是管道,傳輸過程中的安全。為了確保信息在網絡傳輸層的安全,現在很多網站都開啟了HTTPS,也就是HTTPTLS,在傳輸過程中對信息進行加密。HTTPS使用了對稱加密、非對稱加密、消息…

利用XShell上傳、下載文件(使用sz與rz命令) 超實用!

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 rz、sz 安裝方式:sz/rz命令安裝方式 借助XShell,使用linux命令sz可以很方便的將服務器上的文件下載到本地&#…

quantaxis使用docker安裝,解決了一個很奇特的問題

之前使用docker-compose pull 更新之后,使用docker-compose up進行安裝。出現 qaweb顯示address already in web,cmd中顯示Starting qa_web is wrong。之前一直覺得什么毛病啊,試了很多辦法。 比如關閉8010接口: netstat -ano|findstr “801…

基礎數學落后與高端人才流失

這個話題令人感到很痛苦,也很無奈。我本不該提起這個話題。但是,無窮小微積分專業網站不久即將開通,我不得不認真備課,仔細研讀 J.Keisler 的“初等微積分”電子版教材。在研究該教材內容的過程中,參照國內的《高等數學…

Datawhale MySQL 訓練營 Task2 查詢語句

目錄 MySQL 管理MySQL 用戶管理 參考數據庫管理SQ查詢語句1. 導入示例數據庫,教程 MySQL導入示例數據庫2. 查詢語句 SELECT3. 篩選語句 WHERE ,過濾4. 分組語句 GROUP BY5. 排序語句 ORDER BY6. 函數作業總結MySQL 管理 MySQL版本 8.0.15 MySQL 用戶管理…

記錄一個相當好用的反編譯工具下載地址

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 下載地址見:https://download.csdn.net/download/stoneepigraph/9817144 下載后直接雙擊該程序就可以用,十分方便…

2021-07-09

#先引入后面可能用到的包(package) import pandas as pd from datetime import datetime import backtrader as bt import matplotlib.pyplot as plt %matplotlib auto #正常顯示畫圖時出現的中文和負號 from pylab import mpl mpl.rcParams[font.sans…

Patrick Wyatt:代碼沒問題 程序卻有bug?

摘要:相信每個程序員都遇到過“不可能的bug”,代碼沒有任何問題卻出錯了!問題肯定是出在操作系統上,或者是工具,甚至是因為計算機硬件的問題?!?當然,魔獸之父也不例外&am…

視差滾動(Parallax Scrolling)插件補充

13. Windows Windows (github) 是一個讓你用占據整個屏幕的section來構建單面網站的插件。該插件提供給你一些回調函數,當新的section出現在可視區并且并且處理快照時被調用,所以你可以輕松的繼承它來自定義導航菜單或更多的東西。下面是一個例子&#x…