這篇文章,是從我的《高效
1. 要看書(shū)。在成千上萬(wàn)的編程
2. 讀代碼。這也是我很喜歡的一種方式。如果我并沒(méi)有幾年的專(zhuān)業(yè)編程工作經(jīng)驗,在學(xué)習之初我并不會(huì )去讀很多復雜的代碼。如果我要是早些開(kāi)始學(xué)習,我將是一個(gè)比現在更好的程序員。但是,開(kāi)始時(shí)我會(huì )從一些開(kāi)源項目里,去學(xué)習那些源代碼(當然,這些代碼不能與我的工作有關(guān),也不是我自己寫(xiě)的)。要從自己會(huì )使用到的,或者自己感興趣的程序開(kāi)始這項工作。我是從 Paint.net 這個(gè)網(wǎng)站里開(kāi)始學(xué)習的,而且已經(jīng)積累了很多關(guān)于 .NET 的編程技術(shù)。
讀別人的代碼可以為你提供更多不同的工作思路,這比你完全憑自己思考得到的工作方式要多。
3. 寫(xiě)代碼。謹記,要寫(xiě)大量的代碼。從根本上來(lái)講,最好的學(xué)習方法就是實(shí)踐。如果不寫(xiě)代碼,你根本不能把(某種語(yǔ)言中)內在的東西學(xué)習透徹。學(xué)習之初,可以從一些技術(shù)指南和圖書(shū)中照搬一些盡量
最重要的是,要寫(xiě)一個(gè)你自己的程序,不管它是一個(gè)簡(jiǎn)單的游戲,或者是一個(gè)參與開(kāi)源項目的程序,還是一個(gè)公為你自己使用的簡(jiǎn)單插件。用不同的方式來(lái)寫(xiě)程序,盡量嘗試使用新的技術(shù),新的技巧,新的設計方式。一定要讓現在的項目比以往的項目更好。想要成一個(gè)優(yōu)秀的開(kāi)發(fā)者,這一點(diǎn)是核心。
4. 與其他開(kāi)發(fā)者交流。像 Apple,微軟,Google 等大公司一樣的新聞描述的一樣,(與其他開(kāi)發(fā)者交流)可以讓你解決一些復雜的問(wèn)題。雖然這并不能讓你感覺(jué)到自己已經(jīng)成一個(gè)團隊或是社區的成員,但是這種方法可以讓你接觸到更多不同的想法。
不同類(lèi)型的項目要求不同的設計方法,代碼技術(shù),開(kāi)發(fā)流程和設計思想。如果你工作在一個(gè)小團隊里,你不必與太多的人接觸,只要在用戶(hù)群會(huì )議中找到一些人(來(lái)討論)即可。如果這樣還不行的話(huà),參與到在線(xiàn)論壇中與其他人討論(這時(shí)你需要更努力地尋找高質(zhì)量的討論內容)。
6. 教會(huì )別人。相對于僅僅讀代碼之類(lèi)的工作,教其他人學(xué)習可以讓你更深入地學(xué)習某個(gè)技術(shù),這種方法有著(zhù)非凡的效果。教會(huì )別人某個(gè)技術(shù),同樣也會(huì )讓你更專(zhuān)注于這種技術(shù),并且可以比別人更深層次地理解它。同樣你也會(huì )面對一些問(wèn)題。
“如果你不能向一個(gè)六歲的兒童解析清楚一個(gè)概念,那么其實(shí)是你并沒(méi)有完全理解它。”Albert Einstein說(shuō)。
教學(xué)場(chǎng)景可以是無(wú)窮無(wú)盡的:與工作搭檔一對一交流,休息碰面,非正式周會(huì ),學(xué)習茶會(huì ),教室,討論發(fā)表會(huì ),等等。每周在相同理念開(kāi)發(fā)者之間舉辦一次30分鐘的非正式會(huì )議怎么樣?每周,讓幾個(gè)人來(lái)就他們想要更深入了解話(huà)題,向大家傳授這些技術(shù)知識,并且展開(kāi)討論。如果你知道你將要向團隊成員們傳授正學(xué)學(xué)習的知識,你是不是更想要了解這項技術(shù)的每個(gè)細節呢?
6. 收聽(tīng)網(wǎng)絡(luò )電臺。如果你有空閑的時(shí)間,可以訂閱網(wǎng)絡(luò )電臺節目。我現在最喜歡的編程節目就是 .Net Rocks。這個(gè)節目還會(huì )做一些視頻節目,叫做 dnrTV 。這樣會(huì )讓你即時(shí)捕捉到最新最好的技術(shù)。一個(gè)人是不能學(xué)習到所有知識的,而網(wǎng)絡(luò )電臺剛是一個(gè)學(xué)習了解廣泛知識的途徑。
7. 閱讀博客。博客遠遠比閱讀者要多,但是其中有一些卻是極其優(yōu)秀的。我這里不并不是要推薦博客,因為網(wǎng)絡(luò )上已經(jīng)有了足夠多的博客。這是與真正在開(kāi)發(fā)你所喜歡和使用的軟件的開(kāi)者聯(lián)系的好方法。
8. 學(xué)習新的語(yǔ)言。即使你已經(jīng)在 C(++,#) / JAVA 等語(yǔ)言上有很好的造詣,仍然有很多其他可以解決問(wèn)題的編程語(yǔ)言。學(xué)習新的語(yǔ)言,是對你已有思維方式的挑戰。這不僅僅是另一種語(yǔ)言,更是對思維的重新架構。的確,所有的語(yǔ)言最后都會(huì )被編譯成匯編程序,但是這并不意味著(zhù)高級語(yǔ)言毫無(wú)價(jià)值。
9. 學(xué)習不正確的方式。除了要學(xué)習應該怎么做,還要學(xué)習不應該怎么做。經(jīng)常閱讀 Dailywtf.com ,學(xué)習你并不知道的經(jīng)驗與教訓。學(xué)習適當的面向對象設計方式,代碼寫(xiě)作方式,和必須要寫(xiě)的代碼等,是很好的方式,但是如果不細心的話(huà)也容易養成不良習慣。學(xué)習認識不正確的思路是負責
維基百科對很多覺(jué)的不正確方式有十分透徹的分類(lèi)。
10. 要謙虛。
學(xué)習,意味著(zhù):
只有承認自己有所不足,才能有學(xué)習的動(dòng)力。歸根到底,就是謙虛,不對嗎?如果你開(kāi)始認為你已經(jīng)掌握了所有需要的知識,那么你就危險了。真正的學(xué)習是如饑似渴地追逐知識并使其內在化,這需要很大的努力。我們都知道這一點(diǎn),但是要必須時(shí)常不斷地提醒自己。
聯(lián)系客服