導航:首頁 > 程序命令 > 程序員需要很多數學嗎

程序員需要很多數學嗎

發布時間:2023-01-06 22:19:26

Ⅰ 學計算機一定要數學好嗎

作為一名IT行業的從業者,同時也是一名計算機專業的研究生導師,我來回答一下這個問題。

首先,數學和物理對於計算機專業有重要的影響,因為軟體研發問題說到底就是數學問題,而硬體研發說到底就是物理學問題,所以學好數學和物理對於計算機專業的學生來說具有重要的意義。不少計算機專業的研究生導師也比較喜歡數學專業和物理學專業的學生,數學專業的本科生在讀研時選擇大數據、人工智慧等方向也是比較不錯的選擇。

當然,隨著IT行業的不斷發展,軟體開發的難度也在下降,大量的應用級開發崗位對於數學的要求並不高,比如前端開發、移動終端開發、Web開發等涉及到數學知識的地方並不多,所以即使數學基礎比較薄弱,目前也可以從事軟體開發工作。但是如果要從事研發級崗位,則需要具備扎實的數學基礎。

目前是大數據、人工智慧時代,大數據和人工智慧是典型的交叉學科,大數據的基礎知識包括三方面,分別是數學、統計學和計算機,而人工智慧涉及到的基礎知識就更多了,包括哲學、數學、計算機、經濟學、神經學、語言學等。所以,如果想從事大數據和人工智慧領域的開發,數學是比較重要的。

隨著雲計算服務逐漸從IaaS轉換到PaaS,軟體開發模式也在發生著變化,一些基礎性的開發任務將逐漸被整合(場景開發),未來大量的應用級開發程序員將面臨崗位升級的問題,而數學是崗位升級的關鍵因素之一。尤其是未來人工智慧產品的採用將代替大量的初級開發崗位,程序員的工作內容將進一步向技術創新方向發展,而IT行業的技術創新在很大程度上要依賴於數學知識。

如果有互聯網方面的問題,或者考研方面的問題,都可以咨詢我,謝謝!

我是「驢子談」,這題我來談!

由於你沒說在你在計算機中到底是學習的什麼?所以我就從編程的角度來講了。希望你能從中明白,舉一反三映射到你的計算機知識方向中。

我是程序員,高中學歷,曾在網路,阿里巴巴等互聯網公司干過。

我曾經也認為,學計算機編程都必須要數學甚至高等數學。其實這都不一定的,大部分用到什麼就現學什麼,更多的是找到對應公式生搬硬套,往往非常可行。

數學在計算機編程中不是必須的,但它絕對是重要的。主要是你往什麼方向走。比如,演算法工程師就需要高等數學了。如果只是普通的碼農,數學甚至只需要小學水平就行,能解開應用題。就比如做一個網購支付結算,就是加減乘除和求余,其他的沒啥。如果需要排序什麼的簡單演算法,網上搜索就行啦。普通的碼農就是羅輯思維+小學數學和初中英語,就這么簡單。

舉個例子,我曾經寫了一段代碼,演算法用了30多行,我的一個哥們兒數學厲害,就用了5行搞定。當然,它並不是代碼壓縮。於是我有事沒事也就鑽研起來了高級點兒的數學。數學只有初中水平的時候,沒覺得怎樣,學會了高級點兒的數學,也只是特定情況下才用到,可以提高代碼質量。

如果是 游戲 編程,那自然就得會弦,餘弦之類的計算,還要會向量,3D數學。我之前也不懂,初中學的都忘干凈了,最近自學 游戲 開發,還不是查資料自學,單獨補數學知識。

就像學編程,必須英語好嗎?這類問題,英語只要認識基本的英語字母就行了。我初中英語考個位數是常事,在剛學編程的時候,記住幾個常見關鍵詞,定義變數用翻譯,後來用的多了,5-10次,就記住了,也會讀了。

記住,時間不等人,很多時候會了基本的操作,大部分都是在實踐工作中提高的。

不知道我感覺到的准不準,你問這個問題的目的就是因為自己數學不夠好,想知道如果數學在你的學科中不重要,或不是必須的,就不學了,也沒打算今後學。你之所以提這個問題,也說明了,你知道你這個需要數學。

所以,我的建議是,你多分析下,你現在的學習的計算機方向里,是不是必須用到數學甚至高等數學。或者它是否能為你的工作提高效率,如果是,那就是一個字 —— 學。

再補充一點,如果是現在必須學,不學沒法進行你的計算機學習,那就學。如果不影響你現在的學習,沒關系,數學可以放一放。

還有就是面試的時候,大部分都是,面試造火箭,工作擰螺絲。

千萬不要犯我們人類的通病,懶惰。

來說說我的看法。

在大學期間和之前的工作經歷中,我也是學習並從事計算機編程工作,期間也學習了計算機的一些相關知識。

對於數學,我的觀點是要認真學習。因為計算機的很多方面說到底都是數學。

以編程為例,現在的編程環境越來越簡單,快速,我也接觸過一些國內的編程環境。可以很肯定的是當中涉及到很多數學的思維方式。數學的學習除了知識本身之外,最重要的就是培養邏輯思維和一定的思考能力。編程中的演算法編寫設計到一些數學的知識,邏輯順序也需要數學學習來做支持。如果從事底層的設計,還會涉及到相關的數學知識。

計算機的很多方面都與數學有許多密不可分的關系、聯系。所以數學的學習是很有必要。所以不是說學計算機一定要數學好,而應該是學計算機一定要關注數學的學習。

希望可以幫助到你。

謝謝。



從高考的角度,高校計算機專業要看你的數學,物理高考成績,當然要學好數學;



從大學專業角度,要學深學透,數學自有的邏輯素養,相當重要,將來考研,數學更是必考



從以後的工作生活管理角度,基本的數學素養很有必要,不然「罵架」都沒順序與重點,開個玩笑了。

歡迎拍磚!

也不一定,做碼農就不需要很高深的數學基礎,只要邏輯思維好就OK。

學計算機可以沒有數學知識,但是要學好計算機,一定要有扎實的數學知識。理論和道理就不多講了,舉兩個實例。

一,使用泊松分布,模擬測試訂單管理系統
開發中央廚房訂單處理系統時,在系統上線前,沒有真實數據,如何模擬訂單分布呢?數學課上講概率時,有正態分布、泊松分布,等等。

泊松分布是一種常見的離散機率分布,適合描述單位時間內隨機事件發生的次數。中央廚房收到訂單是一個隨機事件,以基本固定的平均瞬時速率λ隨機且獨立地出現,所以單位時間內的訂單數量近似服從泊松分布P(λ)。

使用Apache Commons Math提供的Poisson Distribution函數,模擬客戶下單速率和數量,測試系統運行情況,在商用推廣前,做到心中有數。

二,一個經濟學公式,造就了一家互聯網 科技 巨頭,近千億美元市值
美國版攜程Priceline,創始人Jay Walker定義的業務模式頗具特色,並申請了專利,Name Your Own Price,自我定價系統,基於經濟學中的一個公式「價格與價值相互關系原理」,產品價值通過價格體現出來。

在產品接近保質期時,價值殘值逐漸減少,比如越臨近登機,機票實際價值就越小,到飛機起飛時為零。

有專利保護的獨特商業模式,加上2000年李嘉誠入股30%後推行改革,壓縮成本,Priceline發展順利,不斷並購,現在是美國最大的在線 旅遊 科技 公司,業務遍及全球。

生活相關的基礎知識學好了都不壞

不需要!

如果你想成為一名程序員,會門語言,敲字快就行了;

如果你想成為一名架構師,年頭長點,多考點證書就行了;

如果你想成為一名產品經理,有情懷,口才好就行了;

如果你就是喜歡編程,那麼好好學數學,不會錯!

註:本文以玩笑為主,並非是對以上人士不敬。

真新鮮,看看電影,上上網頁,要什麼數學

如果大學讀計算機專業的話,數學是必修。事實上甚至我知道有些文科專業都要必修數學。

而實際上從事計算機專業的人平時需要用到多少數學知識,這個就不好說了。因為計算機這個行業覆蓋的面太廣,幾乎世界上所有行業計算機都有覆蓋到。所以有可能你是搞計算機的,我也是搞計算機的,但我們卻隔行如隔山。

可能許多人從事計算機工作用不到太多數學知識,但是學好數學對你在計算機行業可以做得更好走得更遠是有幫助的。

Ⅱ 計算機行業需要數學學的好嗎

個人認為對於計算機專業的學生來說,數學好是需要的,但是這個數學不是我們所熟悉的「數學」,而是數學思維。
數學思維對於我們的學習和工作來說是非常的重要的,因為它不僅可能增強我們的邏輯思維能力,還可以讓我們統籌大局,做到「心中有數」,因此,如果鍛煉我們的數學思維能力是非常重要的。

Ⅲ 學習計算機編程,一定要學習高等數學嗎

不一定,初等、中等的編程不一定會運用到高等數學,而要向更高層次邁進,就需要深厚的數學基礎和優秀的邏輯思維。因此學習計算機編程,不一定要學習高等數學。

一般將程序員分為程序設計人員和程序編碼人員,但兩者的界限並不非常清楚,特別是在中國。軟體從業人員分為初級程序員、中級程序員、高級程序員(現為軟體設計師)、系統分析員,系統架構師,測試工程師六大類。

(3)程序員需要很多數學嗎擴展閱讀

行業現狀

由CSDN、《程序員》主辦的2007年開發者大調查2007年底已收到15000多份有效問卷,已經是中國調查樣本最多的開發者調查。

在這次調查中,詳細的分析了樣本空間的分布狀況,發現在龐大數目的有效問卷的參與者中有70%也就是接近一萬一千名的參與調查者是IT的全職人員,14%的參與者是有過開發工作經驗的學生,

從這樣的分布就可以看出來IT從業人員對專業知識的需求是巨大而迫切的,CSDN作為專業的軟體開發技術門戶網站,已經是大家獲取這些技術知識的主要手段。

職業要求

一般的程序員都有四年的在專業領域的學習,需要一個在程序領域的學士學位獲得者,不論是數學方面的還是工程方面的都是可以的。

大約有20%的人在這一領域的計算機科學和工程學擁有更高的學位。還有很小一部分程序員是自學的,盡管一些專業性的學校或者綜合大學可以提供,但是也需要一些別的途徑來提供相關的人才。

盡管學歷是比較重要的,但是公司經常把重點放在應聘者的工作經驗上,很多剛從大學畢業的大學生雖然有引人注目的學位證書,但是他們找不到工作是因為他們缺乏經驗。

一個程序員雖然沒有正規的學歷,但是如果一個人擁有程序設計的深厚知識背景或者豐富的工作經驗的話,那麼他的機會要比有學歷的應屆畢業生大得多。

所以要盡量抓住有用的工作和實習機會,這樣的話在畢業後你就會發現,多實習讓你有更多的經驗,在找工作的時候就有更多的機會。

Ⅳ 一個優秀的程序員需要擅長數學嗎

程序員都應該懂得數學。程序的基礎是數學,不管是有意還是無意,程序員的工作中都會涉及到很多的數學知識的。

Ⅳ 做程序員一定要數學很好嗎

做程序員需要數學知識的,從事開創性的工作的都是數學很好的。比如谷歌的搜索系統,那就是從一個數學模式中推導出來的。

Ⅵ 程序員需要數學很厲害嗎

程序員不需要數學特別優秀,但需要有一定的數學基礎。

程序員(英文Programmer)是從事程序開發、程序維護的基層工作人員。一般將程序員分為程序設計人員和程序編碼人員,但兩者的界限並不非常清楚。

數學是人類對事物的抽象結構與模式進行嚴格描述的一種通用手段,可以應用於現實世界的任何問題,所有的數學對象本質上都是人為定義的。從這個意義上,數學屬於形式科學,而不是自然科學。不同的數學家和哲學家對數學的確切范圍和定義有一系列的看法。

程序員崗位職責:

1、對項目經理負責,負責軟體項目的詳細設計、編碼和內部測試的組織實施,對小型軟體項目兼任系統分析工作,完成分配項目的實施和技術支持工作。

2、協助項目經理和相關人員同客戶進行溝通,保持良好的客戶關系。

3、參與需求調研、項目可行性分析、技術可行性分析和需求分析。

4、熟悉並熟練掌握交付軟體部開發的軟體項目的相關軟體技術。

Ⅶ 要想成為一名頂尖的程序員,要學習高等數學嗎

必然的,必須的。
頂尖的程序員除了懂寫代碼外還要懂各種演算法的應用。而應用的背景知識就是高等數學。如果只知道寫代碼,那麼還算不上頂尖的程序員,頂多算個中等的程序員。
舉個最簡單的例子,做圖像識別或人臉識別,就是對圖像進行處理。而圖像的本質就是矩陣,因此離不開線性代數的各種運算,特徵求解,規劃求解。
人臉識別中可能還涉及到神經網路的學習和試算梯度預算,就離不開微積分。
再舉個例子,密碼的編譯也離不開矩陣代數應用,無論是密文還是密文轉明文。
還有,文字索引,文本處理……是在太多太多了。以上的知識,還要變成代碼寫入你的程序中的。
所以,光從應用的角度來看,就離不開高等數學。要想成為頂尖的程序員,那就更要學好高等數學。

Ⅷ 程序員必備的一些數學基礎知識

作為一個標準的程序員,應該有一些基本的數學素養,尤其現在很多人在學習人工智慧相關知識,想抓住一波人工智慧的機會。很多程序員可能連這樣一些基礎的數學問題都回答不上來。

作為一個傲嬌的程序員,應該要掌握這些數學基礎知識,才更有可能碼出一個偉大的產品。

向量 向量(vector)是由一組實數組成的有序數組,同時具有大小和方向。一個n維向量a是由n個有序實數組成,表示為 a = [a1, a2, · · · , an]

矩陣

線性映射 矩陣通常表示一個n維線性空間v到m維線性空間w的一個映射f: v -> w

註:為了書寫方便, X.T ,表示向量X的轉置。 這里: X(x1,x2,...,xn).T,y(y1,y2,...ym).T ,都是列向量。分別表示v,w兩個線性空間中的兩個向量。A(m,n)是一個 m*n 的矩陣,描述了從v到w的一個線性映射。

轉置 將矩陣行列互換。

加法 如果A和B 都為m × n的矩陣,則A和B 的加也是m × n的矩陣,其每個元素是A和B相應元素相加。 [A + B]ij = aij + bij .

乘法 如A是k × m矩陣和B 是m × n矩陣,則乘積AB 是一個k × n的矩陣。

對角矩陣 對角矩陣是一個主對角線之外的元素皆為0的矩陣。對角線上的元素可以為0或其他值。一個n × n的對角矩陣A滿足: [A]ij = 0 if i ̸= j ∀i, j ∈ {1, · · · , n}

特徵值與特徵矢量 如果一個標量λ和一個非零向量v滿足 Av = λv, 則λ和v分別稱為矩陣A的特徵值和特徵向量。

矩陣分解 一個矩陣通常可以用一些比較「簡單」的矩陣來表示,稱為矩陣分解。

奇異值分解 一個m×n的矩陣A的奇異值分解

其中U 和V 分別為m × m和n×n 的正交矩陣,Σ為m × n的對角矩陣,其對角 線上的元素稱為奇異值(singular value)。

特徵分解 一個n × n的方塊矩陣A的特徵分解(Eigendecomposition)定義為

其中Q為n × n的方塊矩陣,其每一列都為A的特徵向量,^為對角陣,其每一 個對角元素為A的特徵值。 如果A為對稱矩陣,則A可以被分解為

其中Q為正交陣。

導數 對於定義域和值域都是實數域的函數 f : R → R ,若f(x)在點x0 的某個鄰域∆x內,極限

存在,則稱函數f(x)在點x0 處可導, f'(x0) 稱為其導數,或導函數。 若函數f(x)在其定義域包含的某區間內每一個點都可導,那麼也可以說函數f(x)在這個區間內可導。連續函數不一定可導,可導函數一定連續。例如函數|x|為連續函數,但在點x = 0處不可導。

加法法則
y = f(x),z = g(x) 則

乘法法則

鏈式法則 求復合函數導數的一個法則,是在微積分中計算導數的一種常用方法。若 x ∈ R,y = g(x) ∈ R,z = f(y) ∈ R ,則

Logistic函數是一種常用的S形函數,是比利時數學家 Pierre François Verhulst在 1844-1845 年研究種群數量的增長模型時提出命名的,最初作為一種生 態學模型。 Logistic函數定義為:

當參數為 (k = 1, x0 = 0, L = 1) 時,logistic函數稱為標准logistic函數,記 為 σ(x) 。

標准logistic函數在機器學習中使用得非常廣泛,經常用來將一個實數空間的數映射到(0, 1)區間。標准 logistic 函數的導數為:

softmax函數是將多個標量映射為一個概率分布。對於 K 個標量 x1, · · · , xK , softmax 函數定義為

這樣,我們可以將 K 個變數 x1, · · · , xK 轉換為一個分布: z1, · · · , zK ,滿足

當softmax 函數的輸入為K 維向量x時,

其中,1K = [1, · · · , 1]K×1 是K 維的全1向量。其導數為

離散優化和連續優化 :根據輸入變數x的值域是否為實數域,數學優化問題可以分為離散優化問題和連續優化問題。

無約束優化和約束優化 :在連續優化問題中,根據是否有變數的約束條件,可以將優化問題分為無約束優化問題和約束優化問題。 ### 優化演算法

全局最優和局部最優

海賽矩陣

《運籌學裡面有講》,前面一篇文章計算梯度步長的時候也用到了: 梯度下降演算法

梯度的本意是一個向量(矢量),表示某一函數在該點處的方向導數沿著該方向取得最大值,即函數在該點處沿著該方向(此梯度的方向)變化最快,變化率最大(為該梯度的模)。

梯度下降法
梯度下降法(Gradient Descent Method),也叫最速下降法(Steepest Descend Method),經常用來求解無約束優化的極小值問題。

梯度下降法的過程如圖所示。曲線是等高線(水平集),即函數f為不同常數的集合構成的曲線。紅色的箭頭指向該點梯度的反方向(梯度方向與通過該點的等高線垂直)。沿著梯度下降方向,將最終到達函數f 值的局部最優解。

梯度上升法
如果我們要求解一個最大值問題,就需要向梯度正方向迭代進行搜索,逐漸接近函數的局部極大值點,這個過程則被稱為梯度上升法。

概率論主要研究大量隨機現象中的數量規律,其應用十分廣泛,幾乎遍及各個領域。

離散隨機變數

如果隨機變數X 所可能取的值為有限可列舉的,有n個有限取值 {x1, · · · , xn}, 則稱X 為離散隨機變數。要了解X 的統計規律,就必須知道它取每種可能值xi 的概率,即

稱為離散型隨機變數X 的概率分布或分布,並且滿足

常見的離散隨機概率分布有:

伯努利分布

二項分布

連續隨機變數
與離散隨機變數不同,一些隨機變數X 的取值是不可列舉的,由全部實數 或者由一部分區間組成,比如

則稱X 為連續隨機變數。

概率密度函數
連續隨機變數X 的概率分布一般用概率密度函數 p(x) 來描述。 p(x) 為可積函數,並滿足:

均勻分布 若a, b為有限數,[a, b]上的均勻分布的概率密度函數定義為

正態分布 又名高斯分布,是自然界最常見的一種分布,並且具有很多良好的性質,在很多領域都有非常重要的影響力,其概率密度函數為

其中, σ > 0,µ 和 σ 均為常數。若隨機變數X 服從一個參數為 µ 和 σ 的概率分布,簡記為

累積分布函數
對於一個隨機變數X,其累積分布函數是隨機變數X 的取值小於等於x的概率。

以連續隨機變數X 為例,累積分布函數定義為:

其中p(x)為概率密度函數,標准正態分布的累計分布函數:

隨機向量
隨機向量是指一組隨機變數構成的向量。如果 X1, X2, · · · , Xn 為n個隨機變數, 那麼稱 [X1, X2, · · · , Xn] 為一個 n 維隨機向量。一維隨機向量稱為隨機變數。隨機向量也分為離散隨機向量和連續隨機向量。 條件概率分布 對於離散隨機向量 (X, Y) ,已知X = x的條件下,隨機變數 Y = y 的條件概率為:

對於二維連續隨機向量(X, Y ),已知X = x的條件下,隨機變數Y = y 的條件概率密度函數為

期望 對於離散變數X,其概率分布為 p(x1), · · · , p(xn) ,X 的期望(expectation)或均值定義為

對於連續隨機變數X,概率密度函數為p(x),其期望定義為

方差 隨機變數X 的方差(variance)用來定義它的概率分布的離散程度,定義為

標准差 隨機變數 X 的方差也稱為它的二階矩。X 的根方差或標准差。

協方差 兩個連續隨機變數X 和Y 的協方差(covariance)用來衡量兩個隨機變數的分布之間的總體變化性,定義為

協方差經常也用來衡量兩個隨機變數之間的線性相關性。如果兩個隨機變數的協方差為0,那麼稱這兩個隨機變數是線性不相關。兩個隨機變數之間沒有線性相關性,並非表示它們之間獨立的,可能存在某種非線性的函數關系。反之,如果X 與Y 是統計獨立的,那麼它們之間的協方差一定為0。

隨機過程(stochastic process)是一組隨機變數Xt 的集合,其中t屬於一個索引(index)集合T 。索引集合T 可以定義在時間域或者空間域,但一般為時間域,以實數或正數表示。當t為實數時,隨機過程為連續隨機過程;當t為整數時,為離散隨機過程。日常生活中的很多例子包括股票的波動、語音信號、身高的變化等都可以看作是隨機過程。常見的和時間相關的隨機過程模型包括貝努力過程、隨機遊走、馬爾可夫過程等。

馬爾可夫過程 指一個隨機過程在給定現在狀態及所有過去狀態情況下,其未來狀態的條件概率分布僅依賴於當前狀態。

其中X0:t 表示變數集合X0, X1, · · · , Xt,x0:t 為在狀態空間中的狀態序列。

馬爾可夫鏈 離散時間的馬爾可夫過程也稱為馬爾可夫鏈(Markov chain)。如果一個馬爾可夫鏈的條件概率

馬爾可夫的使用可以看前面一篇寫的有意思的文章: 女朋友的心思你能猜得到嗎?——馬爾可夫鏈告訴你 隨機過程還有高斯過程,比較復雜,這里就不詳細說明了。

資訊理論(information theory)是數學、物理、統計、計算機科學等多個學科的交叉領域。資訊理論是由 Claude Shannon最早提出的,主要研究信息的量化、存儲和通信等方法。在機器學習相關領域,資訊理論也有著大量的應用。比如特徵抽取、統計推斷、自然語言處理等。

在資訊理論中,熵用來衡量一個隨機事件的不確定性。假設對一個隨機變數X(取值集合為C概率分布為 p(x), x ∈ C )進行編碼,自信息I(x)是變數X = x時的信息量或編碼長度,定義為 I(x) = − log(p(x)), 那麼隨機變數X 的平均編碼長度,即熵定義為

其中當p(x) = 0時,我們定義0log0 = 0 熵是一個隨機變數的平均編碼長度,即自信息的數學期望。熵越高,則隨機變數的信息越多;熵越低,則信息越少。如果變數X 當且僅當在x時 p(x) = 1 ,則熵為0。也就是說,對於一個確定的信息,其熵為0,信息量也為0。如果其概率分布為一個均勻分布,則熵最大。假設一個隨機變數X 有三種可能值x1, x2, x3,不同概率分布對應的熵如下:

聯合熵和條件熵 對於兩個離散隨機變數X 和Y ,假設X 取值集合為X;Y 取值集合為Y,其聯合概率分布滿足為 p(x, y) ,則X 和Y 的聯合熵(Joint Entropy)為

X 和Y 的條件熵為

互信息 互信息(mutual information)是衡量已知一個變數時,另一個變數不確定性的減少程度。兩個離散隨機變數X 和Y 的互信息定義為

交叉熵和散度 交叉熵 對應分布為p(x)的隨機變數,熵H(p)表示其最優編碼長度。交叉熵是按照概率分布q 的最優編碼對真實分布為p的信息進行編碼的長度,定義為

在給定p的情況下,如果q 和p越接近,交叉熵越小;如果q 和p越遠,交叉熵就越大。

Ⅸ 北大青鳥java培訓:編程需要多少數學知識

1、編程中的數學於是我馬上回顧了下編程中用到的數學知識,好像少的可憐。
計數的能力:for循環中經常用,小學生都會。
數字的加減乘除:每種編程語言都會內置支持,都不需要你自己算余數和模:偶爾會用得到集合運算:交集、並集、差集,編程中用的不多。
布爾運算:AND,OR,非各種進制:二進制、十進制、十六進制還有哪些?我想不起來了。
當然這和我從事的編程領域有極大關系,遼寧北大青鳥http://www.kmbdqn.cn/認為如果我做的不是Web開發,而是搜索,游戲,安全,演算法,人工智慧等,那對數學的要求估計就開始飆升了。
其實計算機的基礎是數學,只是我們一直在應用層編程,體會不到罷了。
比如說我們日常使用的計算機,絕大部分都是所謂馮諾依曼結構,這個結構可以說是圖靈機這個概念機器的具體實現,而圖靈機就是一個純數學的東西啊,沒有圖靈機這么偉大的抽象作為數學基礎,現代的計算機是製造不出來的。
再比如說密碼領域需要很多數論的知識,RSA演算法就涉及到大素數的分解;我們常用的Mysql,Oracle等關系資料庫的底層基礎是離散數學的笛卡爾乘積;通信系統中很重要的一個原理就是傅里葉變換。
編譯器會用到有限狀態機;數據的壓縮會用到各種數學的演算法;項目管理中的進度管理,甘特圖數學基礎就是圖論。
.....總之,數學在計算機科學扮演著非常重要的角色,是整個學科的基礎。
2、不拼數學拼什麼?具體到應用層編程,尤其Web開發、企業信息化開發,整天折騰的是框架和類庫,用不到這么多高大上的數學知識,那到底拼的是什麼?想想編程中常用的數組,如果是一維數組,做個循環和遍歷,每個人都能輕松應對。
如果要用數組來表示二叉樹,就需要把一個樹形結構對應到線性結構,那難度立刻上升。
如果在編程中需要自己實現鏈表,就會發現把各個節點的鏈接關系維護好,需要把指針調來調去,挪來挪去,實在不是一件容易的事情。
這樣的能力就是邏輯思維的一種體現。
我們在做系統設計的時候,經常需要總結、分析現實需求,找到容易變化的部分和相對穩定的部分,把他們封裝起來,形成核心的概念,支撐起整個系統,這是一個抽象的過程,雖然用不到多少數學知識,但是思維的過程也極不容易。
邏輯思維能力和抽象能力的差別,能夠區分出程序員的優秀和平庸。
一個優秀程序員寫出的代碼,介面清晰,容易擴展,易於維護;一個差程序員寫出的代碼,思路混亂,完全是一些計算機語句的堆砌,別人看不明白,過一段時間自己都看不明白了。
數學系的同學在這兩方面恰恰是長項,想想看,數學系同學們整天折騰這么多「枯燥的」抽象概念,再去看編程這樣大部分都是具體化的實現,簡直是分分鍾搞定!這可能是數學系的轉到編程領域很厲害的原因吧。
邏輯思維能力通過學習數據結構和演算法,做數據結構的習題可以得到有效的提高,抽象能力需要在實踐中不斷的練習、積累經驗。
對於初學編程的同學,從現在就開始努力提升吧!

閱讀全文

與程序員需要很多數學嗎相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:736
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163