程序員困境

jopen 9年前發布 | 5K 次閱讀 程序員

程序員困境

英文原文:Programmer’s dilemma

最近,我招聘一個內核程序員的崗位,幾十個人過來面試。這些應聘者都來自優秀的大公司,不是開發芯片的,就是開發內生的操作系統的。其中有些人聲稱自己在內核上開發的時間至少 10 年!他們的簡歷美輪美奐,各種完成的項目,各種獲得的褒獎。

但是絕大多數人都無法回答一個最基本的問題:當我們調用一個標準內存分配函數時,在內核中會發生什么?

別驚訝。當我請其中一位應聘者寫一個簡單的,基于在 glib 庫中 hash 函數上搭建的 LRU 緩沖框架時,他表示壓根沒用過 glib。這也正是我想要的答案。我給他看了 glib hash 的 api 頁面,同時非常詳細的給他介紹了 API。之后一個小時過去了,他所能給我的,僅僅是寥寥草草的幾行亂七八糟的代碼而已。

我不知道這種情況是不是適用于其他國家,但是在中國,或者準確點兒來說在北京,這就是現實。所謂的 “高級” 程序員,那些多年在大型的,有名氣的外國公司供職的程序員,甚至無法在最簡單、基礎的問題上證明自己的能力。

為什么會這樣?

我越想,越覺得原因并非簡單歸咎于他們自身,還和他們供職的公司有關。這些公司經常備好了一套代碼,好幾年沒有重大調整。與這套代碼相關的技術 已經形成了框架,人們的技術就在這框架中,遵循既有的路徑走就好了,而創新精神就在這個過程中消失殆盡。如果你在很長時間內就跟這一種代碼打交道,并沒有 將觸角伸向外面的世界,很快你就會發現自己置于悲慘境地。在公司或者團隊里,你被尊稱為 “專家”,但是很不幸的,在這個市場上你將無法找到一份勝任的工作。

這就是所謂的 “專家陷阱”。日復一日,我們程序員都夢想成為公司或者團隊里的行家里手。但是,等這一天真的來到時,我們自陷囹圄,固步自封。逐漸的,我們無法從無到有 的憑借自己的能力,開發出一套完整的項目。因為擺在眼前的代碼實在太穩定了(不僅全面而且還帶來真金白銀)。更糟糕的是,如果我們的主要工作僅僅是保證現 有的代碼更好的存在下去,沒有任何大的變動,那么過上一段時間,不管我們研究閱讀了多少的代碼,最終我們沒辦法寫代碼了,即使問題像學生作業一樣簡單。這 就是程序員困境,我們以寫代碼賴以為生,但是到最后,我們所供職的公司卻讓我們丟了謀生的手段。

如何逃離困境?

對于個人來說—

首先,做你自己的項目,你必須持續不斷的打磨自己的能力。如果工作本身無法幫你做到這點,那么就在業余時間選擇你想要攻克的難題。這樣做很快你 能學到新的東西。如果你發布了個人的作品,比如在 github,很有可能你能遇到一些人,他們能把你從現如今的泥潭中拔出來。

另外,不要在同樣一個團隊待超過 2 年時間。即便還是待在一個公司,逼著自己不斷的調崗,你會遇見新的挑戰,學習到新的技術。每 18 個月走出去面試一次,你其實不需要跳槽,只是看看你與這個市場的結合能力是否如以往那樣緊密。

對于團隊和公司來說—

給你的雇員以挑戰和壓力。讓內部職位不斷調換,讓所謂的 “專家們” 有機會豐富自己的技能,開發新的項目,讓 “武士” 在 “實戰” 中強大起來。定期舉行 “編程馬拉松”,這有助于培養創新的氛圍。人們將相互你追我趕,那時候肯定有人在心里說:“我靠,那個混蛋竟然在 24 小時內寫出如此漂亮的代碼,我必須努力了!”

來自: 36kr.com
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!