知乎熱議:高數、線代應該成為計算機專業學習的重心嗎?
作為一名計算機專業的學生,你覺得求學期間哪門課程最重要?
你又將哪門課程作為學習的重中之重呢
總有人推薦計算機學生把重點放在高數和線代?
你覺得呢?
考研黨的心聲:該學還得學
眾所周知,計算機是一個非常寬泛的學科,學生畢業后所從事的領域也五花八門,例如有操作系統,編譯,數據庫,逆向工程,信息安全,甚至還有軟件工程等等。
那么,這些領域都需要,或者說很需要高數與線代嗎?
想必本專業的學生,此時腦中蹦出了四個大字:離、散、數、學。
包括非ML的傳統算法在內,CS的大部分方向依賴的是數理邏輯和圖論之類的數學分支,具體到大學本科課程對應的也是離散數學,而不是高數。
但是,作為計算機本科生,這是大家放棄高數和線代的理由嗎?
或許一個更為龐大的群體:考研黨,會給出不一樣的答案。
在剛剛過去的2020年,計算機碩士繼續呈現「爆炸」增長。以如今計算機的缺口,本科畢業生根本無法填充,再加上計算機的就業路比較寬,半路出家考研的也大有人在。所以,作為考研必考科目的高數與線代,當然也是非學不可。
除了應試,我們還要關注作為數學基礎,它們有著培養數學思維的作用。
數學思維對計算機行業,或者說一切理工科都有著無與倫比的重要性。
如今各種軟件,都與數學有必然的聯系,例如在游戲、圖形軟件開發中引用了線性代數中大量的坐標變換,矩陣運算。而對開發游戲引擎,人工智能算法來說,數學更是根基,不但開發引擎需要數學知識,開發游戲邏輯也需要,所需知識就基本覆蓋了大學里《高等數學》、《線性代數》、《概率與數理統計》等課程。
崗位上用到高數多少?
但也有人認為,聚焦數學固然重要,但不要過分夸大高數與線代的重要性。
因為像人工智能崗位、游戲引擎開發崗位等等,還并不能代表程序員群體的全部。
還是回到應用更為廣泛的離散數學身上,計算機本身的存儲結構是離散的。
所以很多時候,沒必要過分強調「基礎論」,因為從計算機系統的角度講,大都依賴的是離散結構的數學,而非微分方程。
不是學習C/C++方向和考研,沒有太大的必要把學習精力重點放在高數和線代上面。你更應該學好計算機網絡、操作系統、數據庫、數據結構與算法等等計算機科學相關內容,和編程語言以及用編程語言開發出具體的項目上。
羅杰·培根曾說,「數學是科學的大門和關鍵。」
當提到數學時,大多數人通常會想到需要數字并且專注于計算某種值:
- 算術
- 幾何
- 代數
- 結石
- 線性代數
- 傅立葉變換
- 常微分方程
- 偏微分方程等等
但是,要認識到,數學涉及的不止是數字,它還涵蓋了廣泛的主題:
- 邏輯
- 演算法
- 基本定理
- 數學證明和模型
- 離散數學
- 計算理論
- 信息論
- 組合學
- 集合論
- 圖論
- 抽象代數等等
而且很明顯的是,在一個程序員不了解某些數學理論的情況下,他的編程內容極有可能受限。
IT部門需要大量程序員來創建可自動化或簡化業務邏輯的應用程序。這些是業務線應用程序,它們為公司用戶提供了更有效地完成工作所需的信息。這項工作大部分圍繞大型數據庫進行,并將數據集縮減為用戶所需的相關信息。
機器和尖端技術的軟件工程通常確實需要高級數學知識。在過去的20年中,已發展并成為主流的所有無線技術都嚴重依賴于信號處理算法。信號處理本身可以涵蓋波形合成和分析,壓縮,加密,前向糾錯和調制/解調。
現在考慮人工智能,計算機視覺,圖像處理,自然語言處理,模擬,機器人技術,通用GPU編程,分布式計算,并且每年都在繼續增長。除了機器人技術,智能手機也在某種程度上取決于上述技術,所有這些技術都需要具備高級數學知識才能很好地完成。
大多數網站不會收到大量無法通過增加硬件解決問題的流量。但是,即使如今硬件的商品價格上漲,更多的硬件也不永遠是最好的,甚至也不是簡單的解決方案。
具有強大的批判性思維和推理能力的經驗豐富的開發人員,才是最重要的。例如,對于像Facebook這樣的公司來說,隨著全球不斷發生的數億次互動,就更需要高度專業化的算法來盡可能高效地運營網站。
最后引用一句知乎網友的話,讓我們回到現實: