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