程式設計師困境:底層編碼能力正逐步喪失

csdn發表於2013-08-20

  前段時間,@developerworks在微博上向大家推薦了一篇引人深思的文章《程式設計師困境》,這篇文章的作者描述了在招聘核心程式設計師時所遇到的一個現象,一些來自大公司的“高階”程式設計師,卻連最簡單最基本的問題都無法回答,這不禁引發了作者的思考,下面是筆者的簡譯:

  最近,我為招聘核心程式設計師而面試了數萬個應聘者,有一些是來自有名的大公司,比如非常有名的晶片/嵌入式系統開發公司。許多人的簡歷製作的非常完美——涉及的各種專案、獲得的各種獎項等,並有一些人聲稱,他們在核心研發上有10多年的工作經驗,然而,令人驚奇地是,他們卻無法回答一些基本的問題:當呼叫標準的malloc函式時,核心發生了什麼?

  別吃驚,當我讓一個應聘者編寫一個基於glib雜湊函式的LRU快取框架時,他首先聲稱自己從未使用過glib,於是我向他演示glib雜湊API頁面,並且詳細地解釋,然而一個小時後,他只寫了幾行凌亂的程式碼。我不知道在其它國家是否會有類似的情形,但在中國,或者更具體地說,在北京,這就是現實。那些“高階”程式設計師,在有名的外企工作幾年後,連一些簡單的、基本的問題都無法實現。

  為什麼?

  我愈加思考就愈加認為,這不僅僅是與程式設計師自身有關,更與其所在的公司環境有關。這些公司通常會提供穩定的堆疊程式碼,並且多年來一直沿用著,幾行沒有任何變化。程式設計師整天圍繞著這些程式碼工作,按照已有的思路去開發,無需自己動腦、去思考。如果長期在這樣的環境下工作,並且也沒有在外部進行提升和開闊,多年以後,你會發現自己處於很可憐的位置——在公司內部或團隊裡聲稱是“專家”,然而不幸地是,你卻不能在市場找到一個與之平等的工作。

  這就是所謂的“專家陷阱”。在當程式設計師的第一天,我們就夢想著成為團隊/公司的專家,然而,當這一天到來,大家卻陷入了困惑。越深入到當前的程式碼中,陷的就越深。漸漸地,我們喪失了那種從頭開始建立完整專案的能力,因為現有的程式碼如此穩定。更糟糕的是,如果我們的主要工作僅僅是維護現有的程式碼,帶有一些細微的功能新增和改善,一段時間後,無論你讀過或學習過多麼牛逼的程式碼,你將會發現自己不再會寫程式碼——甚至是剛畢業那種簡單的程式碼。這就是程式設計師困境:我們通過編碼謀生,但環境卻正在摧毀我們這種謀生的能力。

  如何跳出困境

  對程式設計師個人來說,首先,做自己的專案;其次不要待在同一團隊超過兩年時間。

  給團隊/公司的建議,給員工壓力和挑戰:輪流工作,讓“專家”有機會拓寬自己的技能。定期舉行黑客馬拉松:這將有助於建立一個擁抱創新和創造的文化氛圍。

  那麼對於這種現象,微博上又有哪些互動呢?讓我們一起來看下:

  皮皮彭:

這是大公司的通病,不僅僅是針對做技術的,其他任何職位也是一樣。公司大到了一定規模,很多事情就變得複雜了,不是那麼純粹了,很多人因此就會忘記了自己人生真正的目標和追求是什麼,到底是要創造出好的產品,還是為了完成某個任務?個人內心保持追求,公司層面力求簡化和純粹,是最重要的。

  _陳_輝_:

非常同意文中的觀點,在技術日新月異的IT行業,“專家”這個詞其實是個危險訊號,意味著你的知識距離老化不遠了。IT工程師應該經常更換工作領域,瞭解多個領域的前沿問題,同時應該花一些時間在開源專案上。

  Bzbee:

這個叫體制化。和電影裡說的道理一致。但也看你在公司的啥部門,如果在基礎部門或參與開源,這可以避免。當然從公司看,這樣人也需要。

  BasketMan:

為什麼大公司是這樣,那是隻有大公司有能力和時間會把底層不變的技術形成框架,讓開發人員針對每天都在變的需求進行開發。那些在大公司寫核心底層的,是不會出現在人力市場的,早已都是大公司的管理人員了。

  對此,各位程式設計師,你們又是持何種觀點呢?本文作者主要描述了程式設計師在大公司所面臨的問題,你們身處的環境如何呢?不妨和我們一起分享下吧。

  英文來源:Programmer’s dilemma

相關文章