很多人認(rèn)為,程序員在項(xiàng)目上所花時(shí)間和效率是成正比的,事實(shí)并非如此。那么程序員該如何利用時(shí)間呢?你可以參考以下幾條建議:
1. 編寫單元測試,提高效率(如果你還沒有這樣做)
這是一個(gè)十分基礎(chǔ)的工作,但是許多程序員并沒這么做。但你應(yīng)該這么做。這樣做不僅能夠提高代碼質(zhì)量,還能提高工作效率。你不但能夠在發(fā)布和修改你的程序時(shí)更加自信,而且還節(jié)省了相當(dāng)多的時(shí)間。
試想一下,如果你正編寫一個(gè)大型網(wǎng)絡(luò)應(yīng)用程序,其中一個(gè)小小的代碼出現(xiàn)了差錯(cuò),要修改它便意味著整個(gè)程序的重建、數(shù)據(jù)的重新配置以及特性的重新檢查(而這個(gè)錯(cuò)誤很可能隱藏很深)。再設(shè)想一下,你可能需要一遍又一遍地重復(fù)類似的事?,F(xiàn)在,借助“單元檢測”,就可以讓你避免重復(fù)以往的修改/檢查工作,可以節(jié)省很多時(shí)間。
2. 使用并改進(jìn)開發(fā)庫
很多編程人員不喜歡用開發(fā)庫。他們寧愿自己編寫代碼,也不愿意使用開發(fā)庫。主要理由如下:
a. 他們不了解開發(fā)庫;
b. 開發(fā)庫里有很多他們并不需要的信息;
c. 相比于開發(fā)庫,他們更容易掌握自己編寫的代碼;
不妨考慮下以下幾個(gè)方面:
a. 開發(fā)庫已經(jīng)過嚴(yán)格測試,覆蓋范圍廣,可以幫助你節(jié)約很多時(shí)間。如果你改進(jìn)了開發(fā)庫,你可以幫助很多人。
b. 但如果你僅改進(jìn)你的私有代碼,則不可能有那樣的影響。
c. 最重要的是,其他同行也在幫忙補(bǔ)充開發(fā)庫的信息,這可以間接地幫助你。
總而言之,除非開發(fā)庫與你的要求太不相符,你最好考慮選擇使用開發(fā)庫。
3. 訓(xùn)練你的編程能力
這其實(shí)很容易。看看其他專業(yè)人員。板球隊(duì)員通過“網(wǎng)上訓(xùn)練”提高技能。音樂家通過練習(xí)演奏來提升水平。歌手也需要不斷通過練習(xí)改進(jìn)。令人吃驚地是,絕大部分的程序員卻不練習(xí)。但你需要不斷練習(xí)。
閱讀一些諸如《Effective Java》和《Design Patterns》等類型的書,并每天做些基礎(chǔ)訓(xùn)練。從歐拉項(xiàng)目中找出些問題,然后 用你最喜歡的計(jì)算機(jī)語言解決它。
編者注:歐拉項(xiàng)目,一個(gè)知識(shí)檢測網(wǎng)站,定期發(fā)布題目,提交正確答案即可進(jìn)入關(guān)于該問題的討論,學(xué)習(xí)題目的不同解法。
和你做的普通項(xiàng)目不同,這些練習(xí)沒有時(shí)間限制。通過這樣的練習(xí),你的工作效率將有很大提高。這是顯而易見的,不是嗎?
4. 閱讀代碼和技術(shù)資料
閱讀代碼和修改/編寫代碼一樣困難。在當(dāng)今開源世界的情況下,可以參閱大量優(yōu)質(zhì)代碼。選擇一個(gè)你最喜歡的開發(fā)庫,然后仔細(xì)閱讀以充分利用里面的資源?;蛟S你不能很快便理解所有的內(nèi)容,但是通過不斷的訓(xùn)練,你將能夠區(qū)分其中使用的不同模式,同時(shí)把這些模式用到你的代碼中。
當(dāng)然,你也可以訂閱專業(yè)領(lǐng)域內(nèi)優(yōu)秀專家的博客,來獲取最新趨勢信息,了解最近技術(shù)。