“嘖嘖,之前只聽蔡老師說(shuō)他是自學(xué)成才的,沒想到居然是這么自學(xué)成才的?!?p> “被拐賣到國(guó)外當(dāng)黑戶,不僅沒有自甘墮落,到處流浪,反而學(xué)了一身本事回國(guó)了,太牛逼了!”
“原來(lái)是在RB自學(xué)的,難怪這么厲害,RB條件那么好,我去了說(shuō)不定比他更厲害?!?p> “你偷渡過去試試,一個(gè)星期沒餓死就算你厲害!”
陳志揚(yáng)用左手拿著麥克風(fēng),右手平舉,向杜秋做了個(gè)邀請(qǐng)的姿勢(shì),同時(shí)說(shuō)了幾句畫龍點(diǎn)睛的總結(jié)詞:“天行健,君子以自強(qiáng)不息,杜秋自立自強(qiáng),自尊自愛的品格,非常值得你們學(xué)習(xí)!下面請(qǐng)他上臺(tái)為大家做演講,鼓掌歡迎?!?p> 杜秋本科畢業(yè)之后參加工作的時(shí)候,公司研發(fā)部每個(gè)星期都要搞一次內(nèi)部技術(shù)演講,讓員工輪流上臺(tái)主講,兩年下來(lái)講了不下10次,早就歷練出來(lái)了,再加上有穿越黨的自信光環(huán)加成,一點(diǎn)都不緊張,好整以暇的調(diào)戲了姜丹楓一句之后,起身走上了講臺(tái)。
他穿了一件藍(lán)色細(xì)條紋的長(zhǎng)袖襯衫,外面罩著杜春華織的鐵灰色小背心,身材頎長(zhǎng),氣度從容,如松如竹,傲然挺直,上臺(tái)一亮相,立刻又引起了一陣掌聲,其中還夾雜著一些男學(xué)生的喝彩聲,至于女同學(xué)嘛,太少了,總共只有二十幾個(gè),勢(shì)單力薄,人輕言微,就算喝彩了也聽不見。
站在大廳最后一排幫忙維持秩序的張棟梁一邊鼓掌,一邊對(duì)肖家霖說(shuō)道:“確實(shí)像明星。”
“什么?大聲點(diǎn)?!?p> “早上你說(shuō)杜秋很有魅力,像個(gè)電影明星,確實(shí)像!”
陳志揚(yáng)沒有急著下去,而是很親近的和杜秋肩并肩站在一起,享受學(xué)生們熱情的掌聲,等掌聲停下來(lái)之后,他拿起麥克風(fēng),繼續(xù)爆料道:“除了自立自強(qiáng)之外,我還希望你們能學(xué)習(xí)他虛懷若谷,待人以誠(chéng)的品格,說(shuō)出來(lái)你們可能不信,這次演講的門票,也就是你們拿的記事本封套,上面的每一個(gè)字,都是杜秋一筆一劃親手寫的……”
“哇哦!這么漂亮的字是他自己寫的?”
“這個(gè)小伙子不簡(jiǎn)單,不僅自學(xué)了編程,連書法也寫的這么好,也不知道老陳是從哪里找出來(lái)的?!?p> “侯老師,您看這字寫的怎么樣?”
“書法我不懂,不過二十幾歲的年輕人能寫出這樣的字,很難得?!?p> 陳志揚(yáng)感覺場(chǎng)面預(yù)熱的差不多了,這才把麥克風(fēng)交給杜秋,以長(zhǎng)輩提攜晚輩的姿態(tài),輕輕拍了拍他的后背,叮囑道:“好好講,放松講,不要緊張?!?p> “我會(huì)的?!?p> 杜秋走到講臺(tái)中央,站在擺著筆記本電腦的多媒體臺(tái)子前,準(zhǔn)備進(jìn)行技術(shù)演講,在打開PPT文檔之前,他撇清道:“陳校長(zhǎng)過譽(yù)了,我并沒有什么值得學(xué)習(xí)的優(yōu)良品質(zhì),只不過是吃飽了,穿暖了之后,做了一些自己感興趣的東西,本質(zhì)上和那些遛鳥斗雞的紈绔沒什么區(qū)別,所以大家不要幻想別人的艱難困苦來(lái)感動(dòng)自己,沒有意義,也很無(wú)聊?!?p> 2016年的時(shí)候雞湯文泛濫成災(zāi),所以反感的人很多,但1995年正是《心靈雞湯》剛剛開始流行的時(shí)代,這番話不僅不合時(shí)宜,還有些離經(jīng)叛道,一下子把陳志揚(yáng)剛才烘托起來(lái)的熱烈氣氛給打消了,大廳里出現(xiàn)了一陣嗡嗡嗡的議論聲。
杜秋視若無(wú)睹,繼續(xù)說(shuō)道:“在演講之前,我要申明三件事。第一,禁止鼓掌和喧嘩,但可以在不影響他人的情況下小聲交流;第二,如果有問題,要先舉手,我同意了之后再提問;第三,有事情或者不想聽了,可以從前門或者后門離開,離開的時(shí)候不要打擾他人即可?!?p> 他環(huán)視了一圈大廳,停了幾秒種,等交頭接耳的議論聲音消失了之后,自顧自的點(diǎn)了點(diǎn)頭,說(shuō)道:“既然大家都不反對(duì),那么我開始了。”
“開源軟件是我提出來(lái)的一種概念,陳校長(zhǎng)邀請(qǐng)我來(lái)給大家講解一些有關(guān)的知識(shí),我很榮幸,也很感謝他的提攜和支持……有關(guān)開源軟件的定義和協(xié)議之類的內(nèi)容比較枯燥,如果大家有興趣的話,等演講結(jié)束之后,可以去蔡老師那里領(lǐng)一份打印好的宣傳冊(cè),自己拿回去看,因此就不多贅述了。”
“在座的各位要么是學(xué)生,要么是老師,所以我今天主要跟大家談一談開源軟件在教學(xué)方面的好處?!?p> 杜秋點(diǎn)開了第一張PPT,在背后的幕布上投影出宣傳海報(bào)上的那段代碼,說(shuō)道:“這段代碼是國(guó)內(nèi)很多C語(yǔ)言教科書中的標(biāo)準(zhǔn)答案,然而它存在時(shí)間復(fù)雜度的問題,在實(shí)際軟件開發(fā)中絕對(duì)不可能使用,你們參加工作了之后,如果敢寫這樣的代碼,要么被老板打死,要么被顧客罵死……”
大廳里發(fā)出零星的笑聲,杜秋沒有理會(huì),繼續(xù)說(shuō)道:“但是你們?cè)趯W(xué)習(xí)的時(shí)候,有幾個(gè)考慮過時(shí)間復(fù)雜度的問題?”
笑聲頓時(shí)消失了。
“這段代碼在校園里貼了3天,很多同學(xué)都給出了優(yōu)化答案,有些采用了動(dòng)態(tài)規(guī)劃的方式,將之前計(jì)算過的中間項(xiàng)保存起來(lái),在下次計(jì)算的時(shí)候直接查找,避免重復(fù)計(jì)算……”
張棟梁看著幕布上的代碼,輕輕碰了碰肖家霖,用有些得意的語(yǔ)氣小聲說(shuō)道:“和我們優(yōu)化的代碼一樣。”
“他說(shuō)有些人是這么做的,應(yīng)該還有別的優(yōu)化方式。”
杜秋又點(diǎn)了一下屏幕,切換到另外一種優(yōu)化方式,然后介紹道:“還有一些同學(xué)用了更為簡(jiǎn)單的方式,從上而下計(jì)算,用循環(huán)來(lái)實(shí)現(xiàn)遞歸……”
肖家霖右手握拳砸了一下左手,有些懊惱的說(shuō)道:“這個(gè)法子確實(shí)更簡(jiǎn)單?!?p> 他的懊惱還沒結(jié)束,立刻變成了驚訝,因?yàn)槎徘镉终故玖艘环N優(yōu)化方案,這個(gè)方案代碼很長(zhǎng),但是把時(shí)間復(fù)雜度從O(n)大幅減少為了O(logn)。
“靠,這怎么優(yōu)化的,我看不懂?!?p> “我也看不懂。”
杜秋拿起杜春華安排他帶過來(lái)提前打廣告的保溫杯,喝了一口水,讓報(bào)告廳里的聽眾有時(shí)間看代碼,然后才解釋道:“這是我設(shè)計(jì)的一種比較特殊的優(yōu)化方案,需要有一定的數(shù)學(xué)基礎(chǔ)才行……”
他先介紹了一個(gè)矩陣公式,然后才講解起了代碼,講的很精煉,張棟梁數(shù)學(xué)不太好,沒有聽懂,有些疑惑道:“一個(gè)斐波那契數(shù)列而已,有必要搞的這么復(fù)雜嗎?”
肖家霖覺得杜秋肯定另有深意,因此沉默著沒有回答。
果然,杜秋講解完了之后,說(shuō)道:“你們可能認(rèn)為這種優(yōu)化方式是小題大作,吃飽了撐的,事實(shí)上這個(gè)公式可以觸類旁通,用在別的地方發(fā)揮作用,比如計(jì)算數(shù)值的整數(shù)次方,這個(gè)題目我給大家10分鐘的時(shí)間,你們想想怎么編程?!?p> 張棟梁抬眼望去,見幕布上出現(xiàn)了一道題目,和書簽上的那個(gè)有點(diǎn)類似,都是設(shè)計(jì)一段代碼,實(shí)現(xiàn)C語(yǔ)言某個(gè)庫(kù)函數(shù)的功能,同樣屬于乍一看很簡(jiǎn)單,細(xì)想?yún)s很復(fù)雜的問題,他拿出鉛筆,靠著微涼的墻壁,在記事本上涂涂抹抹了好幾分鐘,卻感覺大腦一團(tuán)亂麻,完全沒有思路。
杜秋并沒有在講臺(tái)上傻站著,而是走下講臺(tái),在陳志揚(yáng)的介紹下,挨個(gè)和坐在前排的老師以及教授認(rèn)識(shí)。
他雖然只講了不到十分鐘,但卻展現(xiàn)出來(lái)了不俗的實(shí)力,因?yàn)榈谌N優(yōu)化方法很冷僻,也比較復(fù)雜,用到了高等數(shù)學(xué)的知識(shí),不僅學(xué)生們沒想到,老師和教授也都沒想到,有實(shí)力自然沒人怠慢,個(gè)個(gè)都很熱情,有的鼓勵(lì),有的贊賞,只有侯院士不滿意,說(shuō)道:“小杜啊,你把大猷拐去美國(guó)打工,讓我少了一個(gè)好學(xué)生,是不是該有所表示?”
“您想要什么表示?”
“我喜歡下象棋,但是研究所那邊沒有合適的棋友,大猷之前說(shuō)幫我寫一個(gè)可以跟電腦下棋的程序,寫了半年都沒寫好,不如你幫我寫一個(gè),要是寫的好,咱們的恩怨就一筆勾銷?!?p> “行,那就一言為定。”
“事先得說(shuō)明,你寫的程序要是個(gè)臭棋簍子,我可是不認(rèn)的。”
“保證不會(huì)。”
杜秋閑聊了一會(huì),在姜丹楓做出時(shí)間已到的暗示之后,再次走上講臺(tái),敲了敲麥克風(fēng),問道:“有人寫出來(lái)了嗎?”
經(jīng)過兩輪篩選,能進(jìn)來(lái)聽演講的學(xué)生能力都不差,因此很多人都舉起了手,杜秋隨機(jī)選了幾個(gè)學(xué)生,讓他們把答案遞上來(lái),但沒有公布對(duì)或者不對(duì),而是切換了一下PPT文檔,講解起了自己寫的兩段代碼,第一段用傳統(tǒng)方法解題,代碼有幾十行,繁瑣而又低效,第二段用剛才的數(shù)學(xué)公式解題,代碼只有短短幾行,簡(jiǎn)潔而又高效。
講解完了之后,杜秋調(diào)出了宣傳海報(bào)上的原始代碼,總結(jié)道:“我拿這段代碼做海報(bào),是想讓大家知道開源軟件在學(xué)習(xí)編程方面的三個(gè)好處?!?p> “第一,課本上的知識(shí)和生產(chǎn)中的需求是兩碼事,計(jì)算機(jī)是生產(chǎn)力工具,不是紙上談兵的玩具,只懂理論不懂實(shí)踐是不行的,然而以國(guó)內(nèi)目前的環(huán)境,在校學(xué)生很難有實(shí)際開發(fā)一款成熟商業(yè)軟件的機(jī)會(huì),如果不想當(dāng)書呆子,唯一的途徑就是閱讀優(yōu)秀的開源軟件代碼,了解真正的軟件開發(fā)是什么樣子?!?p> “第二,計(jì)算機(jī)軟件是一個(gè)很講究創(chuàng)新的行業(yè),想要?jiǎng)?chuàng)新,首先得有積累,文學(xué)家可以看曹雪芹或者托爾斯泰的著作,數(shù)學(xué)家可以看高斯或者歐拉的著作,物理學(xué)家可以看牛頓或者愛因斯坦的著作,程序員靠什么積累?只有看開源軟件的代碼,比如這個(gè)公式,就是我從某個(gè)開源軟件的遞歸函數(shù)中發(fā)現(xiàn)的。”
“第三,寫開源軟件會(huì)讓你們進(jìn)步的更快。”杜秋拿起剛才那幾個(gè)學(xué)生遞上來(lái)的答案,在空中揚(yáng)了揚(yáng),說(shuō)道:“如果你們知道我會(huì)把這些答案貼在墻上給所有人看,會(huì)不會(huì)想的更嚴(yán)謹(jǐn)一點(diǎn)?寫的更仔細(xì)一點(diǎn)?如果在大庭廣眾之下,被很多人指出了其中的錯(cuò)誤,你們會(huì)不會(huì)認(rèn)真反思?不再犯同樣的錯(cuò)誤?”
這三個(gè)好處非常淺顯,即使不說(shuō)在座的學(xué)生也能想明白,但是經(jīng)過這幾天的親身體驗(yàn),每個(gè)人都有了更深一層的理解和體悟,報(bào)告廳里鴉雀無(wú)聲,不少人臉上都流露出若有所思的表情。
接下來(lái)杜秋把PPT切換到了書簽上的那個(gè)題目,講解了起來(lái),肖家霖只聽了兩句,就嘆息道:“難怪杜總說(shuō)我勉強(qiáng)算合格的碼農(nóng),我們沒有考慮到最大正整數(shù)和最小負(fù)整數(shù)的判定和溢出問題?!?p> 張棟梁默然點(diǎn)頭,說(shuō)道:“事實(shí)上沒幾個(gè)人想到了這個(gè)疏漏?!?p> “現(xiàn)在軟件越來(lái)越復(fù)雜,幾十個(gè)甚至上百個(gè)員工一起工作已經(jīng)變成了常態(tài),軟件公司需要的是有團(tuán)隊(duì)協(xié)作能力的人才,而不是單槍匹馬的孤膽英雄,如果沒有良好的編程習(xí)慣,考慮問題漏洞百出,一會(huì)這里打補(bǔ)丁,一會(huì)那里出bug,不僅老板要揍你,同事也會(huì)拿鍵盤砸你。”
“書簽上的這個(gè)題目,是想告訴大家開源軟件的另外一個(gè)好處,那就是開拓眼界,明辨好壞,分清楚哪些是好的編程習(xí)慣,哪些是壞的編程習(xí)慣,因?yàn)橛泻芏嚅_源軟件都是陌生人互相合作的項(xiàng)目,如果編程習(xí)慣不好,很難與他人合作。”
杜秋說(shuō)到這里,從講臺(tái)上拿起了一本C語(yǔ)言的教科書,說(shuō)道:“這本書的作者我不認(rèn)識(shí),因此不做評(píng)價(jià),但我可以負(fù)責(zé)任的告訴大家,當(dāng)你們完成了一款或者閱讀了幾款優(yōu)秀的開源軟件代碼之后,如果不能從這本書里找出200個(gè)以上的錯(cuò)誤、疏漏或者謬論,就不是一個(gè)合格的計(jì)算機(jī)專業(yè)學(xué)生,因?yàn)檫@本書里表現(xiàn)出來(lái)的編程思維、編程風(fēng)格以及編程習(xí)慣極其惡劣!”
話音剛落,只聽嗡的一聲,整個(gè)報(bào)告廳都沸騰了,因?yàn)槟潜緯浅3雒?,發(fā)行量極大,全國(guó)幾乎所有大學(xué)以及普通編程愛好者都拿它作為入門教材,還有不少高官的高官和院士級(jí)的名流為其題詞,可謂國(guó)內(nèi)最權(quán)威的C語(yǔ)言教科書了,結(jié)果卻被杜秋如此不屑,自然引起了極大的爭(zhēng)議。