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