-
1 # 動感超人16744879
-
2 # 乾貨站
那要看你的程式設計從事哪個方向了,如果選擇遊戲這個方向,那就有點吃不消了,這個方向最重要的就是對演算法的掌握,題主應該知道演算法這個概念;但是如果選擇的不是遊戲這個方向,而是一般的開發,那麼演算法就沒那麼優先順序高了,最重要的是邏輯思維,思路清晰就好辦了。
並不是程式設計就要會高等數學,踏踏實實學一門程式語言,搞好一門程式設計技術,是一件很好的事情。技術都在慢慢的成長,在學程式設計的過程中會接觸到一些關於數學方面的知識,不必擔心。
我還見過有人都沒有上過高中,同樣在學習程式設計,也還可以的,好好學了,都會有所成就,有句話叫“天才=99%汗水+1%靈感”。
-
3 # 把往事捻塵香
做程式設計開發一定得有數學思維。因為程式設計裡面有好多是邏輯性的,沒有數學思維,好多程式做不出來。比如遊戲類程式設計,牽涉到很多資料的邏輯連結,如果不能很好的運用,也許不可能做好一款產品吧。
-
4 # 網羅大事小事
數學並不是計算機科學的基礎
很多人都錯誤的認為,計算機科學是數學的一個分支,數學是計算機科學的基礎,數學是更加博大精深的科學。這些人以為只要學會了數學,程式設計的事情全都不在話下,然而事實卻並非如此。
事實其實是這樣的:
計算機科學其實根本不是數學,它只不過借用了非常少、非常基礎的數學,比高中數學還要容易一點。所謂“高等數學”,在計算機科學裡面基本用不上。計算機是比數學更加基礎的工具,就像紙和筆一樣。計算機可以用來解決數學的問題,也可以用來解決不是數學的問題,比如工程的問題,藝術的問題,經濟的問題,社會的問題等等。計算機科學是完全獨立的學科。學習了數學和物理,並不能代替對計算機科學的學習。你必須針對計算機科學進行學習,才有可能成為好的程式設計師。數學家所用的語言,比起常見的程式語言(比如C++,Java)來說,其實是非常落後而糟糕的設計。所謂“數學的美感”,其實大部分是夜郎自大。99%的數學家都寫不出像樣的程式碼。數學是異常糟糕的語言
這並不是危言聳聽。如果你深入研究過程式語言的理論,就會發現其實數學家們使用的那些符號,只不過是一種非常糟糕的程式語言。數學的理論有些是有用的,然而數學家門用於描述這些理論所用的語言,卻是紛繁複雜,缺乏一致性,可組合性(composability),簡單性,可用性。這也就是為什麼大部分人看到數學就頭痛。這不是他們不夠聰明,而是數學語言的“設計”有問題。人們學習數學的時候,其實只有少部分時間在思考它的精髓,而大部分時間是在折騰它的語法。
程式設計是一門藝術
從上面你也許已經明白了,普通程式設計師使用的程式語言,就算是C++這樣毛病眾多的語言,其實也已經比數學家使用的語言高明很多。計算機科學並不是數學的一個分支,它在很大程度上是優於數學,高於數學的。有些數學的基本理論可以被計算機科學所用,然而計算機科學並不是數學的一部分。數學在語言方面帶有太多的歷史遺留糟粕,它其實是泥菩薩過河,自身難保,它根本解決不了程式設計中遇到的實際問題。
程式設計真的是一門藝術,因為它符合藝術的各種特徵。藝術可以利用科學提供的工具,然而它卻不是科學的一部分,它的地位也並不低於科學。和所有的藝術一樣,程式設計能解決科學沒法解決的問題,滿足人們新的需求,開拓新的世界。所以親愛的程式設計師們,別再為自己不懂很多數學而煩惱了。數學並不能幫助你寫出好的程式,然而能寫出好程式的人,卻能更好的理解數學。
-
5 # 邱小姐596
首先宣告,作為一個並不喜歡,甚至討厭數學的數學系研究生,想說一下自己的看法,數學並不是科學,不是誰創造這門學科,數學本身就是存在的,一切科學的源頭與終結都是數學,有人說數學是門糟糕的語言,讓我想起了我的數學分析老師有次堂課說的一句話,數學是上帝的語言,她太有趣又太難了。
-
6 # 燈塔指引前路
數學對於程式設計異常重要,或者說對任何學科都是異常重要。數學是一種形式科學。
這體現在方方面面。首先數學是程式設計的基礎,受過正統計算機教育的人都知道,離散數學、資料結構、演算法和可計算性的知識都是程式設計必不可少的,而這些都是數學。如果你連O(logN)這些都搞不清楚,你肯定不是一個優秀的程式設計師。也許很多人不知道,遞迴的數學解釋就是數學歸納法。
其次,數學是很多計算機應用的基礎。數值計算是計算機科學的一個分支,包含LU分解、有限元分析等,這些都要深厚的數學功底。人工智慧中,你必須知道梯度、vector calculus才能理解什麼是反向傳播演算法。計算機圖形學中,無時無刻不用到矩陣向量的概念。例子太對了,不勝列舉。
如果你是沒有經受過正統的科班教育的碼農,那也許你會覺得數學不重要。可如果你是一個計算機專業畢業的程式設計師,你就會覺得數學無比重要!
-
7 # 歪程式猿
我感覺,數學對於業務層程式碼幫助不大,但是對於涉及演算法、高速數學計算部分還是很有幫助的,業務層一般用到數學的不多!但是不代表不重要,也不代表非常重要!程式設計的邏輯性強,但不一定和數學有關係;我個人認為數學不等於邏輯,邏輯也不等於數學。
-
8 # IT老友
數學是一切科學的基礎,也是計算機科學的基礎。
不僅一切演算法基於數學,而且沒有數學,是無法程式設計的。
程式設計中的加減乘除運算基於數學。
程式設計中的if/else判斷是數學的邏輯判斷。
程式設計中的進位制轉換是基於數學。
資料庫的left join等也是運用了數學中的集合。
光這些基礎的,可能有人不以為然。再看一道程式設計題。
給定表示式[x/2] + y + x * y, 其中x,y都是正整數。其中的中括號表示下取整,例如[3/2] = 1 , [5/2] = 2。 有些正整數可以用上述表示式表達出來,例如正整數2,當取x = y = 1時,可以把2表達出來 ( 解釋下:當x=y=1時, [x / 2] + y + x * y = [1 / 2] + 1 + 1 * 1 = 0+1+1 = 2 ); 有些數可以有多種方式表達,例如13可以由 x = 2 y = 4 以及x = 3 y = 3來表示; 有些數無法用這個表示式表達出來,比如3。 從1開始第n個不能用這個表示式表示出來的數,我們叫做an,例如a1=1 a2=3,給定n,求an。 輸入:n值 1<=n<=40 輸出:an % 1000000007的結果(因為結果較大,輸出an %1000000007的結果)這道題可以說不懂梅森質數,大數取模(a^n mod b)是不可能做出來的。
資料結構中的圖論等等基於數學,一切演算法皆基於數學。
“高等數學在數學計算機科學基本用不上”,這句話可以說大錯特錯。說出這句話的,要麼壓根就不是程式設計人員,要麼就是連程式設計的大門都找不著。
就拿現在最火爆的人工智慧來說,先看最簡單的近鄰演算法。
再看決策樹
再看貝葉斯
再看梯度上升/下降。
svm
可以說,沒有高等數學,連人工智慧的門都找不著,如何程式設計?
數學不是異常糟糕的語言,更不是落後的語言,相反,數學是最簡潔最優雅的語言。
程式設計不過是數學實現的一種工具。
如果想在程式設計路上走,尤其想在人工智慧這條路走,請好好啃數學。
個人程式設計多年,一如老老實實啃數學。
-
9 # 心理變態狂
沒有必然關係。程式設計不等於數學,不等於算術,不等於邏輯,不等於演算法,不等於軟體,不等於寫軟體,不等於工具,不等於駭客,不等於底層,不等於破解,不等於程式,不等於程式碼,不等於模組,不等於類,不等於高階語言,不等於函式,不等於API,不等於英語,不等於單詞,不等於錢。
-
10 # 無意義名字
數學只是提供程式設計思路。中學數學足夠了。我最多用到圓周率和三角函式。比如算GPS座標距離。
但高等數學真沒有用到過。
另外,計算機是隻會加法的。太高階的公式並不會使程式速度變快。
-
11 # zwz6
底層演算法需要數學,如果只是搭積木用現成模組的話並不太依賴數學功底。
建築師會建房子不一定要會燒製磚塊,澆築水泥。瞭解這些建材的外部效能特點就可以了。
所以才有計算機科學家和碼農的區別。。。
-
12 # 魯賓孫印象
數學是自然科學的基礎。
計算機科學是數學科學的一部分。
演算法需要很多的數學基礎,我導師的話,演算法的複雜就是為了使用的簡單。
最終每個計算機語句都有對應的硬體能實現。
學了計算機 有幾個好玩的技能 走迷宮 下五子棋 計算機率 化簡 等等的。計算機學科裡有幾個學問 離散數學 圖論 謂詞邏輯 很好玩的
另外現在86結構計算機 是透過邏輯運算來解決數字運算。 還有 與或非 化簡等等的。
-
13 # 看星星在天上起舞
我想起我們剛進大學時我的大學老師就說,你們不要把程式設計想成就是簡單的寫程式碼,雖然你們現在要新學很多程式設計相關的基礎知識,但你們要記住,程式設計的核心是演算法,程式碼誰都可以寫,但是演算法卻是大多數人做不出來的
-
14 # 手機遊客1234567890
數學並不是萬能的,但沒有數學就是萬萬不能的。任何科學技術的發展都離不開數學。凡涉及到數量計算的都是數學的範疇。小到數量的累積,大到天體計算。我的語文老師說:語文是一切科學之父。數學老師接過話茬說:數學是一切科學之母。話雖是玩笑,但也不能不說有道理。古人從數羊開始進行了記載,不同的文明承載了不同的文化,形成了不同的文字和語言,我們既不能片面地否定數學的功能和作用,也不能狹義地理解數學的本質和影響。任何事物都要一分為二地看待。如果沒有數學,我們仍然每天吃樹皮甚至被凍死、餓死或因疾病夭折。任何事情不能走極端。我想說的是:不要因貧窮(知識的貧乏)影響了你的想象力。
應該講,沒有數學就不可能有像現在這樣的生活。沒有數學就不可能使人類社會向前發展。計算機是一門應用科學,它包含的不僅是數學,還有很多自然科學類別。從應用上講,數學是一種公共語言,它可以用最簡單的數字透過組合,形成非常微妙的語言,透過計算機的邏輯排列可以製作完成各種絢麗多彩的世界。數學是計算機的基礎,計算機使數學向前發展。就這樣。能看懂本短文的都是高人,看不懂的,只能說你還有很大很大的提升空間。歡迎大家來噴。
-
15 # 聽書問道
數學知識可能高中就差不多了。但數學思維,多少都不會多,推理歸納,這可能就是碼農和程式設計師的區別了,最後拼到底就是這些內功了。
-
16 # X工程師
對於很多業務程式碼搬運工,都是if else的存在,比較少感受到數學的存在、感受到演算法的存在重要性。
這就是為什麼很多人會問,面試面演算法有啥用? 對於這種問題一般都看的回答了,如果你相信,先去學了,再來問為什麼。
當然,其實我們職場很多崗位確實不需要那麼多的要求,能實現業務程式碼就好,這就是國內面試喜歡問你做過什麼專案,遇到什麼問題,怎麼解決,學到什麼,諸如此類的問題。
-
17 # 郭大少的自媒體
有一句話說過,一個數學家不一定是計算機專家,但一個好計算機專家一定是個數學家。你在程式裡要解決一個數學題,你都不會做,怎麼用程式來實現解題呢?所以說數學對程式設計來說,至關重要
-
18 # 佩子臨
這個要分情況來看。
初級的程式設計不要太多深奧的數學知識,更多是一種邏輯思維的理解,對於各種規則的運用。這個時候程式設計有點像工具或者搭積木的感覺,很多初中甚至小學的變成天才,其實也沒有太高深的數學知識,但是照樣玩得轉。
但問題是,程式設計,或者說計算機科學,發展到最後,則幾乎要很大程度上地依賴數學。有一位Facebook員工跟我講,決定一個程式設計師上限的有兩條:一個是程式碼的感覺,另一個是數學的水平。
嚴格意義上來說呢,程式設計搞到最後也是兩條出路:工程型和學術型。
工程型的比如說大家都在上淘寶,為什麼你點開一個圖片,就打開了一個連結?那是web工程師的功勞,再比如你看很多手機頁面設計的美輪美奐,那或許是一個兼具工業設計和程式設計能力的人的成果。
工程型的程式設計師,其實沒有多少創新,他們其實就是把已知的一些程式設計技術熟練的掌握,要說數學知識,會在處理一些技術難題的時候用到。
還記得facebook創始人馬克扎克伯格創辦撕破臉時,借鑑的一個公式嗎?那就涉及到統計數學的一些原理。
另外一種就是學術型的程式設計。這個就厲害了,搞的東西會非常深奧,某種程度上就是在研究數學和計算機的結合。
舉個例子,每年雙十一,全國有好幾億人在短短的幾分鐘內湧入淘寶買東西,你想想看,如果發生在現實中,一個大樓估計都要被壓塌,這麼大的資料流量,如何保持系統不崩潰,沒有差錯?
這就涉及到非常高深的數學理論。而阿里巴巴,騰訊的高薪養的那些科學家級別的人才,就是成天和數學打交道。
當然了,普通人的話,不需要學到那麼高深,一個年薪五十萬的程式設計師,大概掌握以下知識就可以了:
《演算法競賽入門經典(第二版)》:把書啃透,然後把書上每道題在OJ上AC了。《機器學習》(周志華):把書上每個演算法實現,每個公式推導一遍。《UNIX環境高階程式設計》:很多人都缺少的對作業系統的深入瞭解。(補充:我覺得光看這本書是比較片面的,前兩點像是在修煉內功,那麼這一條就是在修煉外功。而這本書作為起點是一個還不錯的選擇。)光搞數學也不行,英語還要好,託福 100+:跟進前沿paper,與國外同行交流但是這幾條絕對不是明面上這麼簡單,前面說了,你在研究程式設計的同時,還要對數學涉獵有一定廣度和深度。
比如現在最火的人工智慧,大家都曉得吧?要搞清楚人工智慧的最厲害的書《機器學習》,你就需要對微積分,線性代數,機率論,數理統計,甚至是隨機過程都有一定的基礎。
清華學神韓衍雋跟我說:他編程式碼的感覺不是很好,所以就走學術型程式設計道路,現在一大半時間都是在研究數學。
綜上所述,如果你只是想找個基礎的程式設計工作,並不需要對數學有太深瞭解;但是如果你想搞一些前沿的東西,那麼光程式設計還不行,還要補補數學的課。
-
19 # 大學生程式設計指南
數學對於程式設計的重要性越來越強,數學是科學的基礎,很多研究都依賴數學,數學更像是一個基石,走向更高層面的基石,如同要成為一個物理學家首先是一個數學家,要學好程式設計,必須數學要懂,在這有兩個重要的字眼學好,要做程式設計數學不好也是可以做的,大部分的程式設計的場景對於高深數學應用相對比較少,所以很多數學不是特別好的人也能把程式設計做的不錯,但如果涉及到深層演算法,或者高效能框架方面的東西,數學不強要玩轉相當費力,數學之於程式設計主要表現在兩個層面一個思維邏輯,一個是程式設計裡面複雜的數學演算法需要數學基礎。
正常來講思維邏輯這個主要是一種習慣,程式設計畢竟屬於邏輯性非常強的,有了這種習慣對於從事程式設計職業有非常好基礎,程式設計要和電腦打交道需要更多理性的思維,數學思維對於程式設計有個提升作用。演算法對於程式設計顯得異常重要,演算法對於程式設計的影響越來越大。未來對於程式設計師的需求量只會越來越大,但是對於技能的要求也是越來越高,特別是現在人工智慧的推進,對於各種演算法的要求異常的迫切,未來的程式設計師對於數學是必備。
數學對於程式設計的重要性不言而喻。
-
20 # 日衝資訊 黃
可以說數學知識不夠寫不出好的程式碼。比如說譚浩強的教材中經典的例題,ABC三個數排序問題的最佳答案就是運用了冒泡演算法而得到的。再比如,資料夾結構使用的圖論的樹形分支。資料庫索引使用的二叉樹原理。多執行緒併發和死鎖的證明中用到的時間邏輯。if else中的三段論邏輯思想。TRUE/FALSE/NULL使用的三值邏輯。可以說程式設計技術中數學無處不在。
回覆列表
我是學國貿的,可能回答有些偏差。 據我所知大學絕大部分專業對數學要求都很高,即便像我們國貿這種偏文的經濟類專業。如果數學成績很突出,不管是考研還是參加競賽都很吃香。 而程式設計毫無疑問對數學的要求應該比國貿更高。國貿是不用學高數這門課的,而計算機專業高數是必修課。我看過一個專業是計科的同學做程式碼作業,就隨意看了一道題,就是一個類似機率論的問題。 所以學好高數還是很必要的