從程式設計師到專案經理(5):程式設計師加油站,不是人人都懂的學習要點

發表於2012-10-23

來源:西西吹雪

學習是一種基礎性的能力。然而,“吾生也有涯,而知也無涯。”,如果學習不注意方法,則會“以有涯隨無涯,殆矣”。

一.學習也是一種能力

看到這個標題,有人會說:“學習,誰不會?”的確,學習就像吃飯睡覺一樣,是人的一種本能,人人都有學習的能力。我們在剛出生的時候,什麼也不知道,是一張真正的白紙,我們靠學習的本能,學會了走路、說話、穿衣服…後來,我們上學了,老師把書本上的知識一點一點灌輸到我們的腦子裡,我們掌握的知識越來越多,與此同時,我們學習能力卻好像越來越差了,習慣了被別人餵飽,似乎忘記了怎麼來喂自己了。

學習本來只是一種本能,算不上什麼能力,然而,經過二十多年的不斷學習,學習反而成為了一種真正的能力,因為我們慢慢失去了它,它就更顯得珍貴。

在學校裡我們基本上被動式學習,然而走出了象牙塔之後,不會再有人對你負責,不會有人主動教你,我們需要主動的學習。所謂的學習能力,其實就是自主學習的能力。

幾年前,曾有一本風靡管理界的書,叫《第五項修煉》,這本書倡導建立學習型組織,因為從長遠來看,一個組織唯一可持續的競爭優秀,就是比競爭對手更快更好的學習能力。

一個公司如此,一個人又何嘗不是如此?眾所周知現在是一個知識爆炸的時候代,知識更新非常快。據說,一個大學畢業生所學習到的知識,在畢業之後的2年內,有效的不過剩下5%,更何況我們的學校與社會需要嚴重脫軌。我們賴以立足的,不在於我們現在掌握了多少知識,而是我們有多強的學習能力

學習不但是一種能力,而且是一種至關重要的能力,而這種能力的核心,就是學習的方法和心態。

 

二.買書是最划算的投資

古人云:“書中自有黃金屋,書中自的顏如玉。”這說明先賢們早就認識到,買書是最划算的投資了。

當我剛出道的時候,拿著非常微薄的工資,有一次我向主管抱怨道:“現在的書真貴啊,這點工資連飯都吃不起,更別說買書了!”主管對我說:“不要吝惜買書的錢,寧可忍著不吃飯,也不要忍著不買書,因為買書是回報率的最高的投資了。”

主管的話讓我非常震動。後來,我看到喜歡的書時,再有沒有手軟過。我不斷的學習,開發能力也不斷的提高,工資水平也獲得了大幅度的提高。一年後,我一個月工資的漲幅,就足夠買兩年的書了。你說,還有比這更划算的投資嗎?

一本書,哪怕只有一頁紙是有用的,它將所產生的潛在價值,也會遠遠超過書本身的價格。當然,書不在多,能踏踏實實消化掉一本好書,可能比泛泛而讀10本普通書,要更有價值得多。

 

三.多讀經典書

十年前,我剛進入IT行業的時候,真是求知渴,每星期都要往購書中心跑,可惜的是,那時給程式設計師看的書不像現在這麼多,高質量的書就更少了。當時我印象中比較經典的書籍就是《Windows程式設計》、《COM本質論》、《Java程式設計思想》,還有就是譚浩強的《C語言程式設計》。其它充斥書架的,就是類似於《21天精通XXX》、《XXX從入門到精通》、《XX寶典》這樣的書籍。

回首往昔,令我比較鬱悶的一件事就是在我最有學習動力的時候,看的高質量的書籍太少,就好像是在長身體的時候,天天吃的是沒營養的泡麵。當然,這跟沒有人指導也有很大的關係,獨自一個人學習,讓我走了很多的彎路。

 

軟體開發方面的書籍,我大致將其分為三類:

(1)淺顯的入門類書籍。

這類書的標題往往是《XX天精通XXX》、《XXX從入門到精通》、《XX開發實戰》等,這類書往往從軟體的安裝講起,喜歡翻譯幫助檔案。有人批評這類書為爛書、毫無價值,這並不公平。至少我本人,也曾從這些書中學到一些東西。即使是21天系列書,也有適合看的人群,只不過,它一般也就只能看21天而已,過後就可以扔到垃圾堆。這類書只適於還沒有入門的初學者,從中學到一些入門的招式。這種書在剛起步的時候一般買上一本就可以了。如果你善於使用搜尋引擎,這一本書也可以省了。

(2)國內外高手寫的實戰類書籍。

這類書實戰性很強,把技術及原理講得很透徹。比如《windows環境下32位組合語言程式設計》、《深入解析MFC》、《Delphi深度探索》、《深入淺出WPF》、《深入剖析Asp.net元件設計》等。以前這類書都是從國外翻譯或從臺灣引進,現在國內高手越來越多,出自國內作者的也越來越多。這類書如果在你學習的每個方向看個兩三本,並且通過實踐消化掉,那麼毫無疑問,你會成為一個優秀的程式設計師。

(3)國外大牛寫的、揭露本質、有豐富思想的書。

這類書就是所謂的經典書了,例如《程式碼大全》、《程式設計珠璣》、《設計模式》、《重構》、《程式碼整潔之道》等。經典書就像一個有深度、有思想的朋友,他會給你啟發、每次閱讀都會有新的收穫,這類書具有真正的收藏價值。看經典書永遠是正確的選擇,它絕不會浪費你的時間,因為經典書是無數人沙裡淘金、幫你挑選過的結果。

然而,閱讀這類書並不是一件容易的事情,讀者需要有豐富的開發經驗,才能與作者產生共鳴。真正能消化經典書的人其實不多,這就好像飲酒,一個新手無論如何也品不出葡萄美酒的醇香。在酒桌上,人人都把杯中酒一飲而盡,當有人點評“這個酒不錯”的時候,我只能無奈的苦笑一番,真的是甘苦自知。

如果一本經典書你看得很辛苦,很有可能就是因為你功力未夠,這種情況下不要著急,慢點來,不妨先將其先束之高閣,多看看第二類實戰型書籍,過一段時間再回頭來看,也許你會有新的驚喜。

 

(伯樂線上補充推薦:→國外程式設計師推薦:每個程式設計師都應讀的書) 

 

四.不要在上班時間看書

一個善於學習的人,首先要善於利用一切時間來學習。不知是偉大的雷鋒叔叔還是魯迅爺爺曾經說過:“時間就像海綿裡的水,只要願擠,總還是有的。”然而,當我們從上班時間中擠時間學習時,就千萬要注意了,不要在上班時間看書!

上班時間看書不但是一件很敏感的事情,而且非常吸引眼球,很快就會引起周遭的不爽。首先老闆心裡不爽,他想:“我給你錢是讓你來工作的,不是來學習的!”;其次同事們也不爽:“我們工作都做不完,瞧,這小子真閒哪!”用不了多久,你就會成為被眾人排斥的異類。

當然,你可能會說,“我工作已經做完了,經理沒有安排,當然可以學習了”,其實不然。你完成了一件事情,不等於所有的事情都完成了。一個優秀的員工,應該是主動要工作,而不是被動的等工作。工作完成以後,你至少還可以:

(1)主動彙報給你的經理,請他來檢查你的成果,並安排新的任務;

(2)如果公司這一段時間確實比較閒,沒有什麼具體的任務,可以進行程式碼重構、優化;

(3)你還可以主動請纓,承擔額外的工作或更艱鉅的任務。

(4)如果一定要學習,也只能對著電腦螢幕來學習,紙質書最多隻能拿來翻閱一下,而不能一直捧著,以免影響到其他人的情緒。

 

五、只學習與工作相關的東西

我曾發現不少程式設計師在學習方面找不到方向,一會學學C#,一會學學Java,看了最新的程式語言排行榜,又覺得該學C++。這樣左抓抓,右撓撓,只會讓你覺得更癢。

學習最忌三心二意。俗話說:“傷其十指不如斷其一指”,每門都學一點,還不如專心學好一個方向。這個道理誰都懂,可是又該學哪個方向呢?難道只能跟著感覺走嗎?

不!最實際的方向,應該跟著工作走,工作需要什麼,我們就學什麼,把工作需要的技能熟練掌握。我們為什麼要學習和工作弱相關的東西呢?是為了轉行或跳槽嗎?可是,如果我們連現在本職工作都不能做好,又怎麼能保證到新的崗位、用新學的技能就可以做得更好呢?

學習與工作需要的的東西,有很多好處:

首先,可以集中精力,在某一方面鑽研得更加深入。所謂“百招會不如一招絕”,有了絕招,你還怕不能在“武林”立足嗎?《天龍八部》中的慕容復武功博學無比,最後還不是被只會一招六脈神劍的段譽打得落花流水?

其次,可以學得更快、更深入,因為學習更具有針對性,而且可以立即在工作中運用,可以馬上檢驗出學習的效果,對存在的問題可以進行深入的研究,因此掌握的知識也會更加的牢固。

第三,學習與工作結合在一起,工作時間也就成了學習時間,這樣突破了三個8小的限制。有人說,我們每天所有擁有的時間可以分為三個8小時,工作8小時,睡覺8小時,另外還有8小時自己可以自由支配的時間。工作和睡覺的兩個8小時大家都一樣,決定人生高度的是另外這個8小時。當我們把學習的焦點放到與工作相關的知識上時,工作時間中的很大一部分,同時也就成了寶貴的學習時間,這真是一舉兩得的美事啊。

 

六.織網式的學習

知識的廣度和深度都很重要。作為一個程式設計師,深入把握技術細節,是寫出優質程式碼的保證。但對於一個專案經理而言,知識的廣度更顯重要。專案中碰到的問題往往是綜合性的,只有具有廣博的知識,才能快速的對問題進行分析和定位。在程式設計師通往專案經理的道路上,我們必須有意識的擴大自己的知識面,形成更完善的知識體系。

每個人的知識體系就好比是一張網,我們學習其實就是要織這樣一張網。 我曾看過漁網的編織過程,漁網雖大,也是一個結點起步,一個點一個點的編出來的,編織的過程中,始終只有一根主線。

學習又何嘗不是這樣,知識體系的大網也是由許多小的結點組成,要結這樣一張網,只能由一個點起步。牽住一條主線,織出一個個的點,由點帶出面,最後才能形成這張大網。

我曾經編寫過一個網路資訊採集軟體,這個軟體可以從具有列表頁網站中按欄位設定採集資訊,支援自定義欄位、頁面多級關聯、下載附件、支援多種資料庫、視覺化定義等特性。剛開始時,覺得這個軟體也是一個比較大的功能點而已,後來發現這個不起眼的功能關聯著大量的知識點,在開發過程中, 我順藤摸瓜,各個擊破,對很多知識點進行了細緻的學習研究,軟體開發完成後,個人的知識體系網也進一步得到了補充和完善。

從程式設計師到專案經理(5):程式設計師加油站,不是人人都懂的學習要點

圖1 由知識點形成知識網

 

七.問題是最好的學習機會

日本經營之神松下幸之助曾經說過:“工作就是不斷發現問題、分析問題、最終解決問題的一個過程,晉升之門將永遠為那些隨時解決問題的人敞開著。”可見,工作過程中有問題是正常,沒有問題那才是真正的問題。在發生問題能時,能勇於面對問題、解決問題的人,才是公司真正的核心骨幹。

現實中,很多人總是千方百計迴避問題,當上司安排一項艱鉅的任務時,也是想盡辦法推託。殊不知,對於個人而言,其實問題是最好的學習機會。往往那些願意接受困難工作的人,能力會變得越來越強,那就是因為他們在克服困難的過程中取得了巨大的進步。

有一次,一位專案經理對我說:“有一個問題,客戶有一臺HP伺服器要裝磁碟陣列,沒人會做,怎麼辦啊?”“可以學啊,沒有人願意去嗎?”“我都問了,沒人想去。”“哦,正好明天我有時間,我也沒裝過磁碟陣列,那我明天去學著弄一下。”我說的是真心話。第二天早上,當我準備出發時,專案經理告訴我不用我去了,因為專案組好幾個同事都想去“學著弄一下”。結果伺服器很快就裝好了,遠遠沒有之前大家想像的那麼困難嘛。更重要的是,在解決這個問題的過程中,大家都學會了怎麼裝磁碟陣列。

碰到困難時,迎難而上吧,千萬不要拒絕這個最好的學習機會!

 

八.經常思考總結

子曰:“學而不思則罔”。只學習不思考,就會迷惑,難以把握事情的本質。這就好比一個學武之人,只習得其形,而未得其神,難以成為真正的高手。

一個程式設計師從入門,到成為高手的過程中,往往要經過幾次頓悟。頓悟會讓你跳出知識的叢林,一切豁然開朗,彷彿打通了全身的奇經八脈一般奇妙。記得我有一次,頓悟到了一個很簡單的結論:“原來高階程式語言中的類庫是封裝了Windows API來實現的。”後來碰到一些自帶類庫無法實現的功能時,我就會想到,其實可以通過呼叫Windows API來實現。利用這個思路,我解決了一些看起來很難的問題,得到老闆的賞識,從而很快獲得提升。

頓悟非常可貴,然而它不是隨便發生的,而是經過一次次苦苦思索之後、靈光閃現的結果。思考的過程,其實就是將外在的知識內化為自己的知識的過程,而頓悟,則是批量的實現這種內化,將無數個知識點連線在一起,達到融會貫通的境界。

 

九、克服“高原現象”

愛學習的人都會有這樣的經歷,學習持續了一段時間之後,往往會有一個瓶頸期,長時間似乎很久沒有什麼進步,於是內心非常著急。

這種情況實際上這是由人的學習規律決定的一種“高原現象”。據研究,學習者在剛開始進步快,隨後有一個明顯的或長或短的進步停頓期,後期進步慢,中間的停頓期叫高原期。

從程式設計師到專案經理(5):程式設計師加油站,不是人人都懂的學習要點

圖2 技能學習練習曲線

在我看來,高原期實質是一個消化期,由於前期的學習積累了太多的知識點,這些知識點在大腦中亂作一團,還沒有形成一個知識體系。這時需要一定的時間來消化它,將它融會貫通,經常思考總結可以快速幫你跨過高原期。

在處於高原期的時候,還可以換一個相關的方向來學習,例如程式語言學不下去了,你可以學習一下設計模式,設計模式也學不下去了,再換成資料庫。通過學習這些相關的知識,不但補齊了知識體系中的短板,而且各個知識點之間可以互相啟發,幫助你實現頓悟,跨過高原期。

 

十、學習要有好心態

(1)學習要靜心

急於求成是學習過程中普遍存在的一種心態。這可以理解,畢竟作為一個程式設計師,要學的東西實在太多了,而社會又是那樣的浮躁,讓人覺得一切都是那樣的不安全、不確定,似乎只有學得快一點,才能跟上社會的腳步。

可是“欲速則不達”,想快快的學,往往會形成東一榔頭、西一棒槌的學習方式,每一個點都沒有吃透。心沉不下去,知識也會沉不下去。要想成為真正的高手,只能靜下心來,一步一個腳印的攀登。

(2)學習是一個持續一生的過程

人生的過程,就是一個自我完善過程。

孔子曾經說:“吾十有五而志於學,三十而立,四十而不惑,五十而知天命,六十而耳順,七十而從心所欲,不逾矩。”可見孔子也不是天生的聖人,也在不停的學習、進步,從“志於學”到最後“從心所欲,不逾矩”,孔子一共花了55年的時間。

作為一個程式設計師,更是需要不斷更新自己的知識。我們所知道的東西,就像一個白色的圓圈,圈外則是黑暗的未知的世界。當圓圈越大,所接觸到的黑暗部分就越多。我們只有不停的學習,打破更多的黑暗,找到更多光明。

(3)保持飢餓,保持愚蠢

看了《賈伯斯傳》之後,我最喜歡的一句話是“求知若飢,虛心若愚”(Stay Hungry,Stay Foolish),其實我更喜歡它更原生態的翻譯“保持飢餓,保持愚蠢”。我們只有認識到自己還很飢餓和愚蠢,才會像沒吃飽一樣,由衷的需要學習、愛上學習。

當然,知易行難,知行合一才是學習的最高境界。我也始終是一個學習者,一直在路上。

 

相關文章