然而世事難料,在2009年高考剛剛結(jié)束之際,中國(guó)權(quán)威出版機(jī)構(gòu)社會(huì)科學(xué)文獻(xiàn)出版社于2009年6月10日發(fā)布首部《中國(guó)大學(xué)畢業(yè)生就業(yè)報(bào)告(2009)》,其中“計(jì)算機(jī)專(zhuān)業(yè)”榮登 “就業(yè)最困難的十大專(zhuān)業(yè)”光榮榜。
大約從2003年開(kāi)始,我在北京理工大學(xué)這所211、985重點(diǎn)大學(xué)開(kāi)設(shè).NET課程,這件事后來(lái)給某些人“炮轟”——說(shuō)我要將重點(diǎn)大學(xué)學(xué)生培養(yǎng)成IT民工,也曾有技術(shù)牛人諄諄教誨年青學(xué)生——想學(xué)軟件,離金某人遠(yuǎn)些……
“程序員”何時(shí)變成了“IT民工”?
僅僅十多年,“程序員”就從“精英”淪落為“民工”,這也未免太戲劇性了吧!
在中國(guó),不少程序員都是“CRUD”程序員,這不能怪他們,因?yàn)橹袊?guó)多數(shù)項(xiàng)目都是CRUD的。所以,CRUD似乎成為了“IT民工”身上的標(biāo)簽,問(wèn)題是CRUD這活真的象在建筑工地上倒水泥一樣,不需要太高的智商和較多的訓(xùn)練?
下面分析一下需要從事這個(gè)CRUD的工作的程序員,到底需要哪些知識(shí)和技能。
我大致地思索了一下,畫(huà)了以下這個(gè)圖,展示出一名 “.NET程序員民工”要順利參與一個(gè)CRUD的數(shù)據(jù)庫(kù)應(yīng)用項(xiàng)目開(kāi)發(fā)所大致需要掌握的知識(shí)與技能:
說(shuō)句實(shí)話,這個(gè)圖雖然“掛一漏萬(wàn)”,但列出來(lái)的知識(shí)點(diǎn)與需要掌握的技能之 多已經(jīng)很“恐怖”了,對(duì)于一個(gè)需要掌握這么多知識(shí)與技術(shù)才能勝任與干好的工作,非要認(rèn)為它是一個(gè)“低級(jí)”的 “民工”就可以干的活,想必持這種觀點(diǎn)的人一定知識(shí)豐富如汪洋大海,屬“白骨精(白領(lǐng)-骨干-精英)”一族。
需要掌握這么多的知識(shí),才有資格當(dāng)一名合格的“CRUD”程序員,“IT民工”的“門(mén)檻”其實(shí)挺高的,不是嗎?
事實(shí)也如此,軟件開(kāi)發(fā)行業(yè)從業(yè)人員的平均學(xué)歷我估計(jì)至少是大專(zhuān),很可能是“本科”,其中固然有一些只有“高中”甚至更低學(xué)歷的“奇才”,但這僅是少數(shù),而且這些人,雖然學(xué)歷低,但絕不會(huì)是一個(gè)低智商的人。這說(shuō)明軟件開(kāi)發(fā)行業(yè)從業(yè)者的“平均智商”應(yīng)該是挺高的。
我在旅美學(xué)者薛涌寫(xiě)的《天才是訓(xùn)練出來(lái)的》一書(shū)中找到了美國(guó)的一些統(tǒng)計(jì)數(shù)據(jù):
美國(guó)大學(xué)本科生的中等智商為118,學(xué)士學(xué)位獲得者的中等智商為123,優(yōu)秀畢業(yè)生的中等智商為133,物理學(xué)博士的平均智商為140。而在一般的人口中,中等智商為100。也就是說(shuō),你的智商如低于100分,你就屬于偏笨的人,高于此線,就屬于偏聰明的了。
國(guó)外依據(jù)數(shù)據(jù)得出結(jié)論:要把書(shū)讀懂讀好,智商還真的得達(dá)到一定的水準(zhǔn)。所以,能上大學(xué)并且順利拿到學(xué)位的人,基本上是屬于比較聰明的那一批人。
我們中國(guó)也有類(lèi)似的觀點(diǎn),比如經(jīng)?梢月(tīng)到某家長(zhǎng)嘆息其小孩子成績(jī)不好:我家的那個(gè)小祖宗,看來(lái)根本就不是讀書(shū)的那塊料!套用老外的觀點(diǎn),就是說(shuō)這個(gè)小孩可能智商達(dá)不到上大學(xué)的基本要求。老外什么都喜歡數(shù)字化,所以動(dòng)不動(dòng)就來(lái)個(gè)什么“智商”測(cè)試,而中國(guó)雖然不講智商這一套,但其實(shí)高考就可以看成是一次智商測(cè)試。在80、90年代,那時(shí)的大 學(xué)生,經(jīng)常都是百里挑一、幾十里挑一,記得89年我參加高考,那年我們省的錄取率還是十幾取一。所以那個(gè)時(shí)代的大學(xué)生被稱(chēng)為“天之?huà)勺印,并非“空穴?lái) 風(fēng)”。
重大的變化發(fā)生于1999年,從這一年開(kāi)始中國(guó)大學(xué)開(kāi)始擴(kuò)招,尤其是計(jì)算機(jī)專(zhuān)業(yè),更是擴(kuò)招的重點(diǎn),其規(guī)模迅速膨脹,錄取率大大地提高,其結(jié)果是,用一句打趣的話說(shuō),“阿貓阿狗都去讀大學(xué)了”,中國(guó)大學(xué)沒(méi)有做智商測(cè)試的制度,不然,我想應(yīng)該會(huì)看到21世紀(jì)在校大學(xué)生的平均智商比上世紀(jì)80、90年代的在校大 學(xué)生的平均智商要低。但擴(kuò)招對(duì)一些歷史悠久聲譽(yù)良好的重點(diǎn)大學(xué)的影響就沒(méi)那么大,因?yàn)椴还苣阍趺磾U(kuò)招,能進(jìn)名校(比如北大清華)的學(xué)生,智商是不會(huì)低的, 因?yàn)槠淙雽W(xué)競(jìng)爭(zhēng)仍然十分激烈,各方面差一點(diǎn)的根本就沒(méi)這個(gè)機(jī)會(huì)。
國(guó)外還給出了一些著名科學(xué)家的智商:牛頓190,伽利略195,開(kāi)普勒175,達(dá)爾文165,哥白尼160。
現(xiàn)在回到軟件開(kāi)發(fā)這個(gè)行業(yè),其從業(yè)者平均學(xué)歷為大專(zhuān)以上,應(yīng)該說(shuō)明這個(gè)行業(yè)需要的是整個(gè)人群中比較聰明的那一批。
這個(gè)觀點(diǎn)與我的實(shí)際感受是一致的。
我在IT業(yè)“混”了十多年,深感這個(gè)行業(yè)牛人輩出,別說(shuō)這個(gè)行業(yè)的“頂尖”級(jí)別人物,就是在許多普通的IT企業(yè)、科研院所中,也有不少的讓人佩服的牛人。 我在北理工教了8年書(shū),“笨”的學(xué)生實(shí)在沒(méi)見(jiàn)著,而不少學(xué)生的聰明程度和學(xué)習(xí)能力等,都比我在他們這個(gè)年紀(jì)時(shí)要強(qiáng)得多,還有一些學(xué)生,真的很聰明,悟性 好,能舉一反三,在技術(shù)上沒(méi)多久就可以跑到我前面去了。
所以,軟件開(kāi)發(fā)應(yīng)該是一個(gè)需要有較高智商的行業(yè),我覺(jué)得不會(huì)有太大疑義。
中國(guó)人有句俗話:三百六十行,行行出狀元。這些“狀元”的出身并不重要,但他們應(yīng)該接近100%的都有高的智商。
你能成為軟件天才嗎?
在整個(gè)計(jì)算機(jī)領(lǐng)域,有一些老外的名字如雷貫耳:馮諾依曼,圖靈,比爾蓋茨、Anders Hejlsberg,在中國(guó),諸如“求伯君”、“柳傳志”、“李開(kāi)復(fù)”等名人的故事也是眾人皆知,雖然我們拿不到其智商測(cè)試的分?jǐn)?shù),但相信他們個(gè)個(gè)都是聰明人。
“高智商”其實(shí)是成為“天才”的必要條件。相應(yīng)的另一個(gè)結(jié)論就是:普通人再怎么努力,也成不了天才。
天才在各自領(lǐng)域內(nèi)所達(dá)到的高度,大多數(shù)普通人是永遠(yuǎn)達(dá)不到的,比如如果有某人告訴我:你只要努力,就可以比Anders Hejlsberg還牛。我一定會(huì)認(rèn)為他在開(kāi)一個(gè)讓我很生氣的玩笑。
個(gè)體間智商的差異是客觀存在的。但成為不了天才不能成為躺倒不干的理由。因?yàn)檫@里有一個(gè)引發(fā)了巨大爭(zhēng)論的問(wèn)題。
智商重要還是努力重要?
國(guó)外心理學(xué)的統(tǒng)計(jì)數(shù)據(jù)明確無(wú)誤地說(shuō)明了智商的重要性,但這里有一個(gè)問(wèn)題:就算是具有“天才”淺質(zhì)的人在總?cè)藛T的比例很少,但人類(lèi)有數(shù)十億之多,“天才”應(yīng)該不少?怎么數(shù)千年來(lái),公認(rèn) “天才”的就是牛頓等那幾個(gè)?
1973年,諾貝爾經(jīng)濟(jì)學(xué)獎(jiǎng)得主、人工智能研究的開(kāi)拓者Herbert Simon和William Chase在研究國(guó)際象棋大師的成長(zhǎng)規(guī)律時(shí)發(fā)現(xiàn):再大的天才,也需要10年修煉成器。
音樂(lè)天才莫扎特似乎打破了這個(gè)“十年定律”。5歲做曲,10歲登臺(tái)演出,一生創(chuàng)作了數(shù)百部傳世之作。盡管如此,西方學(xué)者們還是發(fā)現(xiàn),莫扎特6歲時(shí)就已經(jīng)和 父親一起訓(xùn)練了3500個(gè)小時(shí),他第一部達(dá)到大師水平的作品,創(chuàng)作年紀(jì)是21歲,實(shí)際上已經(jīng)經(jīng)歷了18年的嚴(yán)格訓(xùn)練。
聰明的腦瓜是必要的,但僅有它也是不夠的。
我引用了這么多的資料,其實(shí)只為了說(shuō)明一個(gè)結(jié)果:不經(jīng)“十年寒窗”,“天才”不可能出來(lái)。本身具有高智商的人是這樣,在平均智商上下的人更應(yīng)該努力。
現(xiàn)在很好解釋當(dāng)下的一些現(xiàn)象了:
1. “程序員”為何是“IT民工”?因?yàn)檫@些所謂的“程序員”本身就沒(méi)有具備從事軟件開(kāi)發(fā)的基本知識(shí)與基本技能,加上人數(shù)眾多,可替換性強(qiáng),怎么會(huì)不成為“IT民工”?
2. 計(jì)算機(jī)專(zhuān)業(yè)學(xué)生為何就業(yè)難?很簡(jiǎn)單,一個(gè)計(jì)算機(jī)專(zhuān)業(yè)本科生,四年下來(lái)至少應(yīng)該有4~6萬(wàn)行的代碼量,但就我觀察,達(dá)到這個(gè)要求的不到10%。
盡管軟件開(kāi)發(fā)行業(yè)需要較高的智商,但在平均學(xué)歷為本科的軟件開(kāi)發(fā)行業(yè),從業(yè)者已經(jīng)過(guò)高考的篩選,智商并不是問(wèn)題關(guān)鍵,之所以“IT民工”多和計(jì)算機(jī)專(zhuān)業(yè)學(xué)生就業(yè)難,主要問(wèn)題是“懶”和“訓(xùn)練不得法”。
下圖是我總結(jié)的一個(gè)靠技術(shù)吃飯的“程序員”知識(shí)與能力增長(zhǎng)路線圖:
這個(gè)圖不是針對(duì)“天才”設(shè)計(jì)的,而是針對(duì)一個(gè)普通的計(jì)算機(jī)專(zhuān)業(yè)大學(xué)生可能的主要人生經(jīng)歷繪制的,雖然經(jīng)過(guò)了大量的簡(jiǎn)化,但主線還是很清楚的。
我成不了天才,那成為“人材”,可以嗎?
我們需要解決的問(wèn)題是“如何努力”的問(wèn)題。
薛涌先生在書(shū)中介紹了一種名為“處心積慮的訓(xùn)練(deliberation practice)”的天才訓(xùn)練方法,這種方法是由天才研究的權(quán)威人士Ericsson教授提出的,簡(jiǎn)稱(chēng)為“深練(deep practice)”,其意思是一般人練得淺,水平自然平庸,天才則練得深,所以能超出凡人之上。
普通人如果能科學(xué)地深練,雖然不能成為天才,但成為“半個(gè)”天才是完全可能的。
有關(guān)“深練”的介紹,朋友們可以自行去看《天才是訓(xùn)練出來(lái)的》這本書(shū)。就我多年自學(xué)軟件技術(shù)和8年的教學(xué)經(jīng)驗(yàn),我并不覺(jué)得“深練”有何奇特之處,我將“深練”總結(jié)為以下幾句話:
1. 織網(wǎng):分解軟件技術(shù)的大塊知識(shí)為多個(gè)小的知識(shí)點(diǎn),各個(gè)擊破,將新知識(shí)與老知識(shí)聯(lián)系起來(lái),構(gòu)造一張完整的可動(dòng)態(tài)擴(kuò)充的知識(shí)之網(wǎng)
2. 訓(xùn)練:將開(kāi)發(fā)技能給拆分為多個(gè)小的步驟或子技能,針對(duì)每個(gè)步驟或子技能反復(fù)地嚴(yán)格地訓(xùn)練,然后再這些步驟或子技能組合起來(lái),以達(dá)到職業(yè)的水準(zhǔn)。
3. 探究性的學(xué)習(xí)與實(shí)踐:要將被動(dòng)的學(xué)習(xí)轉(zhuǎn)換為主動(dòng)的探索,要通過(guò)開(kāi)發(fā)實(shí)踐把一切給“激活”。