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