如何權衡好數學和計算機的關係?
身處數院的信息與計算科學專業,一半課程都是數學,並且數學課程難度較大,計算機方面課程少。目前大二,大一專業課程有解析幾何,數學分析,高等代數,c語言。大二專業課有數學分析,高等代數,常微分方程,Java。數學學習要花很多時間,很難完全抽身出來學計算機
這個要看題主對自己的目標了。
回答這個問題是因為我有很多做TCS(理論計算機)的朋友。理論計算機學家和數學家有什麼區別呢?我個人覺得沒有區別。一些理論計算機學家也不大會編程,並且也有很多理論計算機學家發過Annals,發JAMS,發GAFA,或者用代數拓撲工具證明演算法存在性,等等。
甚至我都聽說,現在的TCS都基本脫離實際了,和應用的CS關係越來越小。我甚至覺得有一天,像弦理論已經快在物理系呆不下去了一樣,TCS也會被趕到數學系。。
如果題主排除TCS這條路,應該不需要這麼多數學。
我又仔細讀了題主的問題,題主這個是 計算數學 方向吧?和CS甚至TCS都沒啥關係,你學的這個就是數學的分支,不是計算機。。
大部分人學計算機是為了薪水高。那麼,打好基礎然後努力成為編程開發高手就行了,不用學那麼多數學。
數學學得多,可能是為了往計算機科學方面研究方向發展。這基本上是一條學術路,而不是賺錢路。當然有少數研究者因為選了有前途的方向,最終掙到了高薪。不過,是少數。
按需學習數學知識
就我的觀察而言,如果要走上計算機科研之路,或者成為能改進甚至發明新理論的大牛,深厚的數學基礎必不可少,不然你看清華姚班的為什麼這麼多數學競賽大牛?
當然大多數人都不是為了這個學計算機,但是僅僅就工作而言,有一些數學也是必不可少,比如機器學習對數學分析、概率論、線性代數的要求,計算機視覺對高等代數的要求,機器證明對離散數學的要求.......我的想法是,如果實在不喜歡學習數學(比如我),先學好數分、高代、概統、離散這四門數學課。如果大學高年級有時間 或者工作實際中需要,可以再繼續學習其他領域的數學。我是數學專業過來的,想聽聽我的看法嗎?想單純從數學的學習過程中得到樂趣只有少數天生痴迷理論的人能做到。如果你不是那種人,我的建議是:在保證數學基礎課程不落下的前提下,平時多編編程序,多做做演算法題,最好可以參加一些編程比賽,以此倒逼數學學習,這樣才是真正的因為需要而學習,如果為了學而學,很快你就會忘了你學了什麼。
我這麼說是有科學依據的,這就像經濟發展,只有需求才能帶動生產,純粹為了一個空喊的「共產主義目標」鼓勵大家去鍊鋼,結果就是「大躍進」,只能造成產能過剩和浪費。
有個小問題,題主是信息與計算科學專業,現在就想好了轉計算機專業全力學習計算機嗎?
提前學習以備不時之需。針對題主情況,多編程。
講真,能把數學當工具使用的至少是鑽石級別。會使用數學工具的在白銀段位。按需學習的也許是剛註冊。
舉例:
辦公室的博士大人瞅一眼圖片就大概知道該用什麼核過濾,一個月後泛化誤差減少18%
工程師做深度圖像變換的時候,總是無端出現雜訊。跟博士大人討論知道應該用最鄰近而不是雙三次插值。
實習生至今不明白什麼是齊次坐標系統。一直在幫忙寫前端。
另外,按需學習還能6得飛起的人,那是大師段位的。我覺得好多答主沒認真審題啊。劃重點:數院的信息與計算科學專業
我沒弄錯的話計算科學約等於應用數學吧。
既然是數學專業,那要學很多數學當然沒問題了。理工科本來就都要學編程的,看題主的描述,數學課+兩門語言課,這基本就是理科的標準配置啊。
不知道題主說的學計算機具體是指什麼,計算機系的計算機課大概是這樣的(不完全按順序):C++、Qt、Python、Java、彙編、面向對象編程、演算法與數據結構、模擬電路、數字電路、計算機組成原理、軟體工程、形式語言與自動機、編譯原理、網路原理、信號處理原理、人工智慧導論、人工神經網路、網路安全、密碼學、人機交互、資料庫、操作系統……
如果題主想轉CS/畢業後搞CS的話,可以參考知乎轉CS的相關回答,以及自己課餘時間花功夫。既然還在數院,本專業的數學內容當然是必須要學好的。
(另外說句個人觀點,雖然這幾年CS火,真沒必要什麼都強行往CS上靠..
這個專業難道本來不是叫計算數學嘛,重點是數值計算尤其是PDE數值求解。編程只要會C和MATLAB知道怎麼把計算資源用上可能就夠了。要學好的話數學方面不比基礎數學要求低,要往計算機轉那是自己的事,保研的話可以讀研再補計算機基礎。
大學裡還是應該多學些數學的,我就後悔大學裡沒去深入的研究數學。
計算機的基石就是數學,這個基石越牢固,今後在計算機領域的建樹可能就越大。
本科數學,研究生計算機的來答一發。
從做學生的角度
不存在權衡的關係,都要學,都要好好學,自己選上的課要珍惜,跪著都要好好的跑贏bell curve.
從題主提出的問題的角度
數學課程難度較大 &>&> 懂。基礎學科就是這樣,難,但是會有用的。反正我是在學計算機之後才開始體會到了數學之美,並且很慶幸自己本科讀了基礎學科。
計算機方面課程少 &>&> 同樣懂,數學院系的計算機課普遍不給力。建議通過課程內選修,或者自己找資源,學之。時間有限的情況下,學習求精不求多,比如要保證能用一門語言真的解決問題,而不是各種語言工具蜻蜓點水過一過。建議參考計算機學院大一大二的必修基礎課類加以規劃。
總的來說,覺得題主應該按自己的發展意向,至少是個人興趣,規劃自己的課程選擇,畢竟必修課之外,選課的餘地是很豐富的。數學一般分了純數、應用數學、統計學,計算機也有不同的學習方向。請按需選擇。
最後,要說這幾年的學習教會了我什麼,那就是,一個人,想要把數學和計算機都學好,真的是太難了。
還在繼續努力中。
共勉!
不存在權衡,
根據題主所處,肯定是先熟悉基礎理論,CS再怎麼說只是工具。如果面向工程,
則先開火(調包)後瞄準(原理),我就屬於這一類。條條大路通羅馬~只是你在高速公路上而已,有本專門介紹西瓜的書適合你!!!有些人別做夢了,AI 產業根本不需要只懂理論不會實現的人。
天朝在一窮二白的時候沒有大力發展基礎科學,而是「以項目帶科研」,你猜為啥?
美帝那邊呢,一群學「不是那麼純粹的」數學的人,去了華爾街談笑風生,順便 diss 一下還在實驗室搬磚的,學「純粹的數學」的人。
咱們計算機從業者並不需要很多數學知識,一點點就夠了,很多答友都說了,按需學習就好。
我覺得題主的疑慮是為什麼學院開設這麼多數學課,這些課有什麼用,我當年是計算機系出來的,我們也有差不多一半的課是數學課,所以我也有過這種疑慮。我就說說我從業這麼多年,後來又讀了博士之後對數學的理解吧。
計算機和數學都是非常好的工具,都是為了去解決實際問題。但計算機給很多數學上很難搞的問題提供了一些簡單的搞法,比如說你可以讓程序跑幾億次去試出一個最佳值。但如果是幾萬億億次才能試出最佳值呢?你這時候就需要數學了,未必真需要多高深的數學知識,但你需要用數學的方式思考,看看如何才能優化。
你也說了,數學課程難度很大,我也深有同感,我經常半個月幾頁書都看不懂。要不怎麼說數學是思維的體操呢,我也知道學這些東西以後用不上, 但這是鍛煉,讓你的腦迴路能搭建出足夠的能力,讓你能以數學的方式思考,日後你就可以從容處理更難的問題。這才是高等教育的意義。如果只為學實用知識或者考試,那高校是競爭不過藍翔、新東方以及各種培訓考研班的。
我一直覺得知識的積累是相對容易的,但出了學校就很少有數學課給你鍛煉了,所以希望題主能平衡好數學課和計算機課的時間,在兩方面都能有所收穫。
如果是你把cs當作數學的一個工具,那麼按需學習cs(嚴格說就是XX軟體用法,與一些語法知識)
如果是你把數學當作cs的一個工具,那麼按需學習數學
好了,以上都是屁話。
實際上,看了其他回答題主的評論,我覺得是這樣的
我覺得其實這個專業與計算機沒有題主想的那麼緊密(或許題主已經這麼覺得,滑稽)
題主還是轉計算機吧(如果對計算機更感興趣的話)
其實在我看來
你想要的未來決定你現在的選擇
這課上不上,聽不聽,用不用得上,難道你心裡還沒有13數嗎
況且,就算計算機用得上,你用不上,還不是......
//沒錯,其實你學的課屁用沒有,還難
//這輩子都用不上了(滑稽)
//就跟我學的模擬電路一樣
//但是啊,學習未知不是一種享受嗎?——————————不是
//所以我大膽惡意揣測
//題主想問的是
//xx課我不喜歡、又難、同時我也不用刷學分,請問xx課我以後用得著嗎?用不著我就混個及格了。
答主不對以上言論負責
謝邀。其實,,嗯我不是計算機高手,只是會一些超級基本的操作,下周開始準備明年三月的計算機二級,所以目前來講應該還是計算機小白~~我也不是數學高手,我只是非常非常非常非常非常喜歡數學~!(和數學老師~)!兩者關係應該是相輔相成的吧,要說平衡可能是指學習時間的分配?首先肯定要完成基本作業,考試的進度至少要跟上啊,每一科都應該是這樣的。其次有時間有興趣就去鑽唄,不用想那麼多,什麼學哪一樣更有用啥的。。。想少一點,多學一點,應該說學習的過程就是不斷充實的過程。學計算機的時候如果需要更深的數學知識就自己去去拓展,學數學如果需要更多模型就用好計算機……好多時候學科交叉很普遍,特別是現在社會發展越來越快,我們需要不斷吸取知識。。Just think out of the box!實踐是基礎~~!如果跑題了請忽略說得不贊同請原諒畢竟剛剛大一 認知難免淺薄~~
我研發做了很多年。實際上從我的體驗來說,大部分程序猿都是面臨應用需求,使用OS、代碼庫提供的介面,按需求做好應用,根據變化做好維護修改就是了,都談不上什麼專業的研發需求。
這些專業的研發需求指的是:涉及某一領域的比較前沿的研究,需要做出市面上尚無專業、成熟方案,或者你買不到、不想買,想自己完成的應用。這種需要很強的科研能力,也就往往需要比較強的數學背景。比如目前很火的人工智慧、機器學習等等,還有一些語音、視頻上的深入應用開發,數學不好就沒法幹了,比如你要提升語音識別的準確度。沒有專業背景,只能拿別人做好的介面搞應用。還有一些遊戲領域,需要一些數學基礎。
一般的應用開發需求,大學裡面給的訓練足夠了,甚至還用不上那麼多。你開發網站、手機App,裡面用上過「高數、概率」嗎?所以,我贊同用多少,學多少的觀點。普通應用開發,真用不了那麼多。當然,不代表那些訓練沒價值,對思維水平的訓練還是有的。
更重要的我覺得其實是英語,必須能準確、熟練的閱讀英文文檔,這是很重要的能力。
什麼叫計算機課程?這個問題挺模糊的。
編譯原理?微機原理?計算機網路?資料庫基礎?演算法基礎與程序設計?數據結構?數理邏輯?圖論?博弈論?C語言程序設計?編程語言基礎?其實很多你們都用不到,這些課程有些你也不想學,但都是計算機專業課。
所以你挑幾個感興趣的科目,自學就是了。至於是看公開課還是買課本,就參考其他問題吧。不要覺得自學會比授課差多少。恕我直言,我覺得全國一半以上的計算機院學生都是靠考前自習。平均到每一門課……能有7天?You should know the specific area you want to enter. Linear algebra is for computer graphics, number theory is for cryptography...etc.
數學基礎好,就按需學習;數學基礎不好,請打好基礎先。
推薦閱讀:
※沒有基的線性空間,是否可以構造,如何構造?
※高等數學課本中關於任意函數可由一個奇函數和一個偶函數組成的推論?
※學習數學分析和高等代數實用嗎?
※看什麼書適合學習遞歸論?
※概率為 0 的事件,必然不能發生嗎?概率為 1 的事件,必然能發生嗎?