下面這篇文章摘自鏈接:http://coolshell.cn/?p=1145
我認為這篇文章寫得非常好!值得收藏。
對于程序開發者來說,有兩種技術需要我們掌握,一個是技術上的能力,另一個是非技術上的能力。不幸的是,許多程序員過多地關注了技術上的能力,而忽
略了非技術上的能力的培養,因此,我們的程序員們經常會有一些很不好的習慣,這里我們例舉了程序員們最常犯的5個非技術的錯誤,與大家共勉。
1.- 缺乏團隊紀律
“Discipline is the bridge between goals and accomplishment.” Jim Rohn.
紀律是一個最有價值的技能,不僅僅只是在軟件開發領域,同樣在其它領域也是一樣的。但對于現實來說,我們很難找到即有才華又有紀律的人。這正如足球
隊一樣,非洲的球員們才華相當的出眾,可惜他們總是獨自為陣,團隊紀律性不足,所以可以有好的成績,但卻無法贏得最后的勝利;而德國隊的隊員個人技能平
平,但其有很強大的團隊紀律性,所以,總是能打入最后的決賽并獲得冠軍。有人說過,個人英雄并不可怕,而有強大紀律性的團隊才讓人可怕。這正是日本這個民
族的可怕之處。況且,軟件開發從來都不是一個人可以完成的事情,所以團隊工作中的紀律性會是非常重要的。
Steve Pavlina 強調了自律中5個因素:“承擔, 毅力, 努力, 勤奮, 和堅持。” 這里,我們強烈推薦你讀一讀Steve的 關于自律的文章。
下面是我們覺得程序應該有的比較良好的習慣。
- 每天都有自己的to do list
- 在一個時間內只做一個事
- 把事情做對了
- 事情沒有完全完成時不要輕易結束
- 慢點總比道歉好,道歉總比不做好
2.- 過度自負
我們的經驗告訴我們,過度的自負的人一般是意識不到自己的自負,下面是一些過度自負的特征,希望你可以從中檢測一下自己是否過度自負了。
- 覺得自己是最牛的程序員
- 總是打斷談話
- 你要求Code Reivew不是要檢查代碼,而是向大家炫耀你的代碼
在網上有太多的文章關于程序員的自負的問題,這里有兩篇,你可以看看:一篇是Mike Bernat的 Egoless programming(無自負編程) 還有一個是stackoverflow.com 上的一個貼子。
3.- 溝通不暢
“如果我要說十分鐘,我需要一周做準備;如果說15分鐘,我需要3天做準備;半個小時,我需要兩天;如果說一個小時,我現在就準備好了。” Woodrow Wilson
人類的溝通是我們最主要的活動。成為一個好的溝通者是一件很難的事情,我們不斷地和別人交換關于設計,編碼,文章的意見,并且我們每天都在試圖說服別人我們自己的設計和想法會更好,更有道理……
然后,好的溝通者是那些當他們正在解釋一些事情的時候,他們的解釋是下面這個樣子的:
- 專注。不跑題,沒有廢話。
- 清晰. 很容易聽懂。
- 簡明. 加一點就覺得多,少一點都覺得不夠。
要有一個好的溝通技巧,我們的建議如下:
- 如果你覺得你溝通方面不夠好的話,請事先準備你要表達的東西,努力做到專注,清晰和簡明。
- 在交談中,先聽,后想,最后再說。
- 永遠從對方的角度思考問題。
4.- 忘了用戶
“如果我們不關心我們的用戶……那么別人會”
你的存在,你工作的意思只有一個原因——你的用戶。我們在很多時間都會忘了這個事情。經常,我們在工作當中,技術會取代用戶而占據了主要的位置,我
們可以花費數月的時間來創建一個程序框架,但一個程序框架不會給用戶代來任何的價值,我們不是說程序框架不重要,而是說,對于用戶的需求來說,這是其次重
要的東西。如果離開了用戶的需求,我們所有的技術,算法或是精妙的設計將會變得什么也不是。
5.- 不懂工作的輕重緩急
程序員總是喜歡去研究一些新的或自己感興趣的東西,但對于軟件工程來說,我們更需要知道所有事情的輕重緩急,要學會如何了解事情的優先級,這樣才會
讓我們的工作事半功倍,而我們的工作也會更有效。比如,當用戶的站點出現問題的時候,有些時候,我們的程序員過試地關注于問題的重現和原因,而忘記了用戶
的站點正在流血,無法進行生產。所以,一般來說,最重要的事情首先是恢復用戶站點,然后才是去重現和調查問題。在我們的日常工作中,我們要處理很多事情,
只有了解到了所有事情的輕重緩急,處理最重要最緊急的事情,我們才能夠更好的安排自己的工作,才能夠更好的完成我們的事情。不要以為這是一件很簡單的事
情,這需要我們不斷地和別人溝通來了解事情的輕重緩急,事實證明,如果我們不懂工作中的輕重緩急,本來只有一件緊急的事情,如果處理不當,最后可能會演變
成多件緊急事情,其它本來不緊急的事,后來也會變得很緊急,最終程序員們顧此失彼,苦不堪言。希望大家切記。