雜想程式設計師

葉劍峰發表於2013-01-04

  最近經常考慮的一個問題就是程式設計師與程式設計師之間的區別是什麼?大家平常說的畢業三年就能看出差距指的是什麼。其實在剛畢業的幾年,大家做的事情都是差不多的:選擇一門語言,進入一個部門,瞭解部門內使用的框架,使用這些框架或開發,或完善產品,或開發新產品。那程式設計師的區別是從什麼時候開始漸漸區分的呢?

  首先必須說下,程式設計師它只是個職業,程式設計師展現出來的感覺和個人的性格有很大的關係。你會發現有的程式設計師總是每天鬥志昂揚,有的程式設計師是低調少語,或許更多的程式設計師是抱怨無奈。其實從時間軸的長度看來,鬥志昂揚的並不一定就明確自己的目標,抱怨無奈的或許正是在對真正追求的內心爭鬥。這些的感覺都和當時的狀態有關。

  然後說說分類,將程式設計師分類本來就是錯誤的邏輯。程式設計師是一種職業,語言、方向都只能是虛線而不是實線。

  我在想,勉強能從功能上將程式設計師分個偏向,偏業務型和偏研究型。

  業務型程式設計師更會偏向於公司的具體邏輯和業務,可能手頭口頭更多談論的是專案怎麼怎麼做,怎麼怎麼實現,需要和其他組的人怎麼怎麼合作。業務型程式設計師學習研究的東西大都希望能直接應用在自己的專案中,這樣的學習更是專案推動型學習,專案在某個點需要什麼樣的技術,他們能很快學習並上手做出這個東西。

  或許業務型程式設計師會喜歡學習使用各種庫,但或多或少主觀上喜歡能立馬用之。業務型程式設計師手頭同時會handle著幾個甚至幾種專案,當然初期的階段更多是在討論這裡或者那裡出現的bug,和可能改進的方法。後期會考慮如何優化和更新專案。這樣的程式設計師的成長軌跡可能更多是往專案經理,技術總監這方面入手等。

  研究型程式設計師的特點是專注。當談論到某項技術的時候會兩眼放光。並不是說研究型程式設計師並不關心產品,而是他們的產品是單一且專注的。他們更像是一個鑿井鑽,在表面是看不到他們數量堆積起來的產品帶起的震驚,但是從縱向看,他們的產品深度會是獨一無二的。他們或許不會研究到各種不同的技術,更會專注於一項特定的技術中去。

  經常說到的能力問題,或許這個詞的覆蓋範圍太大了,有的能力是需要你在最快的時間完成業務,有的能力是要你在最好的時間點完成產品,有的能力是你研究創造的技術貢獻,有的能力是你交流的時候的態度與掌控等。

  然後說說部落格,不同程式設計師對待部落格的態度不一樣。當你用什麼態度來記錄的時候,就決定了部落格呈現的態度是什麼樣子的。有的部落格會是一種隨筆記錄的形式,有的人每天工作結束之後將有用的知識記錄下來,久而久之形成的一筆很大的財富。有的人會將部落格當成是一種知識的學習。當學習或者看到一種知識點的時候,將他的的學習筆記以部落格的方式呈現。有的人的部落格呢雖然很少,但是是一種經驗和知識的挖掘,每每都會是非常實用和中肯的。

  再想想職業特點,程式設計師這個職業是個永遠有新知識的職業,它的新知識在每天都會湧現,這些新的技術和知識可能是你學習到的,也可能是你創造的。如何在一個關注的領域有更多的經驗和研究能力是程式設計師追求的。程式設計師追求的不應該是搬運能力,更多的應該是挖掘和創造的能力。

  還有一點感悟。程式設計師必須認識到自己的經歷是有限的,什麼技術方面的事情確實程式設計師什麼都能做,但是並不代表什麼你都要做。投入產出比的觀念應該要有的。比如在國內翻牆的問題上,多少人在研究著如何免費代理翻牆什麼的,或許換個思維想想,在資金允許的情況下,不妨直接花費一些資金,直接就節省掉在這種問題上的學習和時間投入。放棄掉一些東西,你才可以獲取到更多的東西。

相關文章