程式設計師的困境

2015-12-17    分類:程式設計師人生、首頁精華2人評論發表於2015-12-17

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

近日筆者採訪了幾十位求職核心程式設計師這個崗位的候選人。這些候選人均來自大的優秀公司——公司多以晶片或嵌入式OS /系統而聞名。他們中的許多人都聲稱自己擁有至少10年的核心在職經驗。他們的簡歷非常耀眼——各種相關的專案,流行語和獎項……

但大多數人卻無法回答一個很基本的問題:當我們呼叫標準malloc函式時,核心會發生什麼?

不要驚訝。當我要求其中一位候選人基於glib雜湊函式編寫一個簡單的LRU快取框架時,他一開始表示他從未使用過glib——這也在我意料之中——我給他展示了glib的雜湊API頁面,並詳細解釋了API,然後在將近一個小時之後,他只寫出了幾行亂七八糟的程式碼。

我不知道其他國家的情況是否類似,但在中國,或者更具體地說,是在北京,這是現實。那些曾為大型著名外企工作多年的“高階”程式設計師往往在簡單、基本的問題上束手無策。

為什麼會出現這種情況?

我越是思考這個問題,就越是覺得問題的原因不僅僅在於他們本身,也在於他們工作的公司。這些公司通常會提供穩定的程式碼堆疊,而且多年以來一直沒有產生顯著的變化。圍繞程式碼的技術封閉了程式設計師的技能,使得他們只需要遵循現有路徑,而不必積極創新。如果你在這種程式碼上工作了很長一段時間,同時沒有很好地與時俱進,那麼總有一天你會發現自己進退兩難——在團隊或公司內部,他們叫你“專家”,但卻無法在市場上找到同樣棒的工作。

這就是所謂的“專家陷阱”。日復一日,程式設計師夢想著成為團隊/公司內部的專家——然而,當這一天真正來臨的時候,卻是我們困住自己的時候。我們對現有程式碼挖掘得越深,我們陷入的泥潭就越深。我們漸漸失去了從頭開始編寫完整專案的能力,因為現有的程式碼是如此之穩定(如此之大,如此之有利可圖)。更糟糕的是,如果我們的主要工作就是維護現有程式碼,那麼一段時間之後,無論我們閱讀和學習了多少程式碼,都會發現,自己不會寫程式碼了——即使問題簡單到如研究生院的作業。這就是程式設計師的困境:我們靠編碼為生,但培養了我們的大公司往往會破壞我們謀生的能力。

如何擺脫這種困境?

對於個人——

首先,要做自己的個人專案。你需要不斷地“提升自己”。如果工作本身不能幫助你提升自我,那麼找一些你想在個人時間解決的問題。這樣做有助於你學到新的東西。如果你釋出個人專案,比如說在github上,那麼你就有機會認識那些能在你換工作時拉你一把的人。

不要停留在同一個團隊超過兩年。強迫自己換崗位,即使是在同一組織,同一公司中,這樣你就可以面對新的挑戰和新的技術。每隔18個月去參加工作面試。這不是為了跳槽,而是為了讓自己知道現在市場需求什麼,以及你該如何適應。

對於團隊/公司——

給予員工壓力和挑戰。輪換崗位,讓所謂的“專家”有機會擴充他們的技能。開啟新專案,用實戰來磨練大家。

定期舉辦黑客馬拉松。這將有助於建立一種擁抱創新和創造的文化。大家會因彼此而受到激勵—— “哎呀,那個傢伙能用24小時寫出這樣一個美麗的框架,我得加油了”。

譯文連結:http://www.codeceo.com/article/programmer-dilemma.html
英文原文:Programmer’s dilemma
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章