本科計算機專業的數學應該達到怎樣的水平?
本人目前普通一本計算機專業,大一剛入學,學的是高等數學和線性代數,覺得學起來比較的困難。
我不知道數學對於編程到底有多重要,我想本科畢業以後就工作,主要是Javaweb方向,不準備深入研究演算法,請問如果我不重視數學,只是不掛科的水準,適合Javaweb方向嗎?PS:大一我們學c++,但是暑期我自學了Java,目前也在同步學習Java和c++,自認為還是比較努力的,只是對於數學比較迷茫,感覺想要學好會用掉我許多時間。
對於Java Web來說,數學可以忽略不計,你甚至都可以不去學習,能過學校那關就行。企業級應用軟體關注的是業務邏輯,也就是說把以前手工做的那些東西,用電腦來完成就行,比如幾十年前去銀行存款,銀行沒有電腦也沒上網,都是手工記賬,現在只不過是換成用電腦和網路來協助處理。
取決於你希望到達的高度。
數學的作用有兩個,第一個是基礎理論知識,比如說概率論不好基本告別最大熵了。第二個是思維方式,腦子不好使,推演無力,給你講一致性哈希你也理解的慢啊。
對大數人來說都沒關係,理解力是夠的。
如果你開始看源碼看演算法看底層設計 就和數學有點像了。
如果想做人工智慧和機器學習,對數學的要求更高。
演算法導論上的數學推導,擁有高中數學知識就能看懂大部分
Javaweb方向上使用的數學就是加減乘除 跟高等數學無關。
但我還是覺得學好高等數據 線性代數帶給你的是一生的好處。大學時代就學好高等數學為你以後省去了復讀的時間,功力的說以後考研會考高數,機器學習也用到了線性代數的知識。 從個人角度說,我覺得會高等數學的人格外有魅力,上流社會名校的學生交流會聊高等數據,我等只能大談明星八卦。
一切問題,歸根結底都是數學問題,大學是打基礎的時候,建議要下功夫學好數學。
學習機器學習,人工智慧需要數學基礎好。
法國工程師學位的我,後台開發六年有餘。如今深深愛上了數學,感慨以前學得不夠。
首先,無論是哪方面的程序員,都要大量的投資演算法和數據結構。因為這是你的基本技能,就像棋手需要知道每個棋子的走法一樣。在演算法學習的過程中,你繞不過的就是衡量演算法的效率,也就不可避免的學習Big O的知識。Big O,需要你了解函數和極限的一些知識,比如說,f(n) = O(g(n))是這樣定義的,當n足夠大的時候,你總可以找到一個常數c,使得c * f(n) &>g(n)。除了效率,還有如何證明演算法的正確性。這就要求掌握一些證明方法,比如反正法,遞推歸納法。
其次,如果你遇到了性能方面的問題,需要降低延遲,增加吞吐的時候,你很有可能需要去設計高性能的隊列系統,這時排隊論的知識就顯得尤為重要了。排隊論要學好,概率論是基石。隊列在計算機系統中隨處可見,操作系統中的進程調度問題,基於隊列解藕生產者消費者的架構問題等等。
接下來如果你對離散優化問題感興趣,如說背包問題,旅行者問題,當你需要優化一個目標函數的時候,你往往會用到梯度下降法,而理解梯度下降法,對微積分要有很好的理解。更不用說在人工智慧,機器學習領域,到處都得優化目標函數,降低預測誤差,想走的遠,是必須要有數學基礎的。
然後再說一下,線性代數,特別是在人工智慧裡面,很多基本的模型都是線性的,你會隨處看到矩陣的用處,單純的只知道矩陣如何相乘是遠遠不夠的,要理解的跟深入,矩陣是一個函數,用來轉換矢量,既然是函數,就會具有很多函數的特點。你應該懂得如何證明 (矩陣甲 * 矩陣乙) * 矩陣丙 = 矩陣甲 *(矩陣乙 * 矩陣丙)
最後,說點我也沒有搞明白的,分散式系統中的鼻祖級論文,Lamport的時間,時鐘,和事件的順序,據他所說是他從相對論中的時間和空間的關係中得到的靈感。由此可見,不僅是數學,物理也很重要。
總結一下吧,當時是學生的時候,學數學不知道怎麼用,只知道考試,回想起來 ,如果應用場景更清晰的話,我會投入的更多。
我只知道數學好的編程同學腦子特別快,我看三分鐘才知道他一眼就懂。本科的話,沒必要去深究數學,而是去培養工科思維,反正你一般是用不到太深奧的數學的。
還是學吧,給自己留條後路。萬一哪天又出來新東西有這方面要求而你又需要學的話,你撿起來會方便的多。
我是一名大二的學生,我也是學計算機的。我問了一個和你這個問題特別像的問題http://www.zhihu.com/question/66767139?utm_source=qqutm_medium=social,如果你只是想找到一份工作,不在乎將來的晉陞空間,數學的作用基本不大,演算法的作用可能也不大,但是這些東西可以提高你的邏輯思維能力,提升你將來的晉陞空間,你自己考慮。還是再來加一點吧,我感覺學習應該具有目的性,有目的的學習效率肯定比無目的的學習效率高,我不能說數學不重要,但是在你沒有感覺到數學的重要性的時候,而且也沒興趣,那效率肯定不高,還不如直接學java web 學java web是不需要數學的,但是你可以嘗試著去喜歡數學。沒有知識是沒有用的,到知識的學習應該具有目的性,重要的先學習,演算法很重要,即使你不喜歡,將來招聘也肯定考演算法,但數學無所謂。
不要因為數學不好而困惑,比馬雲好就行,能編程就行。對計算機科學,數學是最基本的。但做計算機技術,數學好不是大前提,現在跟著學就是了。如果你不覺得編程困難,就行。也許程序寫的多了,數學也會慢慢變的好一點兒。你的動手能力很強,調試程序能力強,就行,對搞技術的人來說,這些比數學重要。
線代離散概率幾何積分必須會吧
推薦閱讀:
※僅僅從職業發展前景考慮,做編譯器開發或操作系統開發哪個方向更有前途?
※架構、構架、結構、框架之間有什麼區別?
※如何反駁「XX語言是最好的編程語言「這一觀點?
※對一個忽然對計算機編程感興趣的文科碩士妹子,入門推薦什麼最好呢?