葉丙成
日前有一位大二同學(xué)跟我約喝咖啡聊天。這位同學(xué)是位相當(dāng)聰明優(yōu)秀的學(xué)生。在臺(tái)大讀了一年半之后,對(duì)于學(xué)習(xí),有些想法也有些疑問(wèn),所以找我聊。當(dāng)中聊到了一個(gè)問(wèn)題。他問(wèn)我系上安排的這些課,以后到底有什么用?有些好像修了以后也不見(jiàn)得用到。如果是這樣,那何必要他們花時(shí)間修?
是啊,這似乎是很多同學(xué)在修課、念書時(shí)會(huì)產(chǎn)生的疑問(wèn):“我念這個(gè)到底有什么用?”特別是在期末考前熬夜念不完時(shí),這謎之聲便不停地在腦海中反復(fù)出現(xiàn),仿佛是“臺(tái)科兄弟”的旋律,久久揮之不去。
一個(gè)課有什么用,確實(shí)是很重要的問(wèn)題。在我以前寫過(guò)的一篇故事中。我的教學(xué)啟蒙老師耶哥教授來(lái)臺(tái)演講時(shí),便對(duì)大家耳提面命:“老師最重要的工作就是要讓學(xué)生知道修這個(gè)課有什么用。學(xué)生知道之后,才會(huì)有動(dòng)機(jī)學(xué)習(xí)。”
所以讓學(xué)生知道修這個(gè)課有什么用,是老師們的義務(wù)。不過(guò),這樣的問(wèn)題,每個(gè)人都會(huì)有很主觀的看法。老師的看法并不見(jiàn)得是唯一的面相。特別是老師屬于專業(yè)的人士,他們的看法有時(shí)候會(huì)比較偏重在專業(yè)面而不夠全面。同學(xué)們除了聽(tīng)老師的說(shuō)法外,也還是應(yīng)該要靠自己來(lái)發(fā)掘。在學(xué)習(xí)的過(guò)程中,慢慢體悟你學(xué)到了什么,并深入思考你學(xué)到的東西對(duì)你的未來(lái)究竟有何意義?
乍聽(tīng)起來(lái),好像摸不著頭緒,對(duì)吧?這邊我給大家一個(gè)例子。“計(jì)算器程序”,是許多系所的必修或選修課程。修“計(jì)算器程序”到底有什么用呢?直覺(jué)的答案是:“學(xué)了之后就會(huì)寫程序了”“會(huì)寫C/C++程序以后才能修下一個(gè)XX課”“學(xué)會(huì)了之后在業(yè)界比較好找工作”。這些答案對(duì)不對(duì)?都對(duì)。但是學(xué)寫程序的用處就僅僅是這樣嗎?
寫過(guò)程序的人都知道,寫程序最痛苦的,就是要抓蟲(debug)。所謂的“蟲”,指的就是自己寫的程序代碼中的錯(cuò)誤。只要有蟲沒(méi)抓完,程序就無(wú)法正常運(yùn)作。可是我們寫的程序,往往有成千、甚至上萬(wàn)行的程序代碼。一旦程序無(wú)法運(yùn)作,要如何知道蟲兒們到底躲在哪些地方呢?特別是程序?qū)懙貌缓玫娜耍绦虼a往往都是寫成一大沱,main() 函數(shù)總是寫的特別肥大。一旦程序出錯(cuò),實(shí)在很難抓到蟲。有道是:“只在此沱中,沱深不知處。”
程序課程最重要的訓(xùn)練,就是要大家學(xué)會(huì)抓蟲的功夫。為了抓蟲,寫程序不能再寫成一大沱,而是要學(xué)著把程序的功能切割成一個(gè)個(gè)獨(dú)立的小模塊,分別寫出程序代碼。最后再把所有的小模塊串起來(lái)完成程序。由于這些獨(dú)立的小模塊的功能都被不是很復(fù)雜,程序代碼的行數(shù)也不是那么多,所以每個(gè)小模塊運(yùn)作正常與否可以很容易的測(cè)試出來(lái)。相較于一大沱的程序來(lái)說(shuō),要抓蟲就容易多了。舉例來(lái)說(shuō),如果有幾只螞蟻跑到一個(gè)餅干甕中,要找到所有的螞蟻會(huì)很困難。但如果餅干當(dāng)初是被分包成一小包一小包,那我們可以每包個(gè)別檢視。要抓到所有的螞蟻,就不是那么困難了!
講到這邊,修過(guò)程序課的人可能都覺(jué)得我在說(shuō)廢話,這些大家早就知道了。不過(guò),大家可不要輕忽了這程序課所訓(xùn)練出來(lái)的抓蟲心法。這心法可不是只有寫程序或電路設(shè)計(jì)才有用的,到處都有用!舉例來(lái)說(shuō),如果你以后在職場(chǎng)上當(dāng)了某個(gè)團(tuán)隊(duì)的主管。這團(tuán)隊(duì)每次執(zhí)行項(xiàng)目都會(huì)失敗,可是老是找不到癥結(jié)出在哪個(gè)人身上。當(dāng)一個(gè)工作有十個(gè)人一起合作時(shí),誰(shuí)擺爛導(dǎo)致工作失敗,實(shí)在很難看得出來(lái)。但是如果把工作切割成小塊,分別分配給不同人作。這時(shí)候誰(shuí)擺爛,只要看各小塊的工作成果便一目了然。 你說(shuō)抓蟲心法對(duì)你有沒(méi)有用?
所謂的抓蟲心法,其實(shí)就是訓(xùn)練你在出狀況的時(shí)候,可以快速的區(qū)隔、進(jìn)而找出所有出錯(cuò)點(diǎn)的能力。這樣的功夫在你的未來(lái),不管是管人、管事、管物,都非常有用。可是很多人并沒(méi)有這樣的體悟,只把程序課定位成純粹專業(yè)的課程,實(shí)在很可惜。
我另外還可以再舉一個(gè)例子。我在臺(tái)大所開(kāi)的簡(jiǎn)報(bào)課程,我們一直強(qiáng)調(diào)一個(gè)精神:“要了解你的觀眾,再?gòu)挠^眾的角度出發(fā)去審視你的簡(jiǎn)報(bào)”。這個(gè)精神,是只有作簡(jiǎn)報(bào)有用嗎?不是的,這樣的精神在寫文章、寫論文,甚至開(kāi)發(fā)產(chǎn)品上都是很有用的。
以開(kāi)發(fā)產(chǎn)品為例,開(kāi)發(fā)者一定要先做市場(chǎng)調(diào)查,了解消費(fèi)者,接著再?gòu)氖褂谜叩慕嵌瘸霭l(fā)去審視自己的產(chǎn)品功能。唯有這樣,才有可能做出消費(fèi)者覺(jué)得很棒的產(chǎn)品。你看,這樣的精神,跟我們簡(jiǎn)報(bào)課要傳達(dá)的精神,是不是完全符合呢?
所以同學(xué)們,當(dāng)你們?cè)谛拚n的時(shí)候,除了問(wèn)老師外,自己也可以多花點(diǎn)心思來(lái)思考究竟這課程對(duì)你的未來(lái)有什么用。老師的答案或許會(huì)比較局限在專業(yè)的思考之中,但是你們的思考可以更全面、更有突破性。不要只注重在修課所學(xué)到的“知識(shí)”有什么用,多花點(diǎn)時(shí)間思考你學(xué)到了什么樣的“心法”,而這個(gè)“心法”對(duì)你的未來(lái)人生有什么用?
一旦找到了屬于你自己的答案,恭喜你,你也晉升高手之列了!