我是一名初級(jí)程序員,工作一年多。還記得剛畢業(yè),踏入社會(huì)的時(shí)候,面臨著很多工作上尷尬和困惑。首當(dāng)其沖的便是在學(xué)校學(xué)的知識(shí)并不夠用,甚至并不管用。于是學(xué)習(xí)新技術(shù)成了重點(diǎn)解決的問題。其實(shí)IT行業(yè)推陳出新的速度是很快的,學(xué)習(xí)新技術(shù)并不是初級(jí)程序員獨(dú)有的問題,但是他們的處境是更為困難的,缺乏經(jīng)驗(yàn)和指導(dǎo),如何邁出第一步,如何篩選信息,如何深入學(xué)習(xí)都是擺在我們前面的一道道題目。下面就我的經(jīng)驗(yàn)來談?wù)劤绦騿T學(xué)習(xí)的策略吧。
1.明確目標(biāo)。
首先在學(xué)習(xí)之前要設(shè)定明確的學(xué)習(xí)目標(biāo)。什么是明確的目標(biāo)呢,例如工作的項(xiàng)目需要你能熟練的編寫javascript,那么你的目標(biāo)很明確,就是學(xué)習(xí)javascript。如果目標(biāo)設(shè)定為網(wǎng)頁(yè)前端技術(shù),那么這個(gè)目標(biāo)是很模糊的,因?yàn)橐环N技術(shù)是有很多的具體的實(shí)現(xiàn)方法,所用的具體技術(shù)也大有不同。你還需要對(duì)目標(biāo)作進(jìn)一步的細(xì)化,一定要具體到一門語(yǔ)言或一種解決方案。當(dāng)然你目標(biāo)設(shè)定的前提肯定是要用在工作上,如果學(xué)的技術(shù)不能用在生產(chǎn)上,那么你學(xué)習(xí)的東西是沒有意義,時(shí)間也浪費(fèi)了,你還不能確定你掌握到了什么程度。如果你無(wú)法明確自己的目標(biāo),可以看第2點(diǎn)。
2.廣泛涉獵,淺嘗輒止。
如果你對(duì)一個(gè)領(lǐng)域一無(wú)所知,無(wú)法設(shè)定具體的目標(biāo),那么你是遇到了技術(shù)選型的問題。很多時(shí)候,我們第一反應(yīng)是使用搜索引擎。搜索的確是很方便,但是搜索的信息量會(huì)把你淹沒。所以有技巧地篩選信息很重要。我的經(jīng)驗(yàn)是使用廣度優(yōu)先的方法,例如google“網(wǎng)頁(yè)前端技術(shù)”,你會(huì)找到很多關(guān)鍵詞Ajax,jquery,javascript,css,xhtml等等。這時(shí)候先把這些關(guān)鍵詞記錄下來,作第二次的篩選。對(duì)于名詞的搜索,可以考慮使用維基百科,這個(gè)階段你要找到相關(guān)技術(shù)的著名社區(qū)或者是官方網(wǎng)站,往往這些地方可以提供最有價(jià)值的信息和入門教程。
當(dāng)你找到了一些入門的教程或者了解到了這個(gè)領(lǐng)域的一些基本情況,就可以開始“淺嘗輒止”的學(xué)習(xí)了。例如利用一兩天的時(shí)間運(yùn)行入門教程的例子,了解技術(shù)的特點(diǎn)和長(zhǎng)處。但是千萬(wàn)不要輕易地深入學(xué)習(xí),深入學(xué)習(xí)是需要付出巨大的學(xué)習(xí)成本(時(shí)間,精力)的。所以淺嘗輒止是一個(gè)很好的策略,當(dāng)你嘗完所有的技術(shù)入門,可以對(duì)比出這些技術(shù)的特點(diǎn),局限性,穩(wěn)定性,學(xué)習(xí)的成本。對(duì)比自己的實(shí)際情況,你的目標(biāo)也應(yīng)該明確了,可以選擇深入學(xué)習(xí)的技術(shù)。
3.興趣所在,學(xué)為所用。
選擇技術(shù)深入學(xué)習(xí),最好要符合你自己的興趣,那樣你的學(xué)習(xí)效率會(huì)比較高,至少你會(huì)比較主動(dòng)地去學(xué)。如果你對(duì)這門技術(shù)心存排斥,你是無(wú)法掌握它的。但是很多時(shí)候并沒有那么完美的事,如果你是迫于工作需要才去學(xué),那么你就要控制深入的程度了。有一家公司叫37signals,他們公司生產(chǎn)軟件的宗旨是滿足客戶的最小需求,不提供那些客戶可能根本不會(huì)使用的功能。我們也可以借鑒這樣的宗旨,學(xué)技術(shù),夠用就行了,等到不夠用的時(shí)候再去補(bǔ)。
很多初學(xué)者可能會(huì)墜入一個(gè)誤區(qū),認(rèn)為一項(xiàng)技術(shù)過時(shí)了,便又去追求一項(xiàng)新的技術(shù)。其實(shí)技術(shù)的“新與舊”只會(huì)在那些軟件廠商的廣告或者書籍里有區(qū)分,在我看來,技術(shù)只有能不能滿足工作需要之分。想想多數(shù)的牛人其實(shí)都只能擅長(zhǎng)一個(gè)領(lǐng)域或一種技術(shù),廣泛應(yīng)用于金融行業(yè)的COBOL語(yǔ)言比現(xiàn)在99%的程序員都要老。
4.欲善其事,先利其器。
日常的學(xué)習(xí)會(huì)用到很多的工具,例如瀏覽器,搜索引擎,開發(fā)工具等等,掌握使用工具的技巧可以更加高效地學(xué)習(xí)。很多程序員習(xí)慣一遇到問題就直接google,百度,可能在翻了好幾頁(yè)都找不到解決方法。搜索引擎通常都有高級(jí)的API,在關(guān)鍵字后面加上“site:m.tkk7.com",你就能在blogjava站內(nèi)搜索問題。一個(gè)在海里撈魚,一個(gè)在魚排撈魚,哪個(gè)容易?搜素引擎是屠龍刀還是水果刀,那也取決于你會(huì)不會(huì)用。
還有一個(gè)工具是英語(yǔ),可能是很多程序員的老大難。我的意見是不會(huì)聽說,至少要會(huì)讀寫。延續(xù)上面的例子,有些問題在g.cn和baidu.com搜不到,翻譯成英文就可以在google.com里搜到。
磨刀不誤砍柴工,亙古不變的道理。
5.戒驕戒躁,虛心嚴(yán)謹(jǐn)。
這一條可能無(wú)關(guān)學(xué)習(xí)策略,不過是一種學(xué)習(xí)態(tài)度。
我的建議是,浮躁者,少看新聞,少交流,多看歷史和文學(xué)。驕縱者,多看新聞,多交流,少孤芳自賞。
虛心,程序員都應(yīng)該要有的品質(zhì),無(wú)須多講。但是嚴(yán)謹(jǐn)可能是很多程序員都沒有的,想想你工作的時(shí)候說過多少次“可能”,“應(yīng)該”,“人品問題”。你可能認(rèn)為那是一種習(xí)慣,但是你也會(huì)習(xí)慣失去別人的信任。
程序員的一生其實(shí)可短暫了,這電腦一開一關(guān),一天過去了,嚎;電腦一開不關(guān),那就成服務(wù)器了,嚎……