昨天劉博跟我說(shuō)今天中午單博要請(qǐng)吃飯,讓我留著肚子,好好敲他一筆。我也沒(méi)多想什么,以為真的像劉博說(shuō)的那樣,是公司的博士之間的聚會(huì)。今天中午在餐桌上我才知道原來(lái)劉博要離職了。
關(guān)于離職的原因劉博沒(méi)有多說(shuō),我也不愿去想。但是突然接到這樣的消息還是讓我有點(diǎn)手足無(wú)措。這半年來(lái),我從劉博身上學(xué)到了太多太多。所以我想總得寫(xiě)點(diǎn)什么,紀(jì)念一下這段亦師亦友的友誼。
去年十一月份吧,那時(shí)候我剛進(jìn)公司沒(méi)多久,聽(tīng)根神他們討論說(shuō)公司下周要入職一個(gè)物理學(xué)博士。我當(dāng)時(shí)還從未與博士共事過(guò),所以一直滿懷期待,希望等博士來(lái)了能多和他聊聊,結(jié)果一周后風(fēng)平浪靜。我問(wèn)根神不是說(shuō)要入職一個(gè)博士嗎?根神說(shuō)坐你對(duì)面那個(gè)就是啊。我這才反應(yīng)過(guò)來(lái)劉博早就入職好多天了,只不過(guò)劉博長(zhǎng)的太顯年輕了,以至于我一直以為是個(gè)新入職的實(shí)習(xí)生。
劉博入職以后,便顯示出了驚人的代碼能力。每天中午我趴在桌子上睡覺(jué),總能聽(tīng)到對(duì)面劉博噼里啪啦打鍵盤(pán)的聲音,一個(gè)普通鍵盤(pán)愣是打出了機(jī)械鍵盤(pán)的效果。來(lái)了公司幾個(gè)星期就熟悉了已有框架的代碼,然后獨(dú)立完成了一個(gè)反光柱定位的項(xiàng)目。雖然是物理系博士,但劉博對(duì)計(jì)算機(jī)的了解卻超越了很多科班出身的人。有一次我寫(xiě)了一個(gè)socket程序,發(fā)現(xiàn)在Windows下面能正常運(yùn)行,而在Linux下面掛了。查了半天不知道問(wèn)題在哪兒。這時(shí)候劉博告訴我因?yàn)閟ocket在兩種操作系統(tǒng)下的系統(tǒng)原語(yǔ)不一樣,一個(gè)在無(wú)法建立鏈接時(shí)返回0,一個(gè)是拋出異常,按照他的思路改完代碼后發(fā)現(xiàn)真的是這樣。當(dāng)時(shí)我驚訝于劉博竟然能把一個(gè)系統(tǒng)調(diào)用的細(xì)節(jié)記得這么清楚。那個(gè)時(shí)候我也和劉博合作寫(xiě)過(guò)一些代碼,每次都是代碼工作了就提交。但是工況一變可能代碼就不工作了。劉博告訴我代碼必須要多測(cè)試,必須要遵循規(guī)范。要是我們公司有專(zhuān)門(mén)的測(cè)試每天早上我的桌子旁邊肯定得圍一圈人。在那之后,寫(xiě)代碼的時(shí)候我總會(huì)額外注意一下代碼質(zhì)量。
劉博學(xué)習(xí)知識(shí)的方法很特別。我遇到問(wèn)題總是會(huì)百度別人的技術(shù)博客,看個(gè)大概就直接復(fù)制過(guò)來(lái)用了,而劉博卻不是這樣。有一次我和思晨遇到git上的問(wèn)題,問(wèn)劉博怎么能把git學(xué)的透徹一些,劉博立刻給我們拷過(guò)來(lái)一本厚厚的《progit》。有時(shí)候問(wèn)他C++的問(wèn)題,他解答后給我們拷過(guò)來(lái)一本厚厚的《Thinking in C++》,我在學(xué)CUDA的時(shí)候,他又拷給我一本《CUDA by example》,似乎他的電腦里藏了數(shù)不盡的英文書(shū)。由于網(wǎng)絡(luò)的便捷,我們?cè)缇土?xí)慣了快餐式的學(xué)習(xí),往往今天遇到這個(gè)問(wèn)題,百度一下直接套用別人的方法解決了,可是卻不會(huì)深究其原理。而劉博卻一直都學(xué)的很踏實(shí),耐心的把一部部英文專(zhuān)著啃完。看論文時(shí),劉博往往左邊開(kāi)著論文,右邊開(kāi)著英文維基,每當(dāng)遇到論文里出現(xiàn)的沒(méi)見(jiàn)過(guò)的算法就去維基上查它的原理。我問(wèn)劉博為什么不用百度?劉博笑著說(shuō)百度?賣(mài)藥才去百度。有一次寫(xiě)一個(gè)雷達(dá)歷程計(jì)的代碼,我去博客里找教程照貓畫(huà)虎的寫(xiě)完了。劉博告訴我這里不能這么寫(xiě),這個(gè)函數(shù)會(huì)申請(qǐng)全局內(nèi)存然后再釋放掉,多線程程序很容易產(chǎn)生內(nèi)存碎片。我問(wèn)他你怎么知道的?他說(shuō)你用一個(gè)函數(shù)之前,起碼要把它的文檔研究透徹,知道他大概的實(shí)現(xiàn)原理和思路,以及可能遇到的問(wèn)題,而不能上來(lái)就用。從那以后,我也養(yǎng)成了看文檔的習(xí)慣。能去官方網(wǎng)站看文檔就盡量不去看零散的技術(shù)博客。時(shí)間長(zhǎng)了,對(duì)各個(gè)框架的理解果然更深入了。
劉博的知識(shí)面相當(dāng)廣博,無(wú)論公司舉辦大大小小的討論會(huì)他總能提出一些有見(jiàn)解的問(wèn)題,有些甚至一時(shí)之間讓演講者無(wú)法準(zhǔn)確作答。按他的說(shuō)法,他讀博時(shí)一直在搞計(jì)算機(jī)副業(yè),最后發(fā)現(xiàn)畢不了業(yè)了回實(shí)驗(yàn)室趕了兩篇物理學(xué)的論文,現(xiàn)在引用量已經(jīng)超過(guò)100多了。有一次我偶然跟他提了一句什么是量子力學(xué),他就興致勃勃地給我講起了波函數(shù)。我實(shí)在是聽(tīng)不懂,撓撓頭,劉博也就沒(méi)再繼續(xù)講下去。結(jié)果我沒(méi)想到幾個(gè)月以后,劉博突然送了我一本書(shū),是曾謹(jǐn)言的《量子力學(xué)》第五版,告訴我這是國(guó)內(nèi)很經(jīng)典的教材。提起航空航天,他能知道一些常見(jiàn)的火箭發(fā)動(dòng)機(jī)燃料;有時(shí)候提起深度學(xué)習(xí),劉博也能扯兩句LSTM,GAN什么的。對(duì)所有技術(shù)保持好奇心,也是一個(gè)博士的基本素質(zhì)吧。
說(shuō)是要好好敲單博一頓,結(jié)果吃飯時(shí)劉博假裝上廁所把帳給結(jié)了。有時(shí)候會(huì)覺(jué)得劉博有點(diǎn)不近人情,現(xiàn)在看來(lái),其實(shí)他只是懶得把這些事情說(shuō)出來(lái)。少說(shuō)多做,可能也是他的處世哲學(xué)之一吧。
希望劉博以后能夠找到真正適合他的工作,能夠真正讓他一展拳腳。也希望我能夠成為劉博這樣純粹的人。