程序猿的執(zhí)業(yè)修養(yǎng)(六)——勤學好問,自我批評
一個人的能力是有限的,因此我們需要不斷的學習,對于每個人都是如此。而程序猿,由于是一種從事腦力勞動的家伙,更加需要不斷的學習、進化!然而有些人,喜歡在學到一點兒東西的時候就拿出來炫耀,這種做法是值得商榷的!
保持空杯心態(tài)
一個老掉牙的故事就是,有半杯水,一個人說“只有半杯”,而另外一個人說“還有半杯”。
另一個老掉牙的故事是,有個杯子塞滿了石子,請問還能再裝點而什么進去?答案有很多,比如可以再裝點兒沙子,或者再裝點兒水。
類似的故事還有很多,想必大家都聽過,也都能夠領(lǐng)略到其中的寓意。一個人的力量和能力有限,我們總是能夠遇到在某方面比自己更強的人,我們總會有不懂的事情需要向他人請教。
不恥下問
“三人行,必有我?guī)煛边@句話還需要解釋嗎?我想,不用了。但是有句話我們必須拿出來解釋解釋——“不恥下問”。
我曾經(jīng)問過很多人“不恥下問這四個字當中哪個字最關(guān)鍵?”。大多數(shù)人的回答都是“恥”,解釋是,我們“不要覺得向能力比自己差的人請教問題是可恥的”。同時,這也是在孩提時代,大多數(shù)家長、老師給我們的解釋。
幾千年過去了,我們抓錯了重點!
“不恥下問”,并非是指因為向“比我們能力差的人”發(fā)問而覺得羞恥,因為這里的“下”字被解釋錯了!它不是指能力的高低,也不是指人的貴賤。“下”是“下面條”的“下”、“下餃子”的“下”,“下”是“做”,“做事”的“做”,“做X”的“做”。用E文來說,“下”就是“do”、“下”就是“make”。
“不恥下問”,是指有問題就應(yīng)該虛心向他人請教,不要認為請教他人而覺得羞恥。反過來講,我們只需要這樣適當?shù)臐M足一下他人的虛榮心,就省去了自己誤打誤撞的代價,何樂而不為之呢?
聰明人基本上都能夠接受接受他人的批評并虛心向他人請教、學習以長進自己。刨根問底、打破砂鍋問到底,多問幾個為什么,這是學習的捷徑之一!
自我批評
當你不小心寫錯了代碼,造成了重大錯誤、帶來了不菲的損失,該怎么辦呢?租好的辦法就是坦率的承認和檢討,盡你所能的尋找補救的方案并執(zhí)行它!一味的推脫、埋怨是沒有用的。
我們通常犯的錯誤中包含字母大小寫、標點符號和某些括號等等。一個小數(shù)點毀了一艘太空飛船和一位航天員的生命,這種事情在歷史上不是第一次了,而且這些都與程序猿有關(guān)。
如果我們錯了,就抬起頭,承認它!不論什么錯誤,如不加以修復,隨著日積月累,我們將要付出的代價可能會越來越大!
關(guān)于重構(gòu)
我時常會聽到猴子們抱怨:“新來了個CTO,要求更換平臺”;“我們的架構(gòu)實在是太爛了,必須重做”;“真不知道之前的猴子是怎么想的”;“我已經(jīng)無法忍受這些個破代碼、破人以及破架構(gòu)師了”;“這種代碼架構(gòu)根本就沒有可擴展性可言”……
重構(gòu),是一個永遠不會滅絕的事情,因為我們的項目無休止!它只是表面上、階段性的完成了,更艱巨的路子在后面!
在創(chuàng)業(yè)期間,很少有人能夠招來各種大牛來為自己量身定制業(yè)務(wù)平臺,找大牛不要花錢嗎?如果我們創(chuàng)業(yè)成功,隨著業(yè)務(wù)的迅速膨脹,會發(fā)現(xiàn)之前的架構(gòu)越來越無法滿足要求,但迫于現(xiàn)實壓力,不能做全面重構(gòu),只能小范圍修改代碼、數(shù)據(jù)庫等等手段來維護它。日積月累,代碼越來越龐大、越來越難以維護,周而復始……
話說,此時不重構(gòu),更待何時?企業(yè)的領(lǐng)導者如何思考這個問題似乎不關(guān)我們這些小猴子的事情,然而,等到那些對業(yè)務(wù)非常精通的老猴子都無法忍受而洗手跳槽的時候,你心里是酸是甜呢?企業(yè)又會進入技術(shù)上的惡性循環(huán)。
實際上,“重構(gòu)”一定是整體重構(gòu)嗎?不是這樣的,我們可以一點一點的來,即使我們無法在現(xiàn)有的代碼上實現(xiàn)更加簡單易用的可擴展性和更好的功能,但至少我們可以讓它的bug少一點、更加清晰健壯一點。
假設(shè)你的代碼使用.NET 2.0開發(fā),當.NET 3.5發(fā)布的時候,你沒有跟進,當.NET 4.0發(fā)布的時候你還是沒有跟進,至今.NET 4.5即將正式發(fā)布了,你還在那里傻不愣登,自己給自己挖坑,怪誰呢?微軟提供了更好的編程環(huán)境和IDE,你缺無法使用或不敢嘗試,這個怪誰?怪罪微軟沒有給你提供足夠的幫助?非也!如果你不能在技術(shù)上不斷的跟進、不能從細節(jié)重構(gòu)做起、不能從觀念上改變,那么你只能害了自己!害了企業(yè)!
語言只是一方面,通常更新版本的開發(fā)環(huán)境會更能解放程序猿的雙手,可是我們是否能夠享受到呢?
除了語言就是業(yè)務(wù),如果你對業(yè)務(wù)不熟悉,那么無論是整體重構(gòu)還是細節(jié)重構(gòu),那都是浮云!
我們之前做的不好,不要緊,從現(xiàn)在開始我們要比昨天做的好一點!兄弟們,給力!!!
浙公網(wǎng)安備 33010602011771號