程序猿必須立即改正的 5 個(gè)壞習(xí)慣
編者按:本文編譯自Ravi Shankar Rajan發(fā)表于Hackernoon網(wǎng)站上的文章 You Need to STOP These BAD Developer Habits NOW 。Ravi Rajan是印度孟買人,全球IT項(xiàng)目經(jīng)理。他也是一個(gè)狂熱的博主、詩(shī)歌作家、考古愛好者和歷史狂人。
“Ravi,你糟透了,你每天都把自己弄得很艱難。”Jim這樣跟我說,他是我多年以前的經(jīng)理。
我很驚訝。或者說是“震驚”,這個(gè)詞更能形容我的情緒。
我用某種掩飾不住的諷刺語(yǔ)調(diào)回答他:“呵,你這么想我的哦。”
“我是一個(gè)偉大的開發(fā)者,是我團(tuán)隊(duì)的寶貴財(cái)富。客戶很信任我,并且在知識(shí)上,我遠(yuǎn)遠(yuǎn)領(lǐng)先于同時(shí)代的人。”
他每說一個(gè)字我就更憤怒一分。
“Ravi,‘ 顧慮 ’太多是你的問題,除非你能提高自己的效率,否則你將永遠(yuǎn)不能抵達(dá) 偉大 的頂峰。”Jim直視我的眼睛,繼續(xù)如是說。
我驚呆了,又氣又困惑,同時(shí)也發(fā)現(xiàn)他的話如此膽大妄為、不同尋常。
我克制了自己 沖出 房間的沖動(dòng),讓他繼續(xù)說出理由:
“我的代碼是***的代碼。”
弗里德里希·尼采的話精妙地解釋了這一狀況:
自負(fù)與我的進(jìn)步如影隨形。
團(tuán)隊(duì)需要的是那種謙虛、求知欲旺盛而聰明的人:謙虛而不自負(fù),意味著比起注重自己來說更重視隊(duì)友;求知欲,意味著他們有著強(qiáng)大的職業(yè)道德,決心完成所有任務(wù)并盡其所能; 聰明,不是指智力上的聰明,而是內(nèi)心聰明 。
別批評(píng)別人的代碼,它可能就在萬眾矚目之下成為你的代碼了。試著客觀地、專業(yè)地觀察他人,而不是做出判斷。要謙虛,并試著向周圍的每個(gè)人學(xué)習(xí)。
永遠(yuǎn)記著,你的自負(fù)是你工作的障礙。如果你認(rèn)為當(dāng)下的你已然偉大,那么你將會(huì)失去你的創(chuàng)造力。自我學(xué)習(xí)終止于你認(rèn)為無所學(xué)習(xí)的時(shí)刻。
“我能很快解決這個(gè)問題。”
Angela Duckworth曾說過:
真正的卓越并無捷徑可走。
行行好吧,給自己一個(gè)許可,讓自己能最充分地發(fā)揮自己的生活。如果你把所有的時(shí)間都用在拿牙刷刷洗邊邊角角,你很有可能錯(cuò)過了重點(diǎn)。走捷徑并不意味著把最終的結(jié)果也縮小了。
走捷徑如此誘人,每個(gè)人都曾經(jīng)做過。確實(shí)有一些情況,需要我們走捷徑。但總的來說,走捷徑非常危險(xiǎn),應(yīng)當(dāng)避免。走捷徑可能通向錯(cuò)誤的終點(diǎn),這可能為你節(jié)省了幾個(gè)小時(shí),但最終可能需要你用數(shù)個(gè)月的痛苦、名聲的損失來挽救。
認(rèn)真對(duì)待我的建議。我曾經(jīng)走捷徑通向“自由”的生活,但這一自由的生活并不是真的自由生活,我痛苦地從中學(xué)習(xí)到走捷徑的壞處。
“我能記住一切,不需要記錄文檔。”
Dick Brandon編程的時(shí)候所說的話正擊要義:
文檔如性,說它好吧,它妙不可言,說它不好吧,它又比別的東西都要強(qiáng)一些。
文檔是編程的蓖麻油,經(jīng)理們都認(rèn)為文檔對(duì)程序員有好處,但程序員總是很憎惡它。
但畢竟,偉大的開發(fā)人員將寫文檔作為其日常工作的一部分。
他們有如下認(rèn)識(shí):開發(fā)團(tuán)隊(duì)與任何其他業(yè)務(wù)都一樣,總是處于不斷的變動(dòng)之中。程序員可能跳槽、轉(zhuǎn)崗或退休。在最壞的情況下,也是人們最不期待的情況,員工的生病、受傷與死亡可能會(huì)讓團(tuán)隊(duì)失去斗志。代碼的時(shí)限也很重要,程序員一年或更長(zhǎng)時(shí)間不接觸這一代碼的話,很容易就會(huì)忘掉自己之前寫的代碼到底是咋運(yùn)行的了。
倘若程序員能夠?qū)懞迷O(shè)計(jì)文檔、API規(guī)范、開發(fā)手冊(cè)和代碼注釋,上述任一情況都會(huì)有所不同。
這種態(tài)度正是他們之所以是團(tuán)隊(duì)寶貴財(cái)富的原因。故意不記錄任何東西并不會(huì)讓你成為“ 不可替代 ”的團(tuán)隊(duì)成員,你最終只會(huì)成為團(tuán)隊(duì)“ 無法彌補(bǔ) ”的責(zé)任。
“這不是我做的”
李小龍說得對(duì):
如果有勇氣承認(rèn)錯(cuò)誤,錯(cuò)誤總是可以被原諒的。
這個(gè)說法不能被低估,因?yàn)檫@是一個(gè)真正偉大的開發(fā)者最重要的特質(zhì)之一。
我們總有借口……就好像說正常情況下我們絕不會(huì)犯錯(cuò)一樣,說實(shí)在的,這很難令人信服。
不好的開發(fā)者會(huì)指責(zé)用戶“不正確”地使用產(chǎn)品,也不能對(duì)整個(gè)產(chǎn)品和錯(cuò)誤負(fù)責(zé)。當(dāng)某個(gè)錯(cuò)誤是別人所犯,他們一定會(huì)讓每個(gè)人都知道該錯(cuò)誤的負(fù)責(zé)人是誰(shuí)。
有啥必要提出這個(gè)問題、浪費(fèi)大家的時(shí)間呢?
這時(shí)候,一個(gè)健康的態(tài)度就很重要了,我們就可以這樣說:“是啊,對(duì)不起啊,現(xiàn)在我們需要如此如此做,來解決這個(gè)問題,這是我的鍋。”這樣說將會(huì)幫助你建立聲譽(yù),幫你在同事中得到更多的認(rèn)可。 越早承認(rèn)錯(cuò)誤,就有越多的時(shí)間學(xué)習(xí)、改正錯(cuò)誤。就這么簡(jiǎn)單!!!
彼“完成”非此完成
Rick Lemons說的很在點(diǎn)子上:
系統(tǒng)已經(jīng)知道的信息,不要讓用戶再次提供。
如果說編程就像性,那么世界上是有很多“不行”的電腦。你不能做到一半就去睡覺。我發(fā)現(xiàn)你們糾結(jié)的概念之一就是“ 完成 ”。
記著,完成意味著:根據(jù)用戶的要求測(cè)試、提供支持。 最終的完成 ,并不是由程序員完成的。
一位優(yōu)秀的程序員渴望學(xué)習(xí)新事物。他們努力理解程序架構(gòu)的所有部分是如何協(xié)同工作的,這些部分出于何種狀態(tài)。他們對(duì)功能背后的設(shè)計(jì)及想法提出質(zhì)疑,以求解決方案。他們明白什么構(gòu)成了良好的用戶體驗(yàn)。
糟糕的程序員則極度依賴其最喜歡的技術(shù)。他們認(rèn)為“ 理想 ”是唯一的方法和編程過程,用戶體驗(yàn)和狀況絕不應(yīng)當(dāng)驅(qū)動(dòng)決策。他們給項(xiàng)目帶來不必要的內(nèi)容,以適應(yīng)其偏好。
這么惡劣的編程習(xí)慣就像公牛闖入瓷器店,笨手笨腳、粗魯不堪。最終,會(huì)導(dǎo)致時(shí)間的損耗、努力的白費(fèi)以及信譽(yù)的破壞。
成功項(xiàng)目會(huì)讓用戶如臂指使,閉著眼睛也能夠完全操作,就像他們本身的DNA一樣。
總結(jié)一下
那么以一個(gè)詞總結(jié)一下上述經(jīng)驗(yàn)教訓(xùn)吧:
態(tài)度。
總有一天,態(tài)度會(huì)比多年的經(jīng)驗(yàn)更重要。
僅僅工作是不夠的,你必須有正確的工作態(tài)度而不僅僅是確切的技能,迄今為止,正確的態(tài)度更為重要。如果你以自身興趣為職業(yè),一般來講你會(huì)喜歡做這件事,工作對(duì)你來說永遠(yuǎn)不會(huì)有單調(diào)乏味一說。作為員工,在工作場(chǎng)合傳播正確的態(tài)度信息是非常重要的。
正如Zig Ziglar所總結(jié)的那樣:
你的態(tài)度,而不是你的才能,決定你的高度。
原文鏈接: https://hackernoon.com/you-need-to-stop-these-bad-developer-habits-now-468ae877700f
編譯組出品。編輯:郝鵬程