需要懂數學才能做程式設計嗎?
不一定需要。即使在學校的數學成績不好,你仍然可以成為一個優秀的程式設計師。
我自己從事程式設計已經有20年了,從來沒有因為忘記需要的數學知識而去翻數學書。我在高中和大學時學習了很多數學,那些內容非常高深抽象,甚至我現在都忘記了學習的目標是什麼(除了通過考試)。
有一種普遍的觀點是,要成為一個優秀的程式設計師,你必須擁有出色的數學能力。這種觀點可能是因為最早從事計算機編程的人大多數是數學家,主要是因為當時還沒有“計算機編程師”的專業學校。當然,計算機科學或計算機工程專業涉及許多數學知識,但這些對實際應用來說並非必須。計算機科學學位中90%的內容都是非常有趣但鮮有實用價值的。你需要數學來理解底層理論,但在日常編程中並不是必需的。
我的論點基本上是針對網頁開發這個領域而言。當然,有些編程工作需要數學。例如,在三維渲染引擎、地理信息系統應用、密碼學/區塊鏈/人工智能/機器學習等領域工作所需的數學知識肯定是很多的,但這些都是非常特定的數學知識,並不是在學校裡教授的。任何涉及底層圖形或遊戲編程的工作也需要數學知識,你需要在嘗試進行這方面工作之前先學習相應的數學知識。數學也對理解算法的複雜度有所幫助,但在最初幾年的編程中,你不太可能需要創造出新的算法。
然而,你需要擅長解決問題。我認為學校數學教育教會你如何解決問題,但其他愛好,比如玩數獨也同樣能訓練你解決問題的能力。
當然,你需要掌握一些基本的數學概念,如微積分、代數和邏輯,但只是一些基礎知識罷了。你不需要了解複數、概率、方程、圖形、指數與對數、極限、導數、積分、微分方程等任何複雜的知識。
不要聽信那些門戶守衛的話:如果他們告訴你因為數學不好,你就不能成為程式設計師,那就不要理他們。你總是可以在途中學到你需要的一切。保持學習的態度比已經知道一切更加重要。
再次強調,我講的是網頁開發,而不是需要數學知識的圖形學或特定應用領域。