為何國內計算機研究領域在計算機應用技術領域非常火,而計算機軟體與理論很冷清?

感覺當前國內在計算機科學與技術方面,計算機應用與技術非常火(計算機視覺,模式識別,機器學習,以及當前異常之火爆的數據挖掘),而計算機軟體與理論感覺非常冷淡(例如符號執行,程序語言,編譯器,網路安全,甚至是軟體測試),符號執行,編譯器甚至網路安全之類的在國外軟體領域類很火,而且都在做一些實打實的東西,非常踏實的在做。 可能我這樣歸類本身就有問題,問這個的原因是,今天和學院主抓教學的教授交流,我跟他說我的研究生打算想從事計算機視覺,然後他說了給意思跟我上面的那層意思。 我可能現在視野比較窄,我也不知道是否存在這個現象。


在無聊地等火車,剛好看到這個問題,在手機上答一下吧。

計算機方面研究的大方向就三個,計算機體系結構,計算機軟體與理論,計算機應用技術。這三個方向就沒有明顯的區別,你以為我們搞應用技術的就很簡單直接拿來用就不需要有自己的理論是嗎,你以為搞軟體與理論的就只會寫公式不會寫代碼么,你還是圖樣圖森破。我隔壁屋的哥們方向是人臉識別,就是搞演算法,按理來說算軟體與理論吧,可是他和我一樣是應用技術,而我是人機交互與人工智慧。而且就我們班四十二個博士來說,基本上搞應用技術的人數也就比搞軟體與理論的多幾個而已,軟體與理論沒有那麼少的人。這三個方向,就只是三個方向,僅此而已,名字不重要,內容才重要。也許國家教育部設置這三個大方向就是為了招生什麼的方便吧,乾的活出的成果真的差別不大的。我猜你是想問搞基礎理論和搞應用的為什麼人數差別這麼大吧,這裡以及以後的應用,都指純粹的應用工作,對計算機從業人員來說俗稱碼農。下面是我理解的原因。

第一,因為應用的可挖掘性很多,你想,大到國家政府軍隊,小到買菜吃飯看病,對計算機的依賴那是越來越重。這麼旺盛的應用需求,雖然能應用的計算機理論就那麼幾種幾十種,但是每一個應用層都需要做針對性優化,不能直接拿來主義啊。比如都是網購,核心技術都差不多,可是以淘寶和噹噹的體量,這背後的演算法理論什麼的,肯定不一樣是不是,不然淘寶雙十一早就扛不住了。

第二,計算機應用門檻低,理論方面相對較高。第一條已經說過,理論方面的東西相比應用需求還是很少的,我想這不僅是在計算機方面,任何行業都是搞理論要難於搞應用。

第三,搞應用容易出成績啊,應用或者優化一個理論解決一個問題,時間肯定比提出一個理論短吧,無論高校研究所還是大企業都不想把錢一直燒在短期內不出效益的理論研究上吧。微軟研究院是一個例外,後面單獨說。

以國內高校和科研院所為例,老師接項目一般分為兩種,一種是橫向項目,就是xxx系統,受國家委派或者企業聯合做項目,這種就是應用的代表,時間一般都不長,經費很充足,即使中間有個別核心技術專利,但是基本對計算機這顆大樹沒什麼實質性影響。另一種就是以國家自然科學基金為代表的純基礎理論研究項目,這種項目給錢一般很少,而且時間跨度長,項目難度大,研究人員壓力也大。比如我們所一個搞生物信息的小組,就是純粹搞研究,已經在國際頂級生物學期刊發表幾篇文章了,在國際都是領先水平,那個組的壓力基本是全所最大,回報除了論文和表彰以外好像沒什麼吧,既不能幫你在首都買房也不能讓你社會地位提高。

目前的情況,橫向項目大大多於基礎科學研究項目。研究生來上學就是積攢工作經驗的,尤其是碩士,幹不了研究,百分之八九十都是在給老師做項目中度過的,做完項目之後不僅攢經驗升能力,還能在簡歷中寫上參與過某某項目,項目稱號還都高大上,多拉風啊。老師也舒服啊,學生給幹活還要錢少,項目完成人署名是自己,對自己那是只有好處啊。大家都不傻是吧。於是就一直這樣啦。

所以,相應地,企業對搞應用的崗位需求肯定比搞理論的多得多。於是學生自己也不傻啊,搞理論研究那麼累不容易出成果還不好找工作,幹嘛不搞應用,乾的輕鬆壓力小還掙錢多,早日當上CEO贏取白富美走上人生巔峰不再是夢啊。

但是真正決定一個學科長遠發展的,還得是那些基礎研究。所以在這方面我一直都特別佩服微軟,它數十年如一日地燒錢供著分布於世界各地的微軟研究院,目的就是研究各種計算機領域的核心理論,比如演算法複雜性,計算機視覺,機器學習等。不以做應用為目的,就是純粹搞研究。每年統計世界學術界那些頂級會議期刊發表的論文的數量和質量,微軟都是第一。也正因微軟在基礎理論方面巨大地投入,當它的Windows Phone 帶著全新的語音助理Cortana 橫空出世時,直接把Google now和Siri鄙視了(這裡不討論手機好壞,純粹說技術,手機沒有成功的原因有很多,但肯定不是因為技術)。沒有理論支持,這些是不可能發生的。同樣的例子請見Kinect和Hololens,後者在今年發布時幾乎是一片倒的好評。

我不是在給微軟打廣告,事實上我一直覺得微軟的做法才是一個大企業該有的氣量。當然其他大企業也沒有停止研究,只是微軟這個例子太突出了,其他的一比較高下立現。

在技術壁壘一定時,微軟是技術驅動,但是缺乏好的產品經理,所以微軟的產品一值飽受大家摧殘;蘋果是產品驅動,技術只能說是剛剛好,它是一個聰明的企業,能夠把現有的技術用到最好;谷歌是工程師驅動,骨子裡流著就是應用的血,從安卓這幾年發展就能看出來,完全是工程師思路,每個版本都可以作為測試版,有問題下一版再補。這就是我對當今計算機時代三大巨頭的看法。

順帶說一下我對計算機方面創業的理解。在我看來,互聯網時代計算機方面的創業基本只有兩種類型,一種是產品驅動,就是說,產品經理和運營為導向的,成也PM敗也PM。這種公司說白了就是搞應用,只是,大家都可能做同樣的產品,今天你有一個,明天我就馬上能山寨一個,程序員有那麼多,技術方面基本沒有壁壘。這種比的是點子,比的是運營,而不是技術。不是說程序員不重要,只是在這種情況下,產品經理才是決定公司成敗的關鍵。這種類型代表就是我現在實習的公司,做一個圖片社交軟體,基本沒有核心技術,拼的就是產品好不好看運營得行不行有沒有人用。第二種就是技術型創業,當年的矽谷模式,有自己的核心技術,同樣的問題下只有我能做或者只有我能做好,因為我有技術,別人模仿不來。這方面要推一個我最近看的公司叫DataRobot,專註於雲端機器學習。就是說比如你有一堆大數據,需要建立一個模型,傳統方式肯定是你先抽取一小部分數據來搞,差不多之後搭建大數據分散式環境,接著重新來做。這樣做的成本顯而易見很高,光搭建大數據環境就已經很複雜了,就別說在小數據集上表現好的模型不一定在大數據上有效了。而DataRobot公司就是解決這個問題的,方式很簡單,你只需要提交數據到它的介面,它用自己的大數據分散式幫你在雲端用各種模型評估,自動給你返回所有模型最優結果和參數。這個公司成立只有兩年多,剛成立的時候只有兩個人,估值2500萬刀,一年以後發展到16個人,估值7500萬刀。這就是技術的力量。我個人明顯偏向第二種嘛。我讀博為啥?就是為了搞技術嘛。

上面說每年微軟研究院發論文都是第一,第二是我們中科院,哈哈。其實就應該這樣,如果高校和研究所都去搞應用做項目去了,那麼企業幹嘛?就應該是高校和研究所搞科研,企業去搞應用去推廣。在美國,政府只會出錢資助那些基礎理論研究,或者是目前沒有進展可能花費數年數十年才能成功的項目,對已經成熟的東西他們是不會花錢資助的。我想,什麼時候中國政府也能這樣就好了。別在那些沒用的項目上燒錢了。

最後說一下,我不是在貶低搞應用的,事實上我所在的實驗室就是應用驅動的,只不過當然不是在做所謂的橫向項目啦,我們是在研究實際問題提出演算法然後再應用,應用只是終點不是重點。所以我才會這個學期忙得跟狗一樣邊上課邊去公司實習趕緊把做應用學會到時候就不用花時間在這上面了哈哈。我真聰明。

應用和理論是兩架馬車,沒有哪一個比哪一個好這種說法,主要還是看個人興趣。什麼時候科研人員真心熱愛自己的方向耐得住寂寞老實搞研究,做應用的充分掌握技術踏實放開做,各展所長,這個學科才會發展得越來越好。

手機碼字不易。


這位教授說的挺有道理的。

因為所見的是暫時的,所不見的是永遠的。 -哥林多後書 4.18


誰說不多,我就是做formal method的,雖然我在國外,但是國內也了解一些。做理論的比較少,國內外是一樣的。不要覺得國內就怎麼怎麼,國外就怎麼怎麼。machine learning, image processing, data mining,這些都是大熱,放之四海而皆準。理論的我還不希望太多人呢,會那麼少,不夠投的。計算機本來就是應用科學,理論是根基也是輔助。最好不要什麼都聯想到中國人浮躁云云。


我感覺確實存在這樣的情況。前面很多人都提到AI, ML, DM等門檻高,需要很強的數學功底。這話倒是沒錯,但前提是高水平的研究才會有這麼高的要求。誠然,正如 @Michael282694提到的那樣國內確實有不少這方面的大牛,但是更多的人則是在想著怎麼水論文。如果是這樣的話,DM等方向的門檻不僅不高,反而很低。

傳統的研究程序語言,編譯器的研究,或者要精通數理邏輯和計算機底層做理論研究,或者要有大量的編碼實踐經驗做出實際的系統。那麼DM等研究呢?只要你找文獻,知道別人的基本思路,然後就可以在這基礎上修修補補了。比如,他拿這個方法做分類,我去做聚類怎麼樣?或者是他演算法裡面用到了一個關鍵指標,我給他換一個指標,看一看效果會不會好?

仔細分析一下,可以發現這要求比傳統的程序語言研究低多了!要數學嗎?大概能看懂別人的公式就好了(有時候看不懂也無大礙),不需要自己推導。要理論基礎嗎?幾乎不要,反正研究前也就是猜,然後通過實驗去驗證(試)。要寫代碼嗎?寫肯定要寫的,但基本是用weka之類的現成的包,自己組織一下邏輯就好了。

那這麼做下來能得到什麼結果呢?在幾乎是猜測的條件下,很有可能什麼都做不出來。但是,數據集有很多。我們可以跑大量的數據集,說不定能碰到一些效果還不錯的。如果碰到的話,就把它們挑出來,一篇文章就誕生了。如果不能碰到的話,就接著猜和試吧。


這個問題真的挺大的。不過應該還有一個原因,就是軟體理論方面歐洲比北美的學者更多,成果也更深入。但是由於中國人搞CS留學和交流去往北美的比例遠高於歐洲,所以對國際CS研究的認識更多受北美影響,就更容易感覺軟體理論的研究者很少了。


因為機器學習和計算機視覺還沒有發展得像sql那麼簡單易學好用,又可以解決一些實際問題,相對比較好賺錢。你辛辛苦苦設計語言只能免費給大家用,恨不得求著大家用,還要被罵成狗,怎麼賺錢呢?


怎麼不說做計算機系統結構的都快滅絕了呢…


我還是匿名答一下吧,要得罪人太多了。

反對排第一第二的答案,AI,機器學習,CV什麼的火併不是因為它們入門有多高門檻,恰恰相反,這幾個領域門檻太低了。它們火的本質原因還是因為本身不夠成熟,沒有萬能的框架,工業界需要大量體力勞動者重複實現演算法(沒有演算法在不同的數據集上都是萬金油),以及,人肉調參。

你說門檻是數學?機器學習也好意思叫數學?工科生的本科數學就夠用了。圖形學,密碼學,哪個數學要求不比機器學習高?

你說門檻是工程代碼量?OS、編譯器、遊戲引擎哪個代碼量少了?而且不是我說,OS、編譯器、圖形引擎這些東西的代碼只有對與錯之分,要求非常苛刻,而你一機器學習演算法可以只對0.4也沒關係,誰知道剩下來0.6的錯誤是你演算法的問題還是你代碼的bug?

當然,真正的大牛確實是在腳踏實地推動該方向前進,但是很多跟風者每日沾沾自喜以為自己做的東西有多麼高大上,入門門檻多麼高,那就真是貽笑大方了。


簡單來說就是taste差,實用至上,沒有格物致知的精神,就像中國傳統文化孕育不了科學一樣。

再吐個槽,國內大部分人根本不知道什麼是science,science在於探求真相,而國內CS的風格基本上是稍微加強版的本科生數學建模,大部分情況下只能算data hacking。

當然國內還是有很多很厲害的researcher,除了清華姚期智團隊和上交鄧小鐵這些海歸大神之外,一些在國內拿到phd學位的老師也很令人敬佩,比如ML領域的周志華老師,計算所做體系結構的幾個老師,MSRA的劉鐵岩老師等等。


就像研究基礎科學一樣,實踐應用容易實習經濟價值


cv領域正在往生物化學材料這些專業發展,需要大量的人力來試錯。入門門檻真的沒那麼高,安心當個民工,老闆給idea,學生去嘗試,在伺服器跑結果,結果好就趕緊發論文,結果不好的話換種方式繼續。

我很疑惑這種方向真的門檻有多高?

說需要多少數學的人…每個人用到的數學方法就那幾個,半年下來怎麼都能懂。

燒個鍋爐還得懂熱力學?


對於沒有辦法馬上產生錢的東西,都是不感興趣的。


聽起來潮逼格過得去而且離錢比較近…


因為計算機應用方面的好就業


因為應用方面來錢快,而底層不一定來錢,失敗率高


推薦閱讀:

一個稱職的技術負責人應該是什麼樣的?
下了 Visual Studio 2015 至今未成功寫對過任何一個程序?
移動應用怎麼做灰度?
UML 在業界的使用情況如何?

TAG:軟體工程 | 機器學習 | 計算機科學 | 計算機視覺 |