技術(shù)與學(xué)習(xí)
有關(guān)于10種學(xué)習(xí)新技術(shù)的方法 要看書(shū)。在成千上萬(wàn)的編程圖書(shū)中,可能很大一部分根本毫無(wú)用處哼鬓。但是仍然有很多圖書(shū)對(duì)你的(編程)能力有很大的提升。我一直堅(jiān)持边灭,相比在網(wǎng)絡(luò)上查找很多有用信息异希,在同類(lèi)圖書(shū)中查找要來(lái)得更容易更快捷。閱讀技術(shù)圖書(shū)可心更好地抓住核心內(nèi)容绒瘦。對(duì)于理論称簿,架構(gòu)和設(shè)計(jì)等方面來(lái)說(shuō),圖書(shū)也一樣很有幫助惰帽。只不過(guò)要找到高質(zhì)量的憨降、權(quán)威的信息,就不如網(wǎng)絡(luò)上可供查找的范圍廣该酗。 2. 讀代碼授药。這也是我很喜歡的一種方式。如果我并沒(méi)有幾年的專(zhuān)業(yè)編程工作經(jīng)驗(yàn)呜魄,在學(xué)習(xí)之初我并不會(huì)去讀很多復(fù)雜的代碼悔叽。如果我要是早些開(kāi)始學(xué)習(xí),我將是一個(gè)比現(xiàn)在更好的程序員爵嗅。但是娇澎,開(kāi)始時(shí)我會(huì)從一些開(kāi)源項(xiàng)目里,去學(xué)習(xí)那些源代碼(當(dāng)然操骡,這些代碼不能與我的工作有關(guān)九火,也不是我自己寫(xiě)的)赚窃。要從自己會(huì)使用到的,或者自己感興趣的程序開(kāi)始這項(xiàng)工作岔激。我是從 Paint.net 這個(gè)網(wǎng)站里開(kāi)始學(xué)習(xí)的勒极,而且已經(jīng)積累了很多關(guān)于 .NET 的編程技術(shù)。 讀別人的代碼可以為你提供更多不同的工作思路虑鼎,這比你完全憑自己思考得到的工作方式要多辱匿。 3. 寫(xiě)代碼。謹(jǐn)記炫彩,要寫(xiě)大量的代碼匾七。從根本上來(lái)講,最好的學(xué)習(xí)方法就是實(shí)踐江兢。如果不寫(xiě)代碼昨忆,你根本不能把(某種語(yǔ)言中)內(nèi)在的東西學(xué)習(xí)透徹。學(xué)習(xí)之初杉允,可以從一些技術(shù)指南和圖書(shū)中照搬一些盡量簡(jiǎn)單的程序邑贴。當(dāng)然,這種照搬是要自己完全手工輸入叔磷,而不是復(fù)制和粘貼拢驾,這兩種之間的效果差別是很大的。這種方法的主旨就在于改基,使知識(shí)內(nèi)在化繁疤,并思考其用法,而不是盲目照抄秕狰。學(xué)習(xí)過(guò)程中稠腊,要時(shí)常查找新的 API 調(diào)用方法,這其實(shí)是簡(jiǎn)單的事情鸣哀。 最重要的是麻养,要寫(xiě)一個(gè)你自己的程序,不管它是一個(gè)簡(jiǎn)單的游戲诺舔,或者是一個(gè)參與開(kāi)源項(xiàng)目的程序,還是一個(gè)公為你自己使用的簡(jiǎn)單插件备畦。用不同的方式來(lái)寫(xiě)程序低飒,盡量嘗試使用新的技術(shù),新的技巧懂盐,新的設(shè)計(jì)方式褥赊。一定要讓現(xiàn)在的項(xiàng)目比以往的項(xiàng)目更好。想要成一個(gè)優(yōu)秀的開(kāi)發(fā)者莉恼,這一點(diǎn)是核心拌喉。 4. 與其他開(kāi)發(fā)者交流速那。像 Apple,微軟尿背,Google 等大公司一樣的新聞描述的一樣端仰,(與其他開(kāi)發(fā)者交流)可以讓你解決一些復(fù)雜的問(wèn)題。雖然這并不能讓你感覺(jué)到自己已經(jīng)成一個(gè)團(tuán)隊(duì)或是社區(qū)的成員田藐,但是這種方法可以讓你接觸到更多不同的想法荔烧。 不同類(lèi)型的項(xiàng)目要求不同的設(shè)計(jì)方法,代碼技術(shù)汽久,開(kāi)發(fā)流程和設(shè)計(jì)思想鹤竭。如果你工作在一個(gè)小團(tuán)隊(duì)里,你不必與太多的人接觸景醇,只要在用戶群會(huì)議中找到一些人(來(lái)討論)即可臀稚。如果這樣還不行的話,參與到在線論壇中與其他人討論(這時(shí)你需要更努力地尋找高質(zhì)量的討論內(nèi)容)三痰。 6. 教會(huì)別人吧寺。相對(duì)于僅僅讀代碼之類(lèi)的工作,教其他人學(xué)習(xí)可以讓你更深入地學(xué)習(xí)某個(gè)技術(shù)酒觅,這種方法有著非凡的效果撮执。教會(huì)別人某個(gè)技術(shù),同樣也會(huì)讓你更專(zhuān)注于這種技術(shù)舷丹,并且可以比別人更深層次地理解它抒钱。同樣你也會(huì)面對(duì)一些問(wèn)題。 “如果你不能向一個(gè)六歲的兒童解析清楚一個(gè)概念颜凯,那么其實(shí)是你并沒(méi)有完全理解它谋币。”Albert Einstein說(shuō)症概。 教學(xué)場(chǎng)景可以是無(wú)窮無(wú)盡的:與工作搭檔一對(duì)一交流蕾额,休息碰面,非正式周會(huì)彼城,學(xué)習(xí)茶會(huì)诅蝶,教室,討論發(fā)表會(huì)募壕,等等调炬。每周在相同理念開(kāi)發(fā)者之間舉辦一次30分鐘的非正式會(huì)議怎么樣?每周舱馅,讓幾個(gè)人來(lái)就他們想要更深入了解話題缰泡,向大家傳授這些技術(shù)知識(shí),并且展開(kāi)討論代嗤。如果你知道你將要向團(tuán)隊(duì)成員們傳授正學(xué)學(xué)習(xí)的知識(shí)棘钞,你是不是更想要了解這項(xiàng)技術(shù)的每個(gè)細(xì)節(jié)呢缠借? 6. 收聽(tīng)網(wǎng)絡(luò)電臺(tái)。如果你有空閑的時(shí)間宜猜,可以訂閱網(wǎng)絡(luò)電臺(tái)節(jié)目泼返。我現(xiàn)在最喜歡的編程節(jié)目就是 .Net Rocks。這個(gè)節(jié)目還會(huì)做一些視頻節(jié)目宝恶,叫做 dnrTV 符隙。這樣會(huì)讓你即時(shí)捕捉到最新最好的技術(shù)。一個(gè)人是不能學(xué)習(xí)到所有知識(shí)的垫毙,而網(wǎng)絡(luò)電臺(tái)剛是一個(gè)學(xué)習(xí)了解廣泛知識(shí)的途徑霹疫。 7. 閱讀博客。博客遠(yuǎn)遠(yuǎn)比閱讀者要多综芥,但是其中有一些卻是極其優(yōu)秀的丽蝎。我這里不并不是要推薦博客,因?yàn)榫W(wǎng)絡(luò)上已經(jīng)有了足夠多的博客膀藐。這是與真正在開(kāi)發(fā)你所喜歡和使用的軟件的開(kāi)者聯(lián)系的好方法屠阻。 8. 學(xué)習(xí)新的語(yǔ)言。即使你已經(jīng)在 C(++,#) / JAVA 等語(yǔ)言上有很好的造詣额各,仍然有很多其他可以解決問(wèn)題的編程語(yǔ)言国觉。學(xué)習(xí)新的語(yǔ)言,是對(duì)你已有思維方式的挑戰(zhàn)虾啦。這不僅僅是另一種語(yǔ)言麻诀,更是對(duì)思維的重新架構(gòu)。的確傲醉,所有的語(yǔ)言最后都會(huì)被編譯成匯編程序蝇闭,但是這并不意味著高級(jí)語(yǔ)言毫無(wú)價(jià)值。 9. 學(xué)習(xí)不正確的方式硬毕。除了要學(xué)習(xí)應(yīng)該怎么做呻引,還要學(xué)習(xí)不應(yīng)該怎么做。經(jīng)常閱讀 Dailywtf.com 吐咳,學(xué)習(xí)你并不知道的經(jīng)驗(yàn)與教訓(xùn)逻悠。學(xué)習(xí)適當(dāng)?shù)拿嫦驅(qū)ο笤O(shè)計(jì)方式,代碼寫(xiě)作方式韭脊,和必須要寫(xiě)的代碼等蹂风,是很好的方式,但是如果不細(xì)心的話也容易養(yǎng)成不良習(xí)慣乾蓬。學(xué)習(xí)認(rèn)識(shí)不正確的思路是負(fù)責(zé)項(xiàng)目開(kāi)發(fā)至關(guān)重要的一環(huán)。 維基百科對(duì)很多覺(jué)的不正確方式有十分透徹的分類(lèi)慎恒。 10. 要謙虛任内。