看到“優(yōu)秀程序員的兩大要素:懶 + 笨”一文, 是比較有趣的,剛好在上月我的“KISS原則”文中也引用了Larry Wall(Perl的創(chuàng)造者)的經(jīng)典語錄:
就是:“好的程序員要有3個寶貴品德:懶惰、沒耐心和驕傲”。那篇文章主要談KISS原則,沒有深入展開,只是簡單說:
這篇“優(yōu)秀程序員的兩大要素:懶 + 笨”基本闡述類似觀點。 其實我覺得一個好的程序員光“懶惰、沒耐心和驕傲”還不夠, 他(她)還必須同時“勤奮、耐心和謙虛”。 因此準備湊成兩篇來寫:
本篇主要寫“懶惰、沒耐心和驕傲”的素質(zhì)。 懶惰 這個素質(zhì)在“優(yōu)秀程序員的兩大要素:懶 + 笨”一文已經(jīng)比較詳細指出了:
一個勤奮的,但是水平拙劣的程序員可能給項目帶來的損失更大! 所謂勤奮的差程序員 就是不搞清楚如何編程序就野蠻開工的, 他們不厭其煩地堆砌垃圾代碼, 使用最熟練的按鍵組合是CTRL+C/CTRL+V(和網(wǎng)站編輯們相似), 他們可能會產(chǎn)生驚人的代碼量,如果這些代碼能幸運地運行起來, 只能嘆服他們的debug的水平和耐心。 這些人與其叫作程序員,不如叫作代碼民工。 不幸的是,目前市面上相當數(shù)量自稱程序員的人可能就屬于這一類。 在UUZone我們采用筆試的方法來作為招聘的第一關(guān), 一些最最基礎(chǔ)的試題往往難倒了大部分人, 超過95%的筆試者直接被淘汰。 優(yōu)秀程序員絕對不會愿意去浪費時間做重復勞動, 他們寧可尋求捷徑,寧可花更多時間去磨刀, 也要在砍柴的時候最省力,最偷懶。 正如“優(yōu)秀程序員的兩大要素:懶 + 笨”一文說的:
沒耐心 和懶的作風類似, 好的程序員沒有耐心,尤其是重復自己的工作。他們往往痛恨copy paste, 認為copy paste是帶來代碼維護性差,容易出錯的重要因素。 好程序員甚至發(fā)明了DRY原則來為自己的美耐心開脫。 所謂DRY就是Don‘t Repeat Yourself原則。 為了能滿足自己的沒耐心的需求, 優(yōu)秀程序員們設(shè)計出各種可以讓自己省心或者偷懶的工具, 比如代碼生成器、各種程序框架,各種重用庫等,這樣“一次編寫,多次復用”可以真正得到推行。 好的程序員不喜歡重新發(fā)明輪子、更不喜歡重新制造輪子, 遇到一項任務(wù)即時如何實現(xiàn)已經(jīng)是一目了然,他們也寧可耗費一些時間去求證有沒有可以重用的東西,也不愿意拉起來就自己做,即使這樣可以騙到工資或者項目經(jīng)費 -- 因為他們絕對沒有耐心浪費自己的時間去重復別人已經(jīng)完成的工作。 為了不重復發(fā)明輪子, 好的程序員會試圖讓每一次的工作都盡可能成為下一次工作偷懶的工具和沒有耐心的替代品, 哪怕這一次為了達成這些目的需要耗費一些耐心和額外的工作量。 好的程序員沒有耐心老去調(diào)試程序,由于編程不調(diào)試是不可能的, 所以這些家伙就弄出各種方法來讓bug不容易產(chǎn)生,他們稱為write solid code. 其實無論code多么solid, bug還是有,調(diào)試還是不可避免。但優(yōu)秀的程序員們通過各種方法從設(shè)計的時候,編碼開始的時候,就試圖讓bug和調(diào)試的量減少,因為他們實在沒有耐心那么干。 相反,差的程序員喜歡什么都動手自己來搞, 他們寧可耐心地copy paste代碼, 非常耐心地調(diào)試, 耗費大量的時間,填寫加班單, 每日每夜地干活。 我見過一些人專門喜歡對著書抄襲其中的代碼,還很有成就感,我只能抱歉地說,他們因為太有耐心, 所以成為了差的程序員。 驕傲 你是世界上最優(yōu)秀的程序員嗎? 我是, 你是不是呢?如果你的回答不是,而你干著程序員的工作, 那么你要小心, 你缺乏了一個能成為優(yōu)秀的程序員的重要素質(zhì)! 優(yōu)秀的程序員的驕傲并不是表現(xiàn)在傲慢上,更不是表現(xiàn)在對別人的輕視和對項目的心不在焉, 而是表現(xiàn)在他們的骨子里和心里。他們對自己的能力充滿自信,他們不相信所謂權(quán)威, 他們敢于懷疑一切, 他們敢說出讓別人以為他是瘋子的話來。 優(yōu)秀的程序員從來不在討論中告訴你“不可能”或者“做不到”,他們最常說的是“我去嘗試一下”。 優(yōu)秀的程序員從來不會自行慚暉地說,那是高手才能作到的,我做不到。他們相信別人能作到的,我一定也行,甚至可以做的更好。 優(yōu)秀的程序員有時甚至會過度高估自己的能力,尤其是時間和工作量上, 他們很少會故意把工期估計得充分 -- 把工期估計充分應(yīng)該是項目經(jīng)理們做的事情。 所以優(yōu)秀的程序員經(jīng)常心甘情愿地加班加點-- 因為他們太驕傲了,必需證明自己的能力。 --- 如果你具備了“懶惰、沒耐心和驕傲”這3個優(yōu)點,恭喜你! 你有了成為優(yōu)秀程序員的素質(zhì)! 但是不要著急, 你還必須同時具備“勤奮、耐心和謙虛”的素質(zhì), 你才能真正修成正果! 而這些素質(zhì),有待我下blog分解! |
|