偉大的程序員是怎樣煉成的?

近幾周,一份反映 Netflix 公司企業文化的報告在網上廣爲流傳。 這份報告裏列舉了很多Netflix公司裏令人稱讚的做法,包括這個公司是如何的招聘和辭退員工的。 裏面有大量的信息是描述Netflix公司是怎樣對待員工的,這使Netflix公司變成了一個很有吸引力的工作場所。報告裏面提到過有一個關於員工所期 望的內容的清單,但沒有把清單列出來。 報告的開始部分就談及了企業價值問題,而且是按照員工的立場角度寫的,可惜並沒有把這個問題展開。

我並不在Netflix工作——你也知道 (我在 Yahoo!工 作)—— 但我深切的感覺到,不管你在哪裏工作,成爲一個優秀的員工、優秀的軟件開發工程師的過程是一樣的。 下面所列舉的都是偉大的程序員所具有的經驗和品質。

只做正確的事

對於軟件這一行的人,我們有個很大的挑戰,就是如何能夠用正確方法的做事情。什麼是正確的方法,這依賴於你在做什麼和做給誰。而究竟所謂 “正確的方法”裏都包括了什麼內容,這並不是重點,重點是你是否能堅持按照這種方式做事。初級程序員在這個問題是通常不能做到堅持,而資歷較深的程序員卻 能始終堅持原則。 也許會有一個“非常緊急”的項目,或者這個項目很特殊,不能按常規過程開發。這只是個假象。 好的程序員知道即使在任何情況和環境下都要堅持做正確的事情。 如果說按正確的方式開發將導致不能按時完成任務,那麼,他們就會知道,這個項目是不能按時完工的。 不要妥協,工程質量是你作爲一個優秀程序員的唯一終極證明。 確保你所有的代碼都是在正確的方法下100%正確的寫出的。要按一個優秀的程序員的標準來要求自己。

甘願受苦

聽起來很傻,但卻是真的,優秀的程序員都樂於承擔工作上給他們帶來的痛苦。 你說出一個偉大的程序員,我都能告訴你,在他或她的職業生涯裏,各個階段,都曾有花好幾天時間去解決一個問題的經歷。 優秀的程序員品味着困難給他們帶來的挑戰,這讓他們日以繼夜,他們明白,問題必須要解決掉。

不太優秀的程序員就不一樣了,他們在剛剛碰到有麻煩的跡象時就先想到要尋求幫助。 在問題面前,他們習慣於去尋求幫助,而不是自己去努力解決這個問題。 他們最喜歡的一句話是:“幫我看看這個問題”。 偉大的程序員的第一反應是我要自己解決這個問題。解決問題是種技能,是優秀的程序員非常看重的一種技能。

好的程序員是通過痛苦的磨練才成爲偉大的程序員的。 痛苦的磨練是說當你對這個問題實在無能爲力時纔去請求外援。 求助就意味着認輸, 所有儘量減少這種處境的發生。 甘願受苦。和問題做不懈的鬥爭。這就是你要學會的。

注意: 我並不是說你不能尋求他人的幫助。我說的是,你首先要嘗試自己去完成任務,如果你不能完成,再尋求幫助。 不要在自己沒有努力過前就輕易的求助。你經常會發現,當你知道了解決方法後,你才認識到,你用自己的力量本也能解決這個問題的。

學無止境

如果有人敢聲稱他不需要再學任何新的知識,我是絕對不願意和他共事的。 在有些行業,你也許很多年不學新的東西也能幹的很好,但軟件技術革新的如此之快,你不能不時刻關注。 你的老闆是由於你有某些技能才花錢僱你的,如果你的技能已經落伍、過期了,那你也就沒有價值了。 想成爲一名偉大的程序員,你首先要承認你不是無所不知,你必須每天都要努力的尋找、學習新的知識。

在你現在的公司裏或組織裏尋找能讓你學習、讓你欽佩的人。在複雜的問題上徵求他們的意見,看看他們是怎麼思考的。 向他們介紹你的解決思路,請他們給予批評指點。 如果在你的周圍你不能找出一個能作爲你的導師的人,這要麼是你還沒有認真的尋找,要麼是你留在了一個不該留的公司裏。 如果你在現在的工作上不能學習進步,那是到了你該換個工作的時候了。

要閱讀網上的博客。關注一些研討會。與其他程序員交流。偉大的程序員從不停止學習。

分享知識

有一些程序員認爲,他們的唯一價值所在就是他們所擁有的知識,於是,分享出他們的知識就會讓他們的價值降低。 這是大錯特錯了。讓你有價值的不是你的知識,而是如何運用你的知識給公司創造價值。 難道還會有比分享知識給他人更能給公司創造價值的方法嗎?

我曾經面試過一家公司,知識不共享、相互保密、相互提防的理念在這家公司里根深蒂固。 在這樣的環境裏,員工之間形成了一種惡性競爭的關係,這直接導致了勾心鬥角和誣陷中傷的產生。 我可不想在這樣的公司裏工作。如果每個人都對自己知道的事情諱莫如深,那你什麼都學不到。

偉大的程序員希望他人也能知道自己所掌握的知識。他們並不擔心會因此而失去優勢,因爲他們相信大家都會這樣做。 偉大的程序員樂意看到他們的同伴成長、成功。 一個公司,它應該被一羣喜歡知識共享的人組成,就像人們在運動場上,讓團隊的每個對員都強大起來,整個團隊纔會強大。

伸出援助之手

偉大的程序員從來不會說“這不關我的事”。他們總是願意伸出援助之手。他們經常在做自己的工作之餘,去幫助那些編程新手。 如果有件任務必須按時完成,而又沒有其他人能勝任,偉大的程序員會主動承擔起這項任務。 他們從來不嘲笑來請求幫助的人,即使問題是那麼的小、那麼無意義、無價值。 偉大的程序員重視他們的團隊,願意爲團隊做任何的事情。 不管是要去寫1,000行的代碼,還是去編輯一個圖片,偉大的程序員都會立即站出來幫助完成。

十年磨一劍

偉大的程序員不是天生的,是後天煉成的。他們是本文上面提到的那些因素造就的,加上還要通過努力的工作。 如果你是剛剛意識到這些,那還不晚,你仍然有充分的時間來成爲一個偉大的程序員。耐心是關鍵。偉大的程序員不是在旦夕之間就可以成就的。有些人可能要花上 數年,有些人則需要十幾年。 沒有人爲你寫血淚史。 好的公司當發現你有成爲偉大程序員的潛質時,會幫助你,爲你提供舞臺。而你會通過你的努力工作、讓你的團隊進步來證明自己。要堅定,要自律,通往偉大程序 員的道路會很長。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章