本科學數學對從事計算機幫助到底有多大?


本科清華數學,碩士廈大計算機,博士ETHZ,來講講自己的感受。

數學是一種工具,就像自行車、汽車、火車、飛機一樣,能夠讓你從一個地方(已知的條件)到達你的目的地(想要達成的結果)。能夠創造這種工具的人是數學家。而學習各種數學知識和技巧能夠讓我們熟練使用這些工具。能夠用的人不多,能夠熟練用的更是鳳毛麟角。舉個簡單的例子,最小二乘,夠簡單吧,隨便翻開計算機圖形學的論文,很可能論文的本質就是求解一個最小二乘擬合。但是怎麼把給定數據轉化為一個最小二乘問題就見功力了。沒有多年科研經驗的菜鳥很可能都沒意識到給定的問題跟最小二乘有啥聯繫。

1)我的感覺是只有合適的數學而沒有好的或者差的數學。就像鄉間小道,就比較適合騎自行車;高速公路就比較適合開汽車;如果是鐵軌,最好還是跑火車。這就是說,問題本身決定了用什麼樣的數學,而不是強硬地加入高深複雜的數學內容。我剛開始做科研的時候,總想加入一些複雜一點的數學(好歹也是數學系畢業的啊)。但是後來我發現,複雜的數學不一定合適這個問題,就好象開著跑車在鄉間小道上晃悠一樣,還不如一輛自行車來得自然。

2)學習越多的數學可以讓你了解更多可能的解決方案。如果你只有自行車,那不管是鄉間小道還是高速公路,你都得騎自行車。如果你不了解概率論,沒聽說過群,沒聽說過隨機過程,沒聽說過小波,不知道函數空間,給你一個計算機專業的問題,你就只能選擇「自行車」,根本就不知道有高大上的「飛機」存在。數學本身就很大,線性代數,拓撲,微分幾何,概率論,數值方法……每一個子領域也都有數不清的理論和定理。只有逐步積累這些知識,一點一滴地積累,最終才會在遇到問題的時候找到合適數學工具。

3)計算機科學是一個綜合性學科,也包含理論、應用、工程等多個方面。不同的分支所用到的數學也不一樣。以我所從事的圖像處理為例,曲率濾波(知乎專欄 )非常簡單,只有簡單的加減乘除,似乎小學生都可以做,為什麼我要把它寫在博士論文裡面?我覺得,雖然它很簡單,但是針對優化曲率這個問題,這樣的數學是合適的。針對特定問題,選取合適的數學工具來解決它,這才是最重要的。

4)數學思維方式和計算機學科思維方式不同。數學更強調邏輯性,如果從給定的條件一步步推導得到有用的結論。結論只有對或者錯,非常明確,跟理論計算機比較類似。但是計算機應用就有很多模糊的地方,並不是只有對錯。數學中的近似理論對於向計算機靠攏的同學來說在思維方式的轉變上有很多幫助。計算機中的很多問題都是:給定數據-》數學抽象(模型)-》公式推導-》求解-》結果解釋(返回原問題)。這其中涉及如何建模、求解(優化)、代碼實現等等多個方面。

5)數學系的學生一定要學編程,就像計算機系的學生一定要學數學一樣。有一次把數學系的人發布的代碼改了兩行,效率提高了一百多倍!學數學的人寫代碼只要求正確就可以,完全不考慮可讀性、效率、可擴展性、易用性等等。

6)很多學計算機的同學的數學並不比數學系的學生差,因為cs的同學知道學數學可以用來幹嘛,而數學系的學生通常比較茫然,不知道所學的東西有什麼用。直接的結果就是cs的同學很努力地學數學,而數學系的學生雖然掌握了很多數學卻不知道自己所學可以解決哪些問題。很多cs的論文數學都非常高深。不過我個人對這些複雜的數學不太感冒。如果計算機論文中的公式特別複雜,我一般都會跳躍式閱讀。如果計算機論文中的公式特別簡單,我一般會花時間仔細看(作者很可能找到了合適的數學工具)。對於數學論文,我的閱讀方式恰恰相反,對於複雜的公式會特別留意。

7)很多人覺得本科學數學對後來學習計算機幫助不大,也有很多人覺得幫助非常大。這就好像問上大學對你的人生有沒有幫助一樣。不同的人會有不同的經歷和感悟。自強不息吧,不管你在哪裡或者哪一個領域。因為不管在哪裡,你都還是你。正如歌詞所說,「我就是我,是顏色不一樣的煙火」。


數學本科,研究生演算法。目前感受是,有用,但是有限。數學本科不如計算機+輔修數學

演算法方向用的數學是:離散數學(我沒學過),組合論(我沒學過),圖論,數分,高代;抽代,數論(的部分,熟悉結論);隨機過程(古典的那部分)

數學系學的課程:

數學分析,高等代數,概率論

抽象代數,實變函數,常微分,復變,拓撲,泛函分析,數理方程

圖論,李代數,數理統計,群表示論,微分幾何,隨機過程等

對比一下就知道了,大部分都是大一大二的內容。而且在演算法中數學只是個輔助工具,是想出了演算法後,再用數學去證明它很快,而不是你數學好,就能想出演算法了。兩個學科思維方式是有差異的。舉個例子(源於學長)

[題目]輸入n個數,已知有一個數出現了超過n/2次,要找出這個數。要求演算法時間O(n),空間儘可能少

當你知道一個演算法的答案時,確實會覺得它的數學很簡單,問題是你抽象的數學學得好,就一定能想出來好的演算法嗎?未必吧。而且計算機本科還有很多其他課程,都不是白學的

當然,還有句老話是more is different,在你有限的時間裡,懂的當然是越多越好


喜歡cs就直接上啊,不要慫數學。

本科cs大三在讀。一點淺見。

個人覺得除非基礎十分紮實,否則論對學術和工程上的幫助也許沒有本科cs,輔修數學作用大。(想做ml尤其是學術輔修可以選一選多元統計,實變和泛函

我們數學課從微積分到線性代數都跟著honor class上,毫無數學競賽基礎的我在數學課上(為了不掛科)也是嘔心瀝血,但是我一直對數學處於願意努力做好卻無法喜歡上的狀態,也不理解很多過於數學化的細節有什麼意義。

直到這學期交換選了visual computing和randomized algorithms and probabilistic methods後,在做PCA時回過頭去才感受到線代的力量,在分析證明演算法複雜度時才領會到概率論的玄妙。回頭補了補當初的內容感覺也夠用,並且在應用的目的性下感覺學的比當初數學系老師教的更貼近cs。如果不是把數學學習的融會貫通渾然天成,知識的遺忘在所難免,應用起來也不輕鬆。

只要有了cs課程體系中基本的數學框架(微積分,線性代數,概率論,離散數學,圖論,數理邏輯等),在興趣和需求的驅使下回頭去補一些更針對性的數學課也未嘗不可。

少年做你喜歡的事情吧,逢山開路遇水搭橋,比隱忍蟄伏曲線救國不知道痛快多少。

………一點私貨=w=

某一次做數模的時候,隊友是兩個厲害的數學系的大腿,但總感覺他們的思維方式跟我有微妙的差異。我傾向於尋找一些約束和近似用A*和退火暴力出奇蹟,而他們堅信數學的力量指引他們一定能用一個優美的方程描述並解出一個誤差不超過某個小量的解……

………補上那一次神奇而慘烈的版本控制


你懂的很豐富的專業性的企業管理知識,但是你只是個基層員工,當然這些對你沒幫助或者說極其有限。

但是有一天你抓住機會成了一名主管或者經理,這些就對你有大用了。


計算機用的是離散數學居多吧


本人本科學的數學,研究生在學cs。當然目前cs水平還不高,感覺幫助有一些,但很有限。

課程設置上,主要的幫助來源是本科時和cs的課表重複的部分,比如必修的高等代數(代替線代),必修的程序設計,和選修的數據結構。還有cs的部分基礎演算法和數據結構在一些數值計算課程中有涉及。但是除此以外明顯能感到基礎缺失,對現實中的底層實現和通行的protocol甚少了解。

思維方式上,個人感覺接受了數學訓練之後,對完備性和邊界條件會比較敏感。其餘的並未感到有幫助,當然也可能是因為我蠢。


占坑,本科數學。研究生CS,目前大四,等過個幾年再來答(如果記得住的話= ̄ω ̄=)


我只能說我學deep learning的時候被一堆數學公式虐哭了,現在對於數學大神只能仰視了,我還是去做一個本分的程序員好了


1,愛因斯坦是搞物理的,我估計他連手榴彈都沒做過。這個例子不恰當。

2,學歷只是敲門磚,但是敲CS的門用MATH的磚,不如直接用CS的磚。

3,CS+Math的學歷是個不錯的組合。

4,進了門以後,就和學歷關係不大了。靠天賦+努力+機遇+選擇。


嚴格地說,初學的時候很難體會到,除非兩個專業同時學,或者兩個專業都學過,這就好比買了黃油,就麵包好吃嗎,只有吃過麵包,吃過黃油,才大概判斷出這兩種東西配在一起有最大效用


"數學背景"的優勢,可能被"缺乏CS基礎"的劣勢抵消掉,所以最終結果還是看具體情況。

總體來說,在CS科研方面"數學背景"可能會有優勢,具體看方向;而在CS相關就業方面"數學背景"一般是劣勢(機器學習之類除外,因為這類東西其實和傳統CS關係不大,所以不太需要CS基礎)。


想做計算機類的工作學CS minor數學即可,major選數學的話雖然由於思維的鍛煉會使CS學習比較順利,但由於數學課程的heavy workload,不會有太多額外時間精進CS技能。我們數學系的人很多在minCS,這些CS課的成績也都很好,但數學對CS的幫助更多的體現在學習能力上,而要從業CS的話還是要學很多CS課程和知識並多練習(本人major數學,minorCS,自我感覺搞CS的話知識和技能熟練程度遠遠不夠用,將來也沒想走這個方向)


研究數學時,有時計算機是工具;研究計算機時,有時數學是工具。後者更明顯。


目前在從信息與計算科學的本科轉計算機中.

本校的信息與計算科學跟計算機扯不上多少關係,開的計算機基礎課都是選修,必修的是數值計算例如數值分析/偏微分方程數值解.

目前覺得本科學數學對從事計算機幫助不大,對於做計算機科研可能好一點.


本科學習數學,現在從事的是CRM數據分析,平時主要使用VBA,目前正在學習Python。

本科的時候,學習了計算引論(C++中的C部分),C語言程序設計,數據結構。自學了資料庫(SQL)。

本科學數學對從事計算機到底幫助有多大?

數學和計算機好比武功中的內功和招式。

對於一般的計算機工作來說不需要太多的數學,高中數學就可以了。

但對於像Machine Learning這種可能需要的數學知識要多一些。比如微積分,線性代數,概率論與數理統計。

本科數學系的內容足以應付。

所以,本科學數學對從事計算機幫助多大要視你所從事的計算機工作的性質而定。

越高級的工作,需要用到的數學越多,本科學數學的幫助越大。

不過,究竟幫助有多大,我也不能確定。

--------------------------------------------------------------------------------------------------------------------------------------------

目前我在研究的幾個問題幾乎與數學的關係都不大。

*利用VBA實現PPT數據更新的自動化

*利用VBA中的ADO+SQL實現從多個報表中篩選出需要的數據,並粘貼到數據模板中

--------------------------------------------------------------------------------------------------------------------------------------------

目前,我們公司正在組建一個Innovation Team, 如果對大數據和人工智慧方向感興趣的朋友,我們可以多多交流。


這要看你是學什麼方向的數學了,純理論數學專業從事計算機有些困難,如果是應用數學就不用擔心,比如說應用數學中的信息與計算科學專業就是專門研究數學和計算機演算法設計的,所學的專業課包括數學課程和演算法編程課程,兩個方面具體佔比要看學校。將來畢業直接從事計算機行業是沒問題的。希望對你有幫助。


數學大四,企圖轉cs

如果喜歡cs直接上啊,覺得數學不夠用再補不可以嗎?為啥一定要先準備好數學基礎?

本科階段其實很多數學課是純數的。。。純數在cs上也不太出現過吧。在我目前的智商看來如果只是想找代碼崗的話,直接上cs吧。雖然見過一些machine learning要泛函之流的,但是(我覺得)泛函之流直接放棄比較適合普通人的智商(比如我)。


大學班主任本科數學,現在從事計算機圖形學。

搞研究的話,我認為學數學的不一定差,尤其像計算機圖形學這樣的研究,數學好是基本功。


多數碼農只要會加減乘除就足矣了


再過幾年再來答


數學學的好才會對計算機有幫助,而那些把數學分析,高等代數學的比其他工科的高等數學和線性代數還差的對學計算機能有啥幫助。


推薦閱讀:

為什麼數學專業要學計算機?
Clifford代數是什麼,它和dirac運算元有什麼關係?
物理學中的微元法是一種錯誤的方法嗎?
跨語言系統的密碼破解原理是怎麼樣的?
數學裡有沒有不能被範疇化的概念?

TAG:數學 | 計算機 | 信息技術IT | 應用數學 | 計算機科學 |