為程式設計師開一劑提高職業素養的良方

紫鳳發表於2012-12-17

文/張克軍

我認為程式設計師和醫生在某些方面很相似。醫生是在解決人的問題,而程式設計師是在解決產品的問題。它們都有相似的職責,都是用理性的技術手段解決問題。程式設計師可以從醫生的身上借鑑到很多東西,比如職業素養標準。

程式設計師的職業素養是建立在技術水平上的。對程式設計師來說,技術是解決問題的手段,類似醫生給病人治病用藥。很多人工作沒幾年便覺得技術“精通”了,工作沒挑戰 了。孫老爺子(孫思邈)罵這種人:“世有愚者,讀方三年,便謂天下無病可治。”以前端開發來說,HTML、CSS的語法規則一個小時內完全可以掌握,但離 運用它解決問題還相去甚遠。

技術範疇裡有各種著名、非著名的開源類庫、各種“大牛”的文章、書籍。這些都是別人在解決所遇問題積累下來的方 法和經驗。在解決自己專案中的問題時,可以用,可以借鑑,但要了解其中的“至精至微之事”,絕不能用“至粗至淺之思”去用它們。我經常看到一些簡歷中,列 出一長串開源庫的名字。但掌握它們的用法,絲毫不能代表技術水平有多高。

除了上述現象以外,還有另外一種現象,很多程式設計師確實熱愛技術,但他們不是在盡心地為所服務的物件解決問題,而是借專案機會不管三七二十一地練手。

相反,如果是一個解決問題能力超強的程式設計師,應該遵循什麼樣的行為準則呢?

第一,先敬業後樂業。關於敬業,梁啟超說:“敬業就是凡做一件事,便忠於一件事,將全部精力集中到這事上頭,一點不旁騖,便是敬。”敬業的程式設計師不一定要天 天加班、沒日沒夜地工作。導致加班的因素也許是開發方式不對、架構不靈活或是技術落後。敬業的程式設計師會憑藉自己的技術能力和判斷力,解決掉其中的癥結,而 不是得過且過。

我有一位同事就是敬業典範,幾年裡他參與過公司很多專案的開發,並且做每一個專案都很投入。比如做了一段時間的線上閱讀專案,便開始對排版產生濃厚興趣,也因此比其他人在專案中收穫更多東西。

當程式設計師不能深入一個問題到“至精至微”的程度時會產生很多問題:

  • 不能更好地利用技術(也就不能更好地解決問題);

  • 不能提高自己的技術水平;

  • 體會不到工作的樂趣。

梁啟超解釋樂業時說:“人生能從自己的職業中領略出趣味,生活才有價值。”很多人上來就追求樂業,有點本末倒置了。

第二,認真嚴謹的態度。孫老爺子說“不得於性命之上,率爾自逞俊快,邀射名譽,甚不仁矣”,是說不能在人命關天的大事上輕率地炫耀自己才能出眾,獵取名譽, 這樣做就太不仁德了!無論能力多強的程式設計師,都不該有炫技的想法,這樣就偏離了解決問題的根本出發點,對整個團隊的技術氛圍也會產生不良影響。相反,能力 越強的程式設計師,看待問題越全面、越深入,對錶面上看似簡單的問題也不會輕易下結論,會考慮更多潛在的問題。

第三,樂於交流和分享。要知道你 在Google上搜到的都是別人無私奉獻出來的知識和經驗,利用這些開源技術解決難題,應有感恩之心。其實當程式設計師看到應用某種技術能將問題完美解決,也包括解決別人遇到的問題時,會有一種成就感。在公司裡,程式設計師利用工作時間解決的問題、獲得的經驗,有責任主動分享出來,幫助他人節省開發時間。

作者張克軍,豆瓣前端團隊負責人,主要負責豆瓣前端基礎技術架構和產品開發。國內前端技術社群活躍的佈道者。

原文刊登在《程式設計師》雜誌2012年12期月刊

原文連結為http://www.programmer.com.cn/14245/

相關文章