分享所積累的學(xué)習(xí)編程的20條經(jīng)驗(yàn)
我就一直在編程.這些年來(lái),我積累了一些艱難又容易的經(jīng)驗(yàn)。作
為一名程序員,你或許還沒(méi)這些經(jīng)驗(yàn),但我會(huì)把它們獻(xiàn)給那些想從中學(xué)到更多的
朋友。
1. 估算解決問(wèn)題所需要的時(shí)間。不要怕,承認(rèn)吧!我曾見(jiàn)過(guò)一些程序員為了解決
一個(gè)特殊問(wèn)題而坐在顯示器前面8小時(shí)。為自己定一個(gè)時(shí)間限制吧,1小時(shí)、30分
鐘或甚至15分鐘。如果在這期間你不能解決問(wèn)題,那就去尋求幫助,或到網(wǎng)上找
答案,而不是嘗試去做“超級(jí)堆碼員”。
2. 編程語(yǔ)言是一種語(yǔ)言,只是一種語(yǔ)言。隨著時(shí)光推移,只要你理解了一種語(yǔ)
言的原理,你會(huì)發(fā)現(xiàn)各種語(yǔ)言之間的相似之處 。你所選擇的語(yǔ)言,你應(yīng)該覺(jué)得
“舒服”,并且能夠?qū)懗鲇行?而且簡(jiǎn)潔)的代碼。重要的,讓語(yǔ)言去適應(yīng)項(xiàng)目
,反之亦然。
3. 不要過(guò)于注重程序的“設(shè)計(jì)模式”。有時(shí)候,寫(xiě)一個(gè)簡(jiǎn)單的算法,要比引入
某種模式更容易。在多數(shù)情況下,程序代碼應(yīng)是簡(jiǎn)單易懂,甚至清潔工也能看懂
。
4. 經(jīng)常備份代碼。在我年輕時(shí),我就有過(guò)因硬盤(pán)故障而丟了大量代碼的經(jīng)歷,
這經(jīng)歷很恐怖的。只要你一次沒(méi)有備份,就應(yīng)當(dāng)像有著嚴(yán)格的期限,客戶明天就
需要。此時(shí)就該源碼/版本控制軟件大顯身手了。
5. 承認(rèn)自己并不是頂尖的程序員 – 知不足。我常想,我對(duì)編程了解已足夠
多,但是總有其他人比你優(yōu)秀。正所謂,“一山總比一山高”。所以,向他們看
齊吧!
6. 學(xué)習(xí)再學(xué)習(xí)。正如第5點(diǎn)所說(shuō),我經(jīng)常會(huì)在手里拿一本計(jì)算機(jī)或編程相關(guān)的雜
志或書(shū)(不信,可以問(wèn)我的朋友)。誠(chéng)然,總有很多你不知道的技術(shù),你可以從中
學(xué)習(xí)以保持不落后。如果你有一種靈巧的方式來(lái)獲取你需要的新技術(shù),那你每天
都應(yīng)該堅(jiān)持學(xué)習(xí)。
7. 永恒的變化。你對(duì)待技術(shù)/編程知識(shí),就應(yīng)像你對(duì)待股票一樣:多樣化。不要
在某一特定技術(shù)上自我感覺(jué)良好。如果那種技術(shù)或語(yǔ)言已經(jīng)沒(méi)有足夠支持,那你
還不如現(xiàn)在就開(kāi)始更新你的簡(jiǎn)歷,并啟動(dòng)培訓(xùn)新計(jì)劃。我能保持前行的主要原則
是什么呢?至少了解兩到三種語(yǔ)言,所以,如果某種語(yǔ)言過(guò)時(shí)了,你在學(xué)習(xí)新技
術(shù)的時(shí)候還可以依靠另一種語(yǔ)言。
8. 提攜新人。協(xié)助并且培養(yǎng)初級(jí)/入門(mén)的開(kāi)發(fā)人員學(xué)習(xí)優(yōu)秀的編程方法和技巧。
也許你還不知道,在幫助他們向更高一層前進(jìn)時(shí),你自己也在向更高一層提升,
你會(huì)更加自信。
9. 簡(jiǎn)化算法。代碼如惡魔,在你完成編碼后,應(yīng)回頭并且優(yōu)化它。從長(zhǎng)遠(yuǎn)來(lái)看
,這里或那里一些的改進(jìn),會(huì)讓后來(lái)的支持人員更加輕松。
10. 編寫(xiě)文檔。無(wú)論是Web服務(wù)的API,還是一個(gè)簡(jiǎn)單的類,你盡量編寫(xiě)相應(yīng)文檔
。我曾經(jīng)引以為豪的代碼注釋,因過(guò)度注釋而有人指責(zé)。給三行代碼加一行注釋
,只需要你幾秒時(shí)間。如果那是一個(gè)比較難以理解的技術(shù),千萬(wàn)別擔(dān)心過(guò)多注釋
。如果你能很好做好自己的工作,大多數(shù)架構(gòu)師、后備程序員、支持組都會(huì)感激
你。
11. 測(cè)試、測(cè)試再測(cè)試。我是一名黑盒測(cè)試粉絲。當(dāng)你完成編碼后,你“被認(rèn)可
”的時(shí)候就開(kāi)始了。如果你們公司有QA部門(mén),如果你的代碼中有錯(cuò)誤,那你得到