程序員的武器大家談之雷軍專訪

轉自《程序員》07年3期文章試讀:程序員的武器大家談之雷軍專訪  


優秀的程序員,其實並不在於技能的熟練掌握,而是需要有良好的素質,有追求完美的精神。


《程序員》:您認爲什麼樣的程序員纔算是優秀的程序員或是程序高手?
雷軍:優秀的程序員,其實並不在於技能的熟練掌握,而是需要有良好的素質,有追求完美的精神。真正的好程序員不是爲了完成任務,也不是爲了交付產品而工作。他們想要要發揮自己的極限,儘自己的最大努力把程序做得更好。
很多人把寫程序看成是一種生活技能,而不是真心喜歡。這種後果會導致很難堅持。一些開發人員在面臨選擇的時候常常會選擇眼前利益以及輕鬆的工作。但總體上來看,做一個程序員能喫苦是必要條件之一。
今天程序員要像大長今那樣,用純潔、認真的心去做好每一件事情。其實長遠來看,程序員寫好代碼,其他收穫也會紛至沓來。一些人很在意眼前的利益,但對於做開發這件需要長期積累的事情來說,看重眼前利益很容易影響其開發功力的修爲。這裏用大長今來對比,其故事講的是:一個古代的科研工作者,爲了研究膳食和醫道的極致而不斷追求。這種精神應該是我們當代技術人員應該具備的特點。
如今,金山有七八百人的研發隊伍,在我們當中的佼佼者,基本上都具備上述基本素質,這也是我爲什麼會談到這些條件的原因。

《程序員》:哪些技能是一個程序員必備的基本技能?
雷軍:從技術人員的角度來看,我覺得最重要的是數據結構,它最能體現開發人員的基本素質。
首先是標識名的命名習慣。標識名命名習慣決定程序後期的可維護性。現在我們看到很多參加奧林匹克競賽的程序員,常常能非常快速的寫程序,但是做出來的軟件很難維護,這就無法應用到實踐的工程和項目當中。
第二是數據結構的定義和常量的定義,這兩者對於開發人員來說是良好的編程習慣。數據結構的定義很大程度上決定了程序的可維護性和可擴展性。
接下來第三點是算法的說明、描述及測試子程序。
第四點,我們在強調BugFree,也就是調試能力以及編寫無錯代碼的能力,一定要常常不忘做邊界條件判斷。
高級一點的開發人員,要注重第五點,程序框架設計的合理性。
第六點是程序的運行效率,這對於一個開發人員來說,已經到達一定高度了。更高的境界則是在開發程序的時候,還需要具備產品規劃的能力,換句話說,良好的編程習慣能幫助你走向成功。

《程序員》:清您簡單回顧一下您的程序員生涯。
雷軍:我1987年進入武漢大學計算機系學習,在大一和大二期間,我一直在老師的實驗室中做項目。大三、大四的時候在學校外面爲一些公司開發相關的軟件產品。1992年1月加入金山,寫程序一直寫到1997年。1997年以後我逐漸由一個程序員向一個管理者的角色過渡。

《程序員》:請給我們的讀者幾點具備實踐意義的指導。
雷軍:對於還在學校的計算機專業學生,首先他應當問問自己是否喜歡這個行業。因爲寫程序是一件非常辛苦的事情,如果沒有發自內心的熱情,是很難堅持下去的。
其次是多實踐,多到老師的實驗室去做項目。你編寫的程序越多,對提高你自身能力的幫助越大。
對於那些已經進入到軟件開發行業的人,則需要永不間斷地學習新的技術。這是軟件開發行業的特點,快速的發展,也需要你快速學習。

《程序員》:開發桌面軟件與開發互聯網軟件有何區別?
雷軍:開發互聯網軟件相對於開發桌面軟件而言,技術複雜度有所增加。其實並不是技術的類別增加了,而是需要關注的點越來越多。另外,開發互聯網軟件的反應速度加快,一旦發現問題時,修正問題速度也相應加快,這時要對各種版本的軟件加強管理,快速響應變化。
當然,寫Web程序並非難事,但是要成爲Web技術的高手,卻並不容易。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章