當前位置:
首頁 > 科技 > 程序員除了編代碼,還能做哪些職業規劃?

程序員除了編代碼,還能做哪些職業規劃?

關鍵時刻,第一時間送達!

不思進取的程序員不是好的程序員。無數的開發者都夢想著可以加入 Google、Facebook、Apple、BAT 這樣的大公司,的確,能夠在數一數二的互聯網公司工作確實很酷。但是,作為一名開發者,如果能夠打敗 Google、BAT,那豈不是更酷?不過想要做到這一點很不容易,因為你需要的不僅僅是計算機相關知識。

那麼怎麼才能打敗 Google、BAT 呢?除了掌握編碼知識,又需要了解哪些內容呢?接下來我們為你一一揭曉答案,這篇文章比較長,閱讀需一定的耐心,即使如此,但個人認為也極具借鑒意義。

第一步,成為一名入門級的 efficiencer。

何為 Efficiencer?

Efficiencer 是一個新的辭彙,源於我自己創造,用來描述那些我認為更有商業頭腦,更能自主的軟體開發者。

簡而言之,Efficiencer 與程序員是有一定區別的。程序員主要工作是根據軟體需求和規範編寫代碼。而 Efficiencer 重在解決問題。以下的案例希望可以幫助你更好地理解兩者的區別:

你去找一個程序員,說:「我需要一個 ASP MVC 網站,在後台使用 Entity Framework、.NET 和 SQL Server。」 程序員說:「好的,老闆,把線框圖給我,我馬上開始寫代碼。」

你去找一個 Efficiencer,說:「目前我們公司採用電話的方式下單,而我們公司的網站僅僅是一個展示性的頁面。我不懂技術細節,但我希望客戶可以 24 小時的通過我們的網站進行下單,我想要你幫助我實現這樣的功能,以便我們跟上競爭對手的腳步。」 Efficiencer 說:「我幫助了很多像你這樣的企業實現自動化訂購流程,所以不用擔心,我會確保你的網站不僅可以與競爭對手競爭,而且還會超越競爭對手。」

基於此,你看出兩者的差別了嗎?哪一種專業人員是需要被老闆管理,哪一種可以自己直接當老闆?

入門級 Efficiencer 的難題

在未來的編程世界裡,軟體開發人員並非是行業中最不重要的人。曾經我提出了一個關於未來的構想,在這個構想中,由 Efficiencer 組成的公司架構上類似律師事務所,他們負責將項目管理(狀態報告和時間表協調)委託給下屬,而不是上級。

這已經引起了很多人的共鳴。人們普遍喜歡這個構想,但入門級的 Efficiencer 面臨的阻礙是什麼呢?

短期到中期的職業生涯規劃

有關 Efficiencer 職業規劃需注意以下幾點:

跳過大量的編程理論和書籍,因為這種學習方式效率很低。

用盡所有辦法讓自己開始進行編程實戰(新兵訓練營、橫向過渡、自學,或者其他途徑)。

花 2-4 年的時間擔任公司程序員,儘可能多的做項目,從項目中提升自己。程序員和醫生有些類似,需要不斷從項目中學習,活到老學到老。

辭去現有的編碼工作,成為一個實際的 Efficiencer,因為 2 - 4 年時間足夠你掌握某一領域的編程技能。在你重新就業之後,你應該開始專註於你的特殊專長,並提升你的個人品牌、職業規劃、商務能力。

以上,很多人會有爭議,畢竟 2 - 4 年的編程經歷只能勉強入門而已,怎麼會達到高級水平?接下來,我將一一來解釋。

先發制人的辯護之路

我是一個達克效應(認知偏差,能力越低的人越容易產生對自己過高的評價,而能力越高的人則傾向於低估自己的能力)中所說的白痴嗎?當然,在反對者的眼裡我的確是白痴。現在我們先不討論達克效應,我先介紹一些我自己。

我的背景

雖然我可能是一個白痴,但在我所說的 2 - 4 年的時間裡,我活得明明白白。如果我說你在提升開發技能上花費的時間的培訓大多數都是浪費的,那麼你一定感覺到自己被冒犯。

換句話說:

學位不錯,但很久以前我就已經拿到了,自然願景也變了。

自從我停止當一名領死工資的程序員以來,我的收入增加了一倍多。

我發現教會別人編程比編程本身更有價值。

有些公司在面試時把 R-Tree 看得比什麼都重要,對於這類公司我會毫不猶豫地拒絕。

我離開了我前文中提到的那家公司,這家公司採用非循環圖表,並在不久之後關閉了整個產品線(並破產了)。

之後,我擁有一個非常好的生活方式和極大的自主權。

我提到所有這一切只是為了證明我既沒有酸葡萄心理,也不是紙上談兵。接下來,先不說我,我們來談談 Google 的 Jill 吧。

編程技巧對你的收入影響不大

為了加強我關於程序員技能邊際收益遞減的假設,讓我們以一個名為 Jill 的程序員舉例。Jill 是一位真正的程序大牛,她是一名以一敵十的程序員。她加入 Google 之後讓 Google 裡面那些大牛都黯然失色。

我想 Jill 應當算是一個以一敵千的程序員。她真的非常出色,當她厭倦了 git 命令行的笨拙時,自學成才,並且從頭開始用彙編語言編寫了一個 Linux shell,其中每個 git 命令參數排列都是單個字元。她是世界上最有趣的程序員,並且她在 Google 工作。

那麼她在 Google 做什麼呢?她負責優化網路搜索引擎的速度。她精通計算機基礎知識、緩存失效、非同步編程、分散式系統,能夠將搜索時間優化到納秒級。

這為谷歌帶來了多少價值呢?因為 Jill 的存在,使得 Google 在搜索方面幾乎壟斷了市場。Jill 為 Google 帶來數十億美元的收入。

那麼 Google 給 Jill 支付的薪水是多少呢? 大概每年 20 萬美元。

當然 Google 會支付她更多,但是你懂得,這也需要遵守制定好的薪酬體系。你不能比你的經理拿得更多。因此,Jill 為 Google 賺了數十億美元,然而每年在 15 萬美元(Google 軟體工程師標準薪資)的基礎之上僅僅多獲得 5 萬美元。在山景城總部,這僅僅意味著她的住所可以從一個標間換成一套。

編程技巧對你的公司影響不大

或許,你會對 Jill 這種不公平的事情充滿了不滿。她為 Google 創造了數十億美元的收入,但是自己每年僅僅多得 5 萬美元。但是,說實話,他們應該付給她多少呢?

他們應該每年支付她一百萬嗎?如果他們真的想這樣做,可以找到人力資源部門並調整薪酬體系。但是這樣做會提醒像微軟這樣的競爭對手她的重要性。

當然,她可以自主創業。她可以從 Google 中脫穎而出,開始構建自己的搜索引擎,但是 Jill 不再是程序員了。她變成了一個 efficiencer,專門研究快速搜索技術。而她的演算法在產品化,市場化,獲得資金之後才有價值,然後找到一種方式進入市場。懷著一顆成為巨頭的心,但是卻面臨著殘酷的競爭。

回到主題,Jill 在 Google 的卓越貢獻真的值得嗎?如果她幸運的話,每年價值也僅比他人多 5 萬美元。

你知道為什麼嗎?因為僅僅擅長編程的價值是不高的。

Jill 是不過是一個假設,沒有能夠以一敵千的程序員,也沒有能夠獨自一人完成搜索引擎的「愛因斯坦」存在。Jill 的案例大大誇大了程序員的價值。在現實世界裡,Jill 不過是一位比普通人優秀一點的程序員,和 Google 大部分程序員相比,她可能也就是在編程方面比較出色。

關於編程技巧的玩笑

當我回顧自己的編程生涯時,我想我學過的編程語言都數不過來了。

曾經有一段時間我深信自己掌握多門語言會使自己成為一名優秀的程序員。我最早使用 C ++ ,後來使用一門叫做 ML 的函數式語言,然後是 Perl、PHP、C、C#、Java、Python、VB,還有一些我不記得的編程語言,並且我都學得還不錯。考慮諸多語言的特性,理解類型和泛型,權衡多重繼承的利弊......所有這一切都是超級重要的。這使我成為一個真正的、全面的、專業的程序員。

人們總是喜歡重視和敘述自己的經驗。是的,我常常告訴自己:沒有 10 種不同編程語言的涉獵,我就不可能寫出一些好的業務應用程序。當然,我可以寫,但我不會寫得太好。維護起來會稍微困難一點,用戶的成本會更高。

邊際收益遞減

你越多學習一門編程語言就越能使你成為一個更好的程序員嗎?當然,它的確如此。但是在這篇文章的剩餘部分會貫穿一個術語:邊際收益遞減(https://www.britannica.com/topic/diminishing-returns)。我們常常認為學習每個語言、框架等等是非常重要的,但這並不一定能夠提升我們的編程技能。

實際上,新的語言和框架並沒有我們認為的那麼重要。它們不過是時代的趨勢。

正如我前文所說,我最早進入軟體行業時使用 C ++。但是,C++ 無法作為一個企業級 Web 語言,因此我學習了 Java。持續了一段時間之後我進入了一家使用 .NET 的公司,在那裡我又學習了 C#。多年來,我並不是為了追求新奇的技術而選擇學習多個語言和框架。而是為了跟上時代的步伐,以免公司招聘一個只有我一半工資的應屆畢業生來替代我。

隨著我們在這個行業中年齡的增長,發現企業有使用「年輕」程序員淘汰大齡程序員的想法。這是非常糟糕的想法。我們對此進行抗議:「新人編寫的代碼充滿 bug,而像我們這樣的經驗豐富的大齡程序員編寫的代碼更加優雅和穩定!」 我們把掌握多個編程語言的豐富經驗敘述為一種優點,讓僱主相信自己的價值。也讓自己更加安心。

但是,我們所有這些多個不同語言的經驗價值並不高。實際上,我們面對新的編程語言和框架,大多數人差不多都只有一兩年的經驗。

編程技能的實際價值

如果本文就在此處終止了,那麼一定是令讀者沮喪的。我要繼續論證自己的 efficiencer 理論:你只需要2 - 4年的時間或者編程經驗,然後你就可以開始利用常規編程以外的經驗。

所以,讓我們通過圖表來看清現實。我創建了下面這個模型來說明自動化和編程的價值。

還記住我所說的邊際收益嗎?大體上這是行業在編程技能方面的邊際收益。如上圖所示,我用紅色部分來表示一個初級編程在行業中佔有的比例和創造的價值。我估計它差不多佔一半左右,雖然這樣的程序寫得非常糟糕。如果細分的話,情況如下:

市面上的初級程序(紅色)佔比 50%。

加上稍好一些的程序(橙色),可以達到 75%。

如果加上更好一些的程序(黃色),那麼可以高達 90%,這將帶給你一個高度可維護的領域。

如果程序非常出色(綠色),則可達到 95%。

加上最後的5%(藍色)可以提高到 100%,來自 Jill 這樣的大牛。

以上數據雖然並不是絕對的準確,但是你可以推斷沒有經驗的開發者編寫代碼的指數倍增。市面上所有軟體中有一半是由經驗不多的人編寫的。而且,儘管如此,依然在繼續。

這是什麼意思呢?這意味著從初級程序開始然後試圖將其提升是有商機的。

編程技巧的價值遞減

我剛剛概述的是一個基準。從敏捷開發的角度來看實際上它可能有些不準確。

為什麼呢?敏捷開發的目標是為應用開發商降低風險。如何降低風險?這意味著找到一種方法來幫助企業讓有限的人才庫中的初級開發人員做更多的事情。敏捷開發涉及結對編程,早期反饋和檢查,集體代碼所有權,嚴格的測試,持續集成等實踐...總之,敏捷包括假設,發現和糾正錯誤。

敏捷會改進上面的圖表。它將軟體開發商品化,使經驗較少的人員在可替代團隊成員的職業生涯中提前做出有意義的貢獻。因此一幅新的圖表應運而生:

但敏捷已經存在了一段時間,我們正在接受更新更大的事情。我不是在談論「精益」和其他項目管理潮流,而是更多的技術導向的運動。我們打破了開發、部署和運營之間的障礙,稱之為 DevOps。從單元層面到生產層面,我們已經取得了更大的進展。我們做dark launches,使用 Monkey 測試,並用微服務去去除風險。

隨著我們這些手段的實施,提升了商品化應用開發。我們啟用自動化錯誤檢測,補救和分析。我們將 Web、移動開發整體上轉化為逐個數字的活動,而且我們最終得到的邊際回報看起來更像下圖這樣。

現在回到我提到的 efficiencer 理念,對其進行重新定義。紅色和橙色代表「我們已經完成了它,它介於初級和稍好之間。擁有 2 - 4 年的編程經驗,你將達到或超過這個水平的技能。然後,你將發現自己處於 95% 區間,相比於 Jill 這種以一敵千的大牛來說,你已經成為了以一敵 950 的優秀程序員。

非 efficiencer 的人生

我提出了一個不重要的邊緣編程技巧,這使很多人都感到壓抑,包括我自己。但是,真的,這並不全是壞事。因為你真的很喜歡編寫代碼和學習新技術,如果你想在自己的職業生涯中成為一個個人貢獻的軟體開發者,放手去做,你一定會過上自己想要的生活。

如果用金錢來衡量的話,你的職業路徑如下:

剛剛進入軟體行業,作為一個初級開發人員每年薪水大約 6 萬美元。

工作 5 年之後成為一名高級開發人員,薪水大約 11 萬美元。

逐漸獲得類似「首席工程師」或「技術主管」或「架構師」這樣的頭銜,薪水在 15 萬美元左右。

在職業生涯的剩餘時間進行朝九晚五的工作,每年學習一下新的技術,將薪水維持在 15 萬美元。

這樣的生活很不錯。我想,你的收入在全球範圍內來比較是比較普通的。而且你也意識想要發展自己的業餘愛好是需要足夠工資支持的。

這不容易突破,不過也沒有什麼可恥的。

非常容易理解,它有一個非常具體和清晰的上限。隨著時間的流逝,你或許會成為軟體開發領域中最不重要的人,因為你會忙於追逐框架和技術,以此為條件讓他人來衡量你的價值。

將非 efficiencer 的職業生涯進行可視化

假設你作為一個程序員開始了職業生涯,決心永遠不會進入管理崗位。當然,你永遠不會自己主動成為一個 efficiencer,因為直到幾分鐘前你才知道 efficiencer 是什麼。

以下是你的職業生涯直觀的可視化圖像。2 - 4 年後,你可以獲得高達 95% 的價值交付能力,你成為一個多面手。那麼,在接下來的 41 年裡,你將會搗鼓,學習新的框架,保持現狀,並在最後 5% 的邊際收益遞減區域徘徊(除非你從編程工作中逃離開,用更多的時間來指導別人,這是我為 efficiencer 所提到的那種專業的一個例子)。

換句話說,在職業生涯的前10%,你將達到職業價值的 95%。這非常令人驚訝。

程序員迷戀技能的弊端

如果把你的技能定位在綠色和黃色,你會有一個美好的生活。而基於此,你僅是把技能的提升當做是一種業餘愛好,因為你投入了很多精力,卻沒有獲得任何額外的回報。

實際上,任何一個具有商業意識的紅色或橙色的人都可以利用他們的編程技巧,並且自己做得更好。

例如以一敵千的程序員 Jill 離開谷歌,甚至只是稍微做一點商業計劃,她就會建立一個初創公司,抗衡谷歌。然後谷歌將不得花費數百萬美元買下她。但是如果身處黃、綠、藍階段的程序員,僅是自我提升該有的編程技能,這樣反而會有限制作用,好比在對她說:「Jill,你技術太牛了,不要操心其他事情,只要專門做好搜索就可以了,至於商業上的事交給我們就可以。」

Efficiencer 的未來

總體而言,Efficiencer 可以解釋為程序員出生的創業者。在如今技術變革日新月異的大環境之下,很多程序員都擔心一過 35 歲就即將面臨失業的風險,其實若不想成為管理者,卻又對編程充滿興趣,Efficiencer 不乏為一個較好的出路,雖然剛開始,收入有所下降,但是一旦堅持下去,很快就可以超越之前的水準。

原文:Learning in a World Where Programming Skills Aren t That Important

作者:Erik Dietrich

譯者:安翔

責編:蘇宓


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

被蘋果擺了一道的高通,亮出了一張「小米」牌
AI 專業人才缺口上百萬,年薪 80 萬遠超同行
C+17 標準正式發布:終於能更簡單地編寫和維護代碼了!
Visual Studio 2017 15.5 正式發布,性能再提升
JDK 9 發布僅數月,為何在生產環境中卻頻遭嫌棄?

TAG:CSDN |