
本文為原創(chuàng)編譯文章,歡迎各種姿勢(shì)分享到微博、微信,平臺(tái)轉(zhuǎn)載請(qǐng)聯(lián)系。英文原文來(lái)自:InfoWorld;作者:Paul Rubens
花的時(shí)間越多就能寫(xiě)出越可靠的代碼嗎?不一定。那如何才能寫(xiě)出優(yōu)秀代碼的呢?
提示:懶惰是一個(gè)良好的開(kāi)始哦。
Perl 編程語(yǔ)言的原作者 Larry Wall 曾說(shuō)過(guò),偉大的程序員都有三個(gè)優(yōu)點(diǎn):懶惰、急躁和傲慢。
為什么這樣說(shuō)呢?
懶惰會(huì)促使他們?nèi)?xiě)一些省事兒的程序來(lái)輔助他們或別人更好的工作,這樣他們就無(wú)需再去回答一些不想回答的問(wèn)題。
沒(méi)耐心會(huì)激勵(lì)他們?nèi)?xiě)一些程序,不等你提出就主動(dòng)滿足你的需求。
傲慢會(huì)促使他們寫(xiě)出可靠無(wú)誤的代碼,因?yàn)樗麄儾幌胧艿脚u(píng)和指責(zé)。
但是,偉大的程序員也并不總是高效的,那些每天都能將自己的工作完成的很好的開(kāi)發(fā)者,比那些偶爾編碼到令人眩暈的高度的程序員要更高效。對(duì)大多數(shù)雇主來(lái)說(shuō),重要的是曲線下的面積,而不是最高點(diǎn)。
因此,為了最大限度得提高你的就業(yè)能力,你不需要成為一個(gè)偉大的開(kāi)發(fā)者,而是一個(gè)高效的開(kāi)發(fā)者。這里分享7個(gè)習(xí)慣,幫讓你成為高效的開(kāi)發(fā)者。
1、每天至少寫(xiě)4個(gè)小時(shí)代碼
乍一看,這條建議很沒(méi)有意義,因?yàn)榇蟛糠殖绦騿T在他們的電腦桌前要寫(xiě)至少8個(gè)小時(shí)的代碼,很多甚至是10個(gè)小時(shí)。然而,Copyin 的 創(chuàng)始人兼CEO Peter Nixey 認(rèn)為,他們實(shí)際上只有很少的時(shí)間花在了實(shí)際開(kāi)發(fā)工作中。
“我曾經(jīng)從事的項(xiàng)目中,開(kāi)發(fā)者把他們的時(shí)間大部分都消磨在了會(huì)議、乒乓球、午餐等上面,”他說(shuō)?!八?,純粹寫(xiě)代碼的時(shí)間是沒(méi)有4個(gè)小時(shí)的,但令人驚訝的是,在辦公環(huán)境中這點(diǎn)是很難實(shí)現(xiàn)的?!?/p>
為什么呢?
Nixey 解釋說(shuō),一個(gè)很重要的因素就是,要保證開(kāi)發(fā)者在那4個(gè)小時(shí)內(nèi)不能被打擾。因?yàn)橐坏┠闳硇耐度脒M(jìn)去,你的大腦就處在高速運(yùn)行中,一旦中間被打斷了,可能會(huì)需要你花一個(gè)小時(shí)的時(shí)間才能找回原來(lái)的感覺(jué)和思路。
怪不得那么多程序員都不喜歡在編程中受到打擾呢。
2、配合開(kāi)發(fā)團(tuán)隊(duì)
作為團(tuán)隊(duì)中的其中一員,學(xué)會(huì)和你的同事相處是成為一個(gè)高效開(kāi)發(fā)者的重要組成部分。開(kāi)發(fā)者網(wǎng)絡(luò) Scalable Path CEO Damien Filiatrault 認(rèn)為,這要比你有經(jīng)驗(yàn)豐富的編碼技能更重要。
提出和一個(gè)自認(rèn)為比別人聰明的家伙一起工作有多不開(kāi)心。Filiatrault 說(shuō),無(wú)論他多么有才華,就問(wèn)一個(gè)關(guān)鍵的問(wèn)題,“和他們一起工作有趣嗎?”如果答案是否定的,“那可能會(huì)影響整個(gè)團(tuán)隊(duì)的士氣,”他補(bǔ)充到。
但這不僅僅是自大的家伙單方面造成的問(wèn)題。如果開(kāi)發(fā)人員太好或者因?yàn)槟承┰虿贿m應(yīng)團(tuán)隊(duì)環(huán)境也可能會(huì)出現(xiàn)一些問(wèn)題。例如,F(xiàn)iliatrault指出,“世界上任何一個(gè)角落的開(kāi)發(fā)者都想盡可能的避免沖突,而他們可能又不愿承認(rèn)自己無(wú)能為力,這也是一個(gè)問(wèn)題。”
3、利用業(yè)余時(shí)間編碼
如果你寫(xiě)代碼僅僅是為了錢(qián),那么你很難在新的領(lǐng)域?qū)W到新技能以及經(jīng)驗(yàn)。這也是為什么 Added Bytes 的創(chuàng)始人Dave Child會(huì)說(shuō),為了娛樂(lè)而去編碼是很重要的。
他說(shuō):“我所知道的最好的開(kāi)發(fā)者,他們業(yè)余都有自己研究的項(xiàng)目領(lǐng)域?!?/p>
那些開(kāi)發(fā)者不會(huì)為他們的小項(xiàng)目使用他們?cè)诠ぷ髦行枰募寄埽珻hild補(bǔ)充道。相反,他們會(huì)利用一些業(yè)余項(xiàng)目來(lái)增加自己的技能,同時(shí)讓自己跟上新技術(shù)發(fā)展的步伐,這才是真正讓他們興奮的。
4、學(xué)會(huì)寫(xiě)潦草的代碼
很少有項(xiàng)目會(huì)需要開(kāi)發(fā)者去天才般的創(chuàng)建華麗麗的代碼作品:它們所需要的通常是一個(gè)可以在上面建立具體功能的通用平臺(tái)。
Nixey說(shuō)最好的方式就是快速寫(xiě)一些可運(yùn)行的作品,然后從中受益。
“不管你的代碼是邋遢也好,重復(fù)也好,命名很爛也好,”他說(shuō),“代碼只是一種解決方案的表現(xiàn)形式,之后你可以去重構(gòu)它,讓它看起來(lái)很好?!?/p>
5、不要在相同的工作上停留過(guò)長(zhǎng)時(shí)間
Child說(shuō),一個(gè)保證不失去自己編程優(yōu)勢(shì)的有效方式就是去重新找一個(gè)工作,然后讓自己融入到開(kāi)發(fā)團(tuán)隊(duì)中。因?yàn)橐坏┠阏莆樟斯ぷ魉璧乃屑寄?,你就進(jìn)入了一個(gè)死胡同,你的技能很難再提升,你也很難成為一個(gè)更好的程序員。
“你需要不斷挑戰(zhàn)自己,”他說(shuō)?!叭绻阍谝粋€(gè)地方工作了好幾年,那么你可能已經(jīng)最大限度的學(xué)到了當(dāng)時(shí)想學(xué)的東西,所以不要再待在那了——繼續(xù)前行,去尋找新的挑戰(zhàn)?!?/p>
6、永遠(yuǎn)不要停止學(xué)習(xí)
軟件技術(shù)更新的非常快,這意味著現(xiàn)在很多重要的編碼技能可能很快就會(huì)過(guò)時(shí)。所以,如果你打算在軟件開(kāi)發(fā)領(lǐng)域有一個(gè)長(zhǎng)期的發(fā)展,及時(shí)了解新的編程語(yǔ)言和技術(shù)趨勢(shì)是非常重要的。
開(kāi)發(fā)公司Progress Software的首席布道官Todd Anglin說(shuō),“事實(shí)很簡(jiǎn)單但也很殘酷,你現(xiàn)有的知識(shí)是不足以你去消費(fèi)一輩子的,你必須做好不斷去重新學(xué)習(xí)的準(zhǔn)備,因?yàn)槟悻F(xiàn)在所擁有的知識(shí)未來(lái)是不能滿足你的需求的?!?/p>
他還補(bǔ)充說(shuō),清楚并專注于你感興趣的領(lǐng)域,而不是試圖成為各行各業(yè)的高手是很重要的?!皩?duì)你想深入學(xué)習(xí)的領(lǐng)域,要保持如饑似渴的態(tài)度和持續(xù)的激情。不要試圖去啥都學(xué),因?yàn)檫@是不可能的——要保持專注,不斷學(xué)習(xí)?!?/p>
Filiatrault也同意Todd的看法。“也許你每一份開(kāi)發(fā)工作都會(huì)有一半之前沒(méi)有做過(guò)的事情,所以你要有的重要的技能就是知道如何去學(xué)習(xí),去尋找信息,”他說(shuō),“如果你有了這項(xiàng)技能,那么不管你需要什么你都可以通過(guò)自學(xué)擁有了?!?/p>
7、因?yàn)闊釔?ài)去編程
Gregor Riegler是Be a Better Developer博客的一個(gè)作者,他說(shuō),選擇自己熱愛(ài)的領(lǐng)域是至關(guān)重要的,這樣才能確保自己能夠全身心投入項(xiàng)目中去。
“產(chǎn)生動(dòng)力最重要的因素是你關(guān)心代碼能夠做什么,”他說(shuō),“也許它可以以某種方式讓一個(gè)app運(yùn)行,也許它會(huì)讓一臺(tái)機(jī)器以你希望的方式工作?!?/p>
無(wú)論如何,他補(bǔ)充說(shuō),“你要真正去享受自己正在做的事,并嘗試獲得最佳效果。如果你能從中找到快樂(lè),那么恭喜你,你一定會(huì)寫(xiě)出偉大的代碼。”
寫(xiě)在最后
一開(kāi)始翻譯文章只是想鍛煉下英語(yǔ)能力,現(xiàn)在覺(jué)得從中獲益不少,因?yàn)樵谀憔毩?xí)翻譯的過(guò)程中,不僅幫你提高了翻譯能力,還可以幫你提升你的語(yǔ)言組織能力,因?yàn)槟隳芸炊黄⑽奈恼?,并不能完全代表你很牛逼,牛逼的是你可以用?zhǔn)確、簡(jiǎn)潔、通順的語(yǔ)言傳遞給更多人。所以,如果你也有興趣的話,試著去把一篇外語(yǔ)文章翻譯出來(lái)分享給大家吧。另外,還是那句話,如果本文有翻譯不到位的地方,請(qǐng)多多指正,感謝!