數學不好能深入學習計算機嗎?
計算機大牛的數學應該都是很強的,但是那些數學相對不好的呢?歡迎大家討論。
如果只是「應試教育」語境下的「數學不好」,大可不必作為阻擋學習計算機的絆腳石。數學是一種原理、一種思維方式、一種熱情。如果你不懼怕這樣的數學,那麼完全可以去學習計算機。
數學分支很多,計算機科學分支也很多。需要具體情況具體分析。另外「數學好不好」和「算術好不好」是兩碼事兒,和「數學考試分數高不高」又是兩碼事兒。
我想是這樣的,當你進入計算機這個行業,你每天用一些新技術,編寫各種業務流,你感覺你用到數學了嗎?是的,你不會數學同樣可以寫增刪改查,可以寫進銷存,可以用JAVA,EJB,SSH,.NET,WCF。。。。各種新奇的技術去解決問題。甚至,你利用合適模式去架構你的軟體你也許也不會用到太高深的數學。可是,這絕不能說明數學無用處,很多計算機的基本問題就是數學問題。我覺得隨著接觸的廣泛,遇到越來越多的高深問題的時候,就會慢慢發現數學的用處了。我們寫貝斯分頁,或者一些高級的演算法,覺得要用的到數學。解決一些很COOL的問題,寫一些很時髦的演算法,讓別人覺得你很牛。所以,如果有時間,拿出你的大學課本,去讀讀那些和計算機有關的數學書,比如概率論,數理邏輯,離散,線性代數。有一天你會看到更廣闊的領域,你會覺得編程是個很COOL的事情。
想要深入學習計算機,並不一定非要學習數學系的各種高端課程(例如泛函或者拓撲)。但是如果不擅長定量的、邏輯性的分析問題的方法,那是必然不可能深入學好計算機學科的
首先,我感覺,要先對「數學」這個概念的外延進行一些討論,比如:「形式語言」的研究屬不屬於數學?還是應該把它歸到語言學研究的範疇?「數理邏輯」屬不屬於「數學」?
不妨廣義地來理解「數學」這個概念,即把「形式語言」的研究和「數理邏輯」都歸於其中。這個意義下,「數學」更多的是一種利用邏輯把握直觀概念並進行推理的學科。
從而,如果「深入學習」是指「解決基礎問題」的話,我認為優秀的「數學」功底大有必要。正如哲學一樣,數學和邏輯學是思考的學問,是使人聰明的學問。正所謂「磨刀不誤砍柴工」。
而「基礎問題」是什麼呢?這首先需要考慮我們這裡說的「計算機科學」是什麼。我這麼理解「計算機科學」,它是「某個核心問題」驅動的數學分支。這裡,」某個核心問題」是指「可計算性」,即哪些問題是可計算的?哪些問題是可判定的?什麼是計算機?我的個人能力有限,對於這些問題,說真的,也只能說是了解皮毛,個人感覺這些問題都是相互纏繞著的,對任何問題的研究都不可避免的牽扯到其他問題。這裡,我就不深入說了哈。
從而,所謂「基礎問題」,就回到了對「計算」這個概念的把握,如果你對這個問題感興趣,親,恭喜你,你有成為最偉大的數學家的潛質~ 當然,你的「數學」要非常的好~
同時,我個人感覺,對這樣的「基礎問題」的研究已經不單單是「數學」問題了,你將進入哲學的疆域,原因很簡單:因為它太基礎了。以哥德爾不完備性定理為例,它是在什麼背景下提出的呢?我沒有對這個問題深入的研究,個人感覺僅供參考,從哥德爾的傳記中可以了解到,這位偉大的數理邏輯學家提出的偉大定理,只不過是其宏偉的哲學研究的一小部分,而這些哲學研究,由於想法與同年代的」邏輯實證主義」的思潮有太大差異,一直沒有被哥德爾公開發表,僅僅以手稿的形式保存於普林斯頓的圖書館中。
回到我們的主題,數學對計算機研究有沒有幫助呢?我想答案是肯定的。數學是一種抽象的思維藝術,利用數學對問題的深入分析有助於簡化問題。這點往往有人不贊同,可能他們認為一個問題最難理解的部分往往是它的數學描述,我覺得這也是有道理的,但是當你真正地認識到問題的複雜性後,可能會發現,最初接觸的數學描述是多麼的簡明扼要。
不妨舉一個例子,編譯器,最早的時候,程序設計語言的設計和實現並不是基於形式語言理論的,這導致編譯器的實現特別複雜和困難。直到形式語言的研究成果引入進來,這個問題才得到了良好的解決。通過以正則文法和上下文無關文法對程序設計語言的語法結構進行建模,編譯器的實現(當然是指的前端)變得非常簡單,甚至有自動化的工具可以完成,如 LEX 和 YACC(FLEX和BISON是對應的GNU實現)。
當然,需要明確的是,數學的使用並不能替代對問題本身分析的過程,而是最終對問題的本質給出簡潔的描述。數學能讓自己善於思考,而我們的計算機就是要做到能代替人的思考,這背後就需要我們人首先自己想清楚,在想清楚的過程中,數學推理是很重要的。
幾乎所有真正的大牛,數學功底都相當之強。
除了圖像和演算法外,其餘的編碼工作對數學要求基本等於大一水平
不能
話說從高中開始我數學一直沒有及格……悲慘的歷史,貌似初中的時候還經常接近滿分呢……現在還是走上了編程這條不歸路,註定不能成為大牛啊……
其實編寫程序看似不太需要太多數學 是因為編程其實只是在運用計算機而已 只能算是應用。真正研究計算機的 無論底層硬體 還是上層演算法 都需要很深的數學功底!
看你準備用電腦幹什麼方向吧,一般做信號處理,圖像視頻處理方面的一般復變傅里葉積分用的多些。搞嵌入式工控的話都是拉普拉斯變換。。搞3d引擎的話基本是線性代數。研究高階演算法那都是離散數學裡的東西了。
如果是純粹的編程,一般性的web編程之類,並不需要特別的數學。如果是一些具體的分支研究,比如數據挖掘,AI之類,那麼就非常需要高深的數學了。當然,這話也未必。看你想掌握到什麼程度,比如說,快速排序,它的分析挺難的,希爾排序就更難了,涉及到很多的堆壘數論,平均時間甚至現在還沒搞定。但是你要理解這兩個演算法怎麼work的,寫出代碼來解決實際問題,一點壓力都沒有。但是要分析它,就很難了。數據挖掘、機器學習也一樣。你要學幾個LR、SVM,不需要太高深的數學。但是你想精通它,了解背後來龍去脈,就需要數學了。所以,你是做研究,還是搞工程呢?
你可以深入學習如何使用計算機,比如Word,Excel,PS等等。但是如果你說的是計算機科學,也可以研究非理論的部分,比如資料庫啦,操作系統啦,網路啦。數學不好最好不要碰計算機演算法這一塊。
能。不過這年頭數學很好且計算機不錯的人,比計算機很好的人,更貴
數學對於計算機來說,比較聯繫緊密的就是 《離散數學》和《具體數學》吧, 其實 沒必要強調數學的作用和用處,因為大多數情況下主要是指數學的思想和方法吧。歸納,分析,總結,推斷這些多少都無意識的用到,也不見得非得動輒引經據典,需要什麼學什麼。良好的數學基礎是極好的。
什麼不好補什麼。不過你既然都不知道哪裡需要數學,僅僅是聽說。
那麼說明你當前(將來不知道,世界永遠不變的就是變化)不需要很好的數學了。我覺得對於理工科來說數學都是很重要的,只是不同專業需要的數學的不同方面和深度。比如說計算機科學需要更多的概率論,而物理需要很多微積分和線性代數。
數學好 什麼都好
可以不太深的深入。首先不要主觀上認為數學有多難。數學只是把原本說不清楚的事情簡單的說清楚而已。/* 真就是美 美就是真 這就是你想知道的以及應該知道的 */
推薦閱讀:
※跨專業從事機器學習或數據挖掘可能性?
※數據結構方面,你認為最好的書是哪本?
※如果計算機沒有浮點運算能力,系統能正常啟動嗎?
※請問大家覺得日後更優秀的編程語言會不會是一種結合所有既有編程語言優點的語言呢?
※當數據量不夠大的時候,有什麼方法可以提高CNN訓練效果?