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