近幾周,一份反映 Netflix
公司企業文化的報告
在網上廣為流傳。
這份報告裡列舉了很多Netflix公司裡令人稱讚的做法,包括這個公司是如何的招聘和辭退員工的。
裡面有大量的資訊是描述Netflix公司是怎樣對待員工的,這使Netflix公司變成了一個很有吸引力的工作場所。報告裡面提到過有一個關於員工所期
望的內容的清單,但沒有把清單列出來。 報告的開始部分就談及了企業價值問題,而且是按照員工的立場角度寫的,可惜並沒有把這個問題展開。
我並不在Netflix工作——你也知道 (我在 Yahoo!
工
作)—— 但我深切的感覺到,不管你在哪裡工作,成為一個優秀的員工、優秀的軟體開發工程師的過程是一樣的。
下面所列舉的都是偉大的程式員所具有的經驗和品質。
只做正確的事
對於軟體這一行的人,我們有個很大的挑戰,就是如何能夠用正確方法的做事情。什麼是正確的方法,這依賴於你在做什麼和做給誰。而究竟所謂
“正確的方法”裡都包括了什麼內容,這並不是重點,重點是你是否能堅持按照這種方式做事。初級程式員在這個問題是通常不能做到堅持,而資曆較深的程式員卻
能始終堅持原則。 也許會有一個“非常緊急”的項目,或者這個項目很特殊,不能按常規過程開發。這隻是個假象。
好的程式員知道即使在任何情況和環境下都要堅持做正確的事情。
如果說按正確的方式開發將導致不能按時完成任務,那麼,他們就會知道,這個項目是不能按時完工的。
不要妥協,工程品質是你作為一個優秀程式員的唯一終極證明。
確保你所有的代碼都是在正確的方法下100%正確的寫出的。要按一個優秀的程式員的標準來要求自己。
甘願受苦
聽起來很傻,但卻是真的,優秀的程式員都樂於承擔工作上給他們帶來的痛苦。
你說出一個偉大的程式員,我都能告訴你,在他或她的職業生涯裡,各個階段,都曾有花好幾天時間去解決一個問題的經曆。
優秀的程式員品味著困難給他們帶來的挑戰,這讓他們日以繼夜,他們明白,問題必須要解決掉。
不太優秀的程式員就不一樣了,他們在剛剛碰到有麻煩的跡象時就先想到要尋求協助。
在問題面前,他們習慣於去尋求協助,而不是自己去努力解決這個問題。 他們最喜歡的一句話是:“幫我看看這個問題”。
偉大的程式員的第一反應是我要自己解決這個問題。解決問題是種技能,是優秀的程式員非常看重的一種技能。
好的程式員是通過痛苦的磨練才成為偉大的程式員的。 痛苦的磨練是說當你對這個問題實在無能為力時才去請求外援。
求助就意味著認輸, 所有盡量減少這種處境的發生。 甘願受苦。和問題做不懈的鬥爭。這就是你要學會的。
注意: 我並不是說你不能尋求他人的協助。我說的是,你首先要嘗試自己去完成任務,如果你不能完成,再尋求協助。
不要在自己沒有努力過前就輕易的求助。你經常會發現,當你知道瞭解決方法後,你才認識到,你用自己的力量本也能解決這個問題的。
學無止境
如果有人敢聲稱他不需要再學任何新的知識,我是絕對不願意和他共事的。
在有些行業,你也許很多年不學新的東西也能乾的很好,但軟體技術革新的如此之快,你不能不時刻關注。
你的老闆是由於你有某些技能才花錢雇你的,如果你的技能已經落伍、到期了,那你也就沒有價值了。
想成為一名偉大的程式員,你首先要承認你不是無所不知,你必須每天都要努力的尋找、學習新的知識。
在你現在的公司裡或組織裡尋找能讓你學習、讓你欽佩的人。在複雜的問題上徵求他們的意見,看看他們是怎麼思考的。
向他們介紹你的解決思路,請他們給予批評指點。
如果在你的周圍你不能找出一個能作為你的導師的人,這要麼是你還沒有認真的尋找,要麼是你留在了一個不該留的公司裡。
如果你在現在的工作上不能學習進步,那是到了你該換個工作的時候了。
要閱讀網上的部落格。關注一些研討會。與其他程式員交流。偉大的程式員從不停止學習。
分享知識
有一些程式員認為,他們的唯一價值所在就是他們所擁有的知識,於是,分享出他們的知識就會讓他們的價值降低。
這是大錯特錯了。讓你有價值的不是你的知識,而是如何運用你的知識給公司創造價值。
難道還會有比分享知識給他人更能給公司創造價值的方法嗎?
我曾經面試過一家公司,知識不共用、相互保密、相互提防的理念在這家公司雷根深蒂固。
在這樣的環境裡,員工之間形成了一種惡性競爭的關係,這直接導致了勾心鬥角和誣陷中傷的產生。
我可不想在這樣的公司裡工作。如果每個人都對自己知道的事情諱莫如深,那你什麼都學不到。
偉大的程式員希望他人也能知道自己所掌握的知識。他們並不擔心會因此而失去優勢,因為他們相信大家都會這樣做。
偉大的程式員樂意看到他們的同伴成長、成功。
一個公司,它應該被一群喜歡知識共用的人組成,就像人們在運動場上,讓團隊的每個對員都強大起來,整個團隊才會強大。
伸出援助之手
偉大的程式員從來不會說“這不關我的事”。他們總是願意伸出援助之手。他們經常在做自己的工作之餘,去協助那些編程新手。
如果有件任務必須按時完成,而又沒有其他人能勝任,偉大的程式員會主動承擔起這項任務。
他們從來不嘲笑來請求協助的人,即使問題是那麼的小、那麼無意義、無價值。 偉大的程式員重視他們的團隊,願意為團隊做任何的事情。
不管是要去寫1,000行的代碼,還是去編輯一個圖片,偉大的程式員都會立即站出來協助完成。
十年磨一劍
偉大的程式員不是天生的,是後天煉成的。他們是本文上面提到的那些因素造就的,加上還要通過努力的工作。
如果你是剛剛意識到這些,那還不晚,你仍然有充分的時間來成為一個偉大的程式員。耐心是關鍵。偉大的程式員不是在旦夕之間就可以成就的。有些人可能要花上
數年,有些人則需要十幾年。 沒有人為你寫血淚史。
好的公司當發現你有成為偉大程式員的潛質時,會協助你,為你提供舞台。而你會通過你的努力工作、讓你的團隊進步來證明自己。要堅定,要自律,通往偉大程式
員的道路會很長。
更新 (5 Sep 2009):
針對“甘願受苦”段內容增加一個聲明。好像很多人都誤解了我的觀點。
聲明: 本文裡的所有觀點和立場都是來自 Nicholas C. Zakas 本人 ,跟 Yahoo!
, Wrox
出版公司
, O’Reilly 出版公司
,
或其他人沒有任何關係。我只代表我自己,不代表他們。