電子工程網
標題: 轉---十個糟糕的程序員的行為 [打印本頁]
作者: machunshui 時間: 2009-8-5 16:50
標題: 轉---十個糟糕的程序員的行為
十個糟糕的程序員的行為
1) 情緒化的思維
如果你開始使用不同顏色的眼光來看待這個世界的話,那么你可能會成為一個很糟糕的程序員。情緒化的思維或態度很有可能會把自己變成一個怪物。相信你經常可以看到很多很糟糕的程序會使用下面的這些語句:
我的程序不可能有這種問題。
Java就是shit。
我最恨的就是使用UML做設計。
需求怎么老在變,沒辦干了。
受不了這些人,他們到底懂不懂啊。
…… ……
這些帶著情緒化的思維和態度,不但可以讓你成為一個很糟糕的程序員,甚至可以影響你的前途。因為,情緒化通常都是魔鬼,會讓你做出錯誤的判斷和決定,錯誤碼率的判斷和決定直接決定了你的人生。
2) 懷疑別人
糟糕的程序總是說:“我的代碼一定是正確的,我懷疑編譯器有問題”,“我這應該沒有問題吧,STL庫怎么這么難用啊”。我曾經見過有程序員這樣使用STL類:map,當他發現這樣放入字符串后卻取不出來,覺得那是STL庫的BUG,然后自己寫了一個map!我的天啊!
某些時候,過早的下結論是一個很不好的習慣,任何事情都有其原因,只有知道了原因,你才能知道是誰的問題。一般來說,總是自己出的問題。
3) 過多關注實現,陷入問題細節
有些時候,當我們面對一個問題或是一個需求的時候,糟糕的程序員總是會馬上去找一個解決方案或是實現,這是一個很不好的習慣。設計模式告訴我們,“喜歡接口,而不是實現”就是告訴我們,認清問題的本質和特性要比如何實現更重要。
對于一個客戶的問題來說,首先應該想到的是如何先讓用戶正常工作,如何恢復正在“流血”的系統,而不是把用戶放在一邊而去分析問題的原因和解決方案。
對于解決一個bug來說,重現bug,了解原來程序的意圖是首先重要的事,而不是馬上去修改代碼,否則必然會引入更多的BUG。
對于一個需求來說,我們需要了解的需求后面的商業背景,use case和真實意圖,而不是去討論如何實現。只有了解了用戶的真實意圖,實際使用的方式和案例,你才能真正如果去做設計。
糟糕的程序總是容易陷入細節,爭論于如何實現和實現難題,以及問題的根本原因,而忽略了比這些更重要的東西。只有看懂了整個地圖,我們才知道要怎么去走。
4) 使用并不熟悉的代碼
糟糕的程序員最好的朋友是 Ctrl-C 和 Ctrl-V,有些時候,他們并不知道代碼的確切含義,就開始使用它,有證據表明,由拷貝粘貼引發的bug占了絕大多數。因為,代碼總是只能在特定的環境下才能正常地工作,如果代碼的上下文改變了,很有可能使得代碼產生很多你不知道的行為,當你連代碼都控制不住了,你還能編出什么好的程序呢?
5) 拼命工作而不是聰明的工作
對于糟糕的程序員,我們總是能看到他們拼命地修正他們的bug,總是花非常多時間并重復地完成某一工作。而好的程序可能會花雙倍的時間來準備一個有效的開發環境,工具,以及在開發的時候花雙倍甚至10倍的時間來避免一些錯誤。好的程序員總是會利用一切工具或手段來讓自己的工作變得更有效率,總是為在開發的時候盡可能得不出錯。后期出錯的成本將會是巨大的,而且那時改正錯誤的壓力也是巨大的。所以,糟糕的程序通常會讓自己進入一種惡性循環,他們看上去總是疲憊的,總是很辛苦的,所以更沒有時間來改善,越沒有時間來改善,就有越多的問題。所以,拼命工作有些時候可能表明你不是一個好的程序員。
6) 總是在等待、找借口以及抱怨
當需求不明確的時候,當環境不是很滿意的時候,他們總是在等待別人的改善。出現問題的時候,總是在找借口,或是抱怨這也不好,那也不好,所以自己當然就沒有做好。糟糕的程序員總是希望自己的所處的環境是最好的,有明確的需求,有非常不錯的開發環境,有足夠的時間,有不錯的QA,還有很強的teamleader,以及體貼自己的經理,有足夠的培訓,有良好的討論,有別人強有力的支持……,這是一種“飯來張口,衣來伸手”的態度,這個世界本來就不完美,一個團隊需要所有人去奮斗,況且,如果什么都變得完美了,那么,你的價值何在嗎?driving instead of waiting,leading instead of following.
7) 滋生辦公室政治
有句話叫“丑女多作怪”,意思是說如果一個自己沒有真實的能力的話,那么他一定會在其它方面作文章。糟糕的程序員也是這樣,如果他們程序編不好的話,比不過別人的話,他們通常會去靠指責別人,推脫責任,或是排擠有能力的人,等等不正常的手段來保全自己。所以,糟糕的程序通常伴隨著辦公室政治。
8 ) 說得多做得少
糟糕的程序員總是覺得自己什么都懂,他們并不會覺得自己的認識和知識都是有限的。這就是所謂的夸夸其談,是的,什么都做不好的程序員能靠什么混日子呢?就是吹啊吹啊。
另一個表現方式是他們在評論起別人的程序或是設計,總是能挑出一堆毛病,但自己的程序寫得也很爛。總是批評抱怨,而沒有任何有建設性的意見,或是提出可行的解決方案。
這些糟糕的程序員,總是喜歡以批評別人的程序而達到顯示自己的優秀。
9) 頑固
當你給出一打證據說明那里有一個更好的方案,那里有一個更好的方向的時候,他們總是會倔強的認為他們自己的做法才是最好的。一個我親身經歷的事例就是,當我看到一個新來的程序員在解決一個問題的時候走到了錯誤的方向上時,我提醒他,你可能走錯了,應該是另外那邊,并且我證明了給他看還有一個更為簡單的方法,有。然而,這位程序員卻告訴我,“那是我的方法,我一定要把之走下去,不然我會非常難受”,于是,在三天后的代碼評審中,在經過頑固地解釋以及一片質疑聲中,他不得不采用了我最先告訴他的那個方法。
這些程序員,從來不會去想,也不會去找人討論還有沒有更好的方法,而是堅持自己的想法,那怕是條死路都一往直前,不撞南墻永不回頭。
10) 寫“聰明”的代碼
他們寫出來的代碼需要別的同事查看程序語言參考手冊,或是其程序的邏輯或是風格看上去相當時髦,但卻非常難讀。代碼本應該簡潔和易讀,而他們喜歡在代碼中表現自己,并嘗試另類的東西,以顯示自己的才氣。是的,只有能力有問題的程序員才需要借助這樣的顯示。
記得以前的一個經歷,一位英語很不錯的程序員加入公司,本來對我們這些英語二把刀來說,我們喜歡看到的是簡單和易讀的英文文檔,然后,那位老兄為了展示他的英語如何牛,使用了很多GRE中比較生僻的短語和詞匯。讓大家閱讀得很艱苦。最有諷刺意味的是,有一位native的美國人后來在其郵件中詢問他某個單詞的意思。呵呵。
你是一個糟糕的程序員嗎?歡迎你分享你的經歷。
作者: machunshui 時間: 2009-8-5 16:50
對照一下,發現自己的毛病還真不少
作者: gusto 時間: 2009-8-5 18:24
‘聰明’的代碼舉例:
- #define unix 1
- main() {printf(&"\021%six\012\0"[unix], "have"[(unix)] + "fun" - 0x60);}
復制代碼
作者: gfd 時間: 2010-7-26 10:21
dign
作者: ylose 時間: 2010-7-28 16:27
先mark
作者: huihui996 時間: 2011-1-9 22:44
學習學習謝謝
作者: cew2008 時間: 2011-1-13 23:39
學習了
作者: jackalcom 時間: 2011-1-14 17:57
先mark一下
歡迎光臨 電子工程網 (http://m.qingdxww.cn/) |
Powered by Discuz! X3.4 |
主站蜘蛛池模板:
亚洲欧美日本另类
|
欧美曰韩
|
91视频中文
|
女性爽爽影院免费观看麻豆
|
日韩免费视频一区二区
|
国产亚洲视频在线观看
|
99热在线观看
|
日日爱网站
|
久久香蕉国产线看观看亚洲卡
|
羞羞视频在线观免费观看
|
免费三级大片
|
欧美日本亚洲国产一区二区
|
久久澡|
中文字幕国产在线观看
|
国产精品自产拍视频观看
|
色爱五月天
|
中国欧美日韩一区二区三区
|
国精品一区二区三区
|
青青草99
|
国产网站免费视频
|
欧洲色网|
www.国产成人
|
69视频最新在线观看
|
日本国产视频
|
青青草原app|
草久网|
日本在线视频网
|
欧美在线国产
|
亚洲精品一二三四
|
日韩精品亚洲人成在线观看
|
免费国产a国产片高清不卡
免费国产99久久久香蕉
|
国产日韩欧美精品一区
|
91大神大战丝袜美女在线观看
|
日韩国产精品欧美一区二区
|
久久香蕉国产线看观看99
|
国产精品国语对白
|
日本不卡免费在线
|
亚洲影视在线观看
|
91麻豆精品激情在线观看最新
|
好吊妞这里只有精品
|
热re99久久精品国产99热
|