程序員學(xué)習(xí)能力提升三要素
IT技術(shù)的發(fā)展日新月異,新技術(shù)層出不窮,具有良好的學(xué)習(xí)能力,能及時獲取新知識、隨時補充和豐富自己,已成為程序員職業(yè)發(fā)展的核心競爭力。本文中,作者結(jié)合多年的學(xué)習(xí)經(jīng)驗總結(jié)出了提高程序員學(xué)習(xí)能力的三個要點。
眾所周知,現(xiàn)在是一個知識爆炸的時代,知識更新非常快。據(jù)測算,一個大學(xué)畢業(yè)生所學(xué)到的知識,在畢業(yè)之后2年內(nèi),有效的不過剩下5%。對于軟件行業(yè)而言,這種形勢更為明顯,我們賴以立足的,不在于我們現(xiàn)在掌握了多少知識,而是我們有多強的學(xué)習(xí)能力。
學(xué)習(xí)人人都會,但不同的人學(xué)習(xí)效果卻千差萬別。一個善于學(xué)習(xí)的人,首先應(yīng)該是一個善于讀書的人,懂得如何高效地學(xué)習(xí),并且擁有良好的心態(tài)。唯有如此,才能成為一個卓有成效的學(xué)習(xí)者,成就卓越的程序人生。
要善于讀書買書是最劃算的投資
古人云:“書中自有黃金屋,書中自有顏如玉。”這說明先賢們早認(rèn)識到,買書是最劃算的投資。
我剛出道時,拿著非常微薄的工資。有一次向主管抱怨道:“現(xiàn)在的書真貴啊,這點工資連飯都吃不起,更別說買書了!”主管對我說:“不要吝惜買書的錢,寧可忍著不吃飯,也不要忍著不買書,因為買書是回報率最高的投資。”
主管的話讓我非常震動。后來,我看到喜歡的書時,再也沒有手軟過。通過不斷學(xué)習(xí),我的開發(fā)能力不斷提高,工資水平也大幅提高。一年后,我一個月工資的漲幅,就足夠買兩年的書了。你說,還有比這更劃算的投資嗎?
一本書,哪怕只有一頁紙是有用的,它所將產(chǎn)生的潛在價值,也會遠(yuǎn)遠(yuǎn)超過書本身的價格。當(dāng)然,書不在多,踏踏實實消化掉一本好書,比泛泛而讀10本普通書,要有價值得多。
多讀經(jīng)典書
現(xiàn)在市面上給程序員讀的書種類非常豐富。人生有涯,我們只能有選擇性地看,要多看好書、多看經(jīng)典書。
軟件開發(fā)方面的圖書大致分為三類。
1. 淺顯的入門類圖書。這類書的標(biāo)題往往是《XX天精通XXX》、《XXX從入門到精通》、《XX開發(fā)實戰(zhàn)》等,通常從軟件的安裝講起。有人批評這類書為爛 書、毫無價值,這并不公平。至少我曾經(jīng)從這些書中學(xué)到了一些東西。即使是21天系列書,也有適合看的人群。只不過,它一般也就只能看21天而已,過后就可 以扔到廢紙堆。這類書只適于還沒有入門的初學(xué)者,從中學(xué)到一些入門招式。在剛起步時一般買一本就夠了。如果你善于使用搜索引擎,那幾乎沒有買這類書的必 要。
2. 國內(nèi)外高手寫的實戰(zhàn)類圖書。這類書實戰(zhàn)性很強,將技術(shù)及原理講得很透徹。比如《Windows環(huán)境下32位匯編語言程序設(shè)計》、《深入解析MFC》、 《Delphi深度探索》、《深入淺出WPF》、《深入剖析ASP .NET組件設(shè)計》等。以前這類書都是從國外翻譯或從臺灣引進(jìn)的,現(xiàn)在國內(nèi)高手越來越多,出自國內(nèi)作者的圖書也越來越多。如果能在學(xué)習(xí)的每個方向看兩三本 這類圖書,并通過實踐消化掉,那么毫無疑問,你會成為一名優(yōu)秀的程序員。
3. 國外大牛寫的揭露本質(zhì)、有豐富思想的書。這類書就是所謂的經(jīng)典書,例如《代碼大全》、《編程珠璣》、《設(shè)計模式》、《重構(gòu)》、《代碼整潔之道》等。經(jīng)典書 就像一個有深度、有思想的朋友,能給你啟發(fā),每次閱讀都會有新的收獲,這類書具有真正的收藏價值。看經(jīng)典書永遠(yuǎn)是正確的選擇,它絕不會浪費你的時間,因為 經(jīng)典書是無數(shù)人沙里淘金、幫你挑選出的結(jié)果。
然而,閱讀這類書并不是一件容易的事情。讀者需要有豐富的開發(fā)經(jīng)驗,才能與作者產(chǎn)生共鳴。如果一本經(jīng)典書你看得很辛苦,那么很有可能是因為你功力未夠,這種情況下不要著急,慢點來,不妨先將其束之高閣,多看看實戰(zhàn)類圖書。過一段時間再回頭來看,也許你會有新的驚喜。
不要在上班時間看書
一個善于學(xué)習(xí)的人,首先要善于利用一切時間來學(xué)習(xí)。雷鋒曾說過:“時間就像海綿里的水,只要愿意擠,總還是有的。”然而,當(dāng)我們從上班時間中擠時間學(xué)習(xí)時,就千萬要注意了,不要在上班時間看書!
上班時間看書,不但是一件很敏感的事情,而且非常吸引眼球,很快就會引起周遭的不爽。首先老板心里不爽:“我給你錢是讓你來工作的,不是來學(xué)習(xí)的”;其次同事們也不爽:“我們工作都做不完,瞧,這小子真閑啊”。用不了多久,你就會成為被眾人排斥的異類,這最終會讓你自己“很受傷”。
要高效學(xué)習(xí)只學(xué)習(xí)與工作相關(guān)的東西
我曾發(fā)現(xiàn)不少程序員在學(xué)習(xí)方面找不到方向,一會兒學(xué)學(xué)C#,一會兒學(xué)學(xué)Java,看了最新的編程語言排行榜,又覺得該學(xué)C++。這樣左抓抓,右撓撓,只會讓你覺得更癢。
學(xué)習(xí)最忌三心二意。俗話說:“傷其十指不如斷其一指”,每門都學(xué)一點,還不如專心學(xué)好一個方向。這個道理誰都懂,可是又該學(xué)哪個方向呢?難道只能跟著感覺走嗎?不!最實際的方向,應(yīng)該跟著工作走,工作需要什么,我們就學(xué)什么,把工作需要的技能熟練掌握,有很多好處。
首先,可以集中精力,在某一方面鉆研得更加深入。所謂“百招會不如一招絕”,有了絕招,你還怕不能在“武林”立足嗎?《天龍八部》中的慕容復(fù)武功博學(xué)無比,最后還不是被只會一招六脈神劍的段譽打得落花流水?
其次,可以學(xué)得更快、更深入,因為學(xué)習(xí)更具有針對性,而且可以立即在工作中運用,可以馬上檢驗出學(xué)習(xí)的效果。對存在的問題進(jìn)行深入研究,掌握的知識也會更加牢固。
再次,學(xué)習(xí)與工作結(jié)合在一起,工作時間也就成了學(xué)習(xí)時間,這樣就突破了三個8小時的限制:有人說,我們每天所擁有的時間可以分為三個8小時,工作8小時,睡覺8小時,另外還有8小時可以自己自由支配。工作和睡覺的兩個8小時大家都一樣,決定人生高度的是另外這個8小時。當(dāng)我們把學(xué)習(xí)的焦點放到與工作相關(guān)的知識上時,工作時間中的很大一部分,同時也就成了寶貴的學(xué)習(xí)時間,這真是一舉兩得的美事啊。
問題是最好的學(xué)習(xí)機會
日本經(jīng)營之神松下幸之助曾說過:“工作就是不斷發(fā)現(xiàn)問題、分析問題、最終解決問題的過程,晉升之門將永遠(yuǎn)為那些隨時解決問題的人敞開著。”可見,工作過程中有問題是正常,沒有問題才是真正的問題。在發(fā)生問題時,能勇于面對問題、解決問題的人,才是公司真正的骨干。
現(xiàn)實中,很多人總是千方百計回避問題。當(dāng)上司安排一項艱巨的任務(wù)時,也想盡辦法推托。殊不知,對于個人而言,問題其實是最好的學(xué)習(xí)機會。往往那些愿意接受困難工作的人,能力會越來越強,那就是因為他們在克服困難的過程中取得了巨大的進(jìn)步。
織網(wǎng)式學(xué)習(xí)
知識的廣度和深度都很重要。作為一名程序員,能深入把握技術(shù)細(xì)節(jié),是寫出優(yōu)質(zhì)代碼的保證。但對于一名項目經(jīng)理而言,知識的廣度更顯重要。項目中碰到的問題往 往具有綜合性,只有具備廣博的知識,才能快速對問題進(jìn)行分析和定位。在程序員成長的道路上,我們必須有意識地擴大自己的知識面,形成更完善的知識體系。
我曾經(jīng)編寫過一個網(wǎng)絡(luò)信息采集軟件,這個軟件可以從具有列表頁的網(wǎng)站中按字段設(shè)置采集信息,支持自定義字段、頁面多級關(guān)聯(lián)、下載附件、支持多種數(shù)據(jù)庫、可視 化定義等特性。剛開始,我認(rèn)為這個軟件只是一個比較大的功能點而已,后來發(fā)現(xiàn)這個不起眼的功能關(guān)聯(lián)著大量的知識點(如下圖所示)。
在開發(fā)過程中,我順藤摸瓜,逐個擊破,對很多知識點進(jìn)行了細(xì)致的學(xué)習(xí)研究。軟件開發(fā)完成后,我的知識體系網(wǎng)也進(jìn)一步得到了補充和完善。
經(jīng)常思考總結(jié)
子曰:“學(xué)而不思則罔”。人只學(xué)習(xí)不思考,就會迷惑,難以把握事情的本質(zhì)。這就好比一個學(xué)武之人,只習(xí)得其形,而未得其神,難以成為真正的高手。
從入門到成為高手的過程中,程序員往往要經(jīng)過幾次頓悟。記得有一次,我領(lǐng)悟到了一個很簡單的結(jié)論:“原來高級編程語言中的類庫是封裝了Windows API來實現(xiàn)的。”后來碰到一些自帶類庫無法實現(xiàn)的功能時,我就會想到,其實可以通過調(diào)用Windows API來實現(xiàn)。利用這個思路,我解決了一些看起來很難的問題,得到老板的賞識,從而很快獲得提升。
頓悟非常可貴,然而它不是隨便發(fā)生的,而是經(jīng)過一次次苦苦思索之后、靈光閃現(xiàn)的結(jié)果。思考的過程,其實就是將外在知識內(nèi)化為自己的知識的過程。而頓悟,則批量實現(xiàn)這種內(nèi)化,將無數(shù)個知識點連接在一起,達(dá)到融會貫通的境界。
克服“高原現(xiàn)象”
愛學(xué)習(xí)的人都會有這樣的經(jīng)歷:學(xué)習(xí)持續(xù)了一段時間之后,往往會有一個瓶頸期,長時間似乎都沒有什么進(jìn)步,于是內(nèi)心非常著急。
這種情況,實際上是由人的學(xué)習(xí)規(guī)律決定的一種“高原現(xiàn)象”。據(jù)研究,學(xué)習(xí)者在剛開始進(jìn)步快,隨后有一個明顯的或長或短的進(jìn)步停頓期,后期進(jìn)步慢,中間的停頓期叫高原期(如下圖所示)。
高原期,實質(zhì)是一個消化期。由于前期的學(xué)習(xí)積累了太多的知識點,這些知識點在大腦中亂作一團,還沒有形成一個知識體系。這時需要一定的時間來消化它,讓它融會貫通,經(jīng)常思考總結(jié)可以快速幫你跨過高原期。
處于高原期時,還可以換一個相關(guān)的方向來學(xué)習(xí)。例如,編程語言學(xué)不下去了,可以學(xué)習(xí)一下設(shè)計模式,設(shè)計模式也學(xué)不下去了,再換成數(shù)據(jù)庫。通過學(xué)習(xí)這些相關(guān)的知識,不但補齊了知識體系中的短板,而且各個知識點之間可以互相啟發(fā),幫助你實現(xiàn)頓悟,跨過高原期。
要有好心態(tài)學(xué)習(xí)要靜心
急于求成是學(xué)習(xí)過程中普遍存在的一種心態(tài),這可以理解。畢竟作為一名程序員,要學(xué)的東西實在太多,而社會又是那樣的浮躁,讓人覺得一切都是那樣的不安全、不確定,似乎只有學(xué)得快一點,才能跟上社會的腳步。
可是“欲速則不達(dá)”,想快快地學(xué),往往會形成東一榔頭、西一棒槌的學(xué)習(xí)方式,每一個點都沒有吃透。心沉不下去,知識也會沉不下去。要想成為真正的高手,只能靜下心,一步一個腳印慢慢來。
學(xué)習(xí)是持續(xù)一生的過程
人生,就是一個自我完善過程。
子曰:“吾十有五而志于學(xué),三十而立,四十而不惑,五十而知天命,六十而耳順,七十而從心所欲,不逾矩。”可見孔子也不是天生的圣人,也在不停地學(xué)習(xí)、進(jìn)步,從“志于學(xué)”到“從心所欲,不逾矩”,孔子一共花了55年的時間。
作為一名程序員,更需要不斷豐富自己的知識庫。我們所知道的東西,就像一個白色的圓圈,圈外則是黑暗的未知的世界。當(dāng)圓圈越大,所接觸到的黑暗部分就越多。我們只有不停地學(xué)習(xí),才能打破更多的黑暗,找到更多光明。
保持饑餓,保持愚蠢
我非常喜歡喬布斯的一句話:“求知若饑,虛心若愚”(Stay Hungry,Stay Foolish)。其實我更喜歡它更原生態(tài)的翻譯“保持饑餓,保持愚蠢”。我們只有認(rèn)識到自己還很饑餓和愚蠢,才會像沒吃飽一樣,由衷地需要學(xué)習(xí)、愛上學(xué)習(xí)。
作者尹華山,資深軟件工程師,現(xiàn)從事IT項目管理工作,擁有PMP認(rèn)證、信息系統(tǒng)項目管理師認(rèn)證、系統(tǒng)集成高級項目經(jīng)理認(rèn)證。
相關(guān)文章:
1. Google Adsense西聯(lián)匯款領(lǐng)取方式與流程,親身實踐2. Hello World 程序的起源與歷史3. SEO優(yōu)化反向鏈接(Back-Links)的四大原則4. 程序員保值的五個關(guān)鍵點5. Papi醬首次直播的八大平臺是哪些 打賞90萬服不服6. 百度、360、搜狗、神馬搜索份額多少?2018中國搜索引擎排行7. 程序員應(yīng)該正確面對的8個錯覺8. 網(wǎng)站里的圖片怎么優(yōu)化?淺談網(wǎng)站優(yōu)化之圖片優(yōu)化三步驟9. 做好微信公眾號運營怎么能缺少這些幫手10. 網(wǎng)站優(yōu)化中搜索框如何設(shè)計?網(wǎng)站建設(shè)搜索框設(shè)計技巧和功能