2009-01-06 183 views
27

據之前有關數學和編程之間的關係在本網站的討論,以及是否一個是另一個的子集等數學,編程和學習

在我最近的編程的研究,我我發現自己越來越希望自己在數學上更好。當編程書籍開始以數學方式概括某些東西時,你們都知道這種情況(「因此,我們可以說,對於所有<some single letter>,<lots of letters>」)。在這種情況下,我的目光掠過。我知道那是主要是由於我很愚蠢,但似乎如果我可以提高我的高等數學技能,也許我可以得到更多的這種東西。

主要問題:數學確實是一個人可以「變得更好」,或者你的大腦是否有線或無線?

重要後續問題:如果上述答案是肯定的,那麼有什麼辦法可以解決呢?

回答

5

我會說這肯定是任何人都可以做得更好的。這需要時間和耐心,有些文字在所涉及的符號方面是晦澀難懂的,但如果你願意花時間,我認爲它不應該太恐怖。

我會查看維基百科的list of mathematical symbols,並隨時隨地看到附近出現大量符號。一次一個地翻譯它們,然後將它們放在一起,這樣對你最有​​意義(或問我們幾次,直到你掌握了它)。

1

學習學習學習!

維基百科實際上是一個相當好的數學參考。從你有興趣學習的東西開始,並遵循鏈接,直到你理解了最初的所有構建塊。

+0

有一件事我注意到,是什麼任何維基百科的文章「mathy」似乎得到相當先進的相當快 - 我敢肯定,這是準確,好東西,但它並使它難以傻瓜像我 – 2009-01-06 05:32:06

+0

不知何故數學公式和符號與我的大腦不匹配......幾乎就像窗戶的死亡藍屏一樣。 – melaos 2009-01-06 05:59:12

2

去當地社區學院註冊微積分1.它涵蓋了數學意義上的函數,並且有一個關於代數的嚴格的進修課程,並且只使用足夠的符號讓你領先。

+0

如果你是程序員,離散數學比微積分更有用。我肯定會從那裏開始。 – 2009-01-06 06:08:50

+0

我傾向於同意達納,在這裏。 – 2009-01-06 06:42:11

4

這是兩個。你可以在數學上變得更好。但是你的確受到大腦中特定佈線的限制/賦予。這意味着你很可能可以提高你當前的數學技能。但是,由於你的心智硬件的限制,你可能永遠不會發現一個新的定理。

當談到改善,我認爲一如既往的方式是練習。閱讀數學文獻,嘗試解決數學問題,並最終形成一個展望,在這個展望中,作爲一種習慣,你可以打破在數學術語之前看到的現實世界的難題。

至於編程與數學的關係,我認爲這是一個非常強大的。事實上,人們可以爭辯說,程序只不過是一個定理的證明,需求文檔就是證明的所有輸入。

+1

+1 - 這絕對是兩個。你的大腦可能因某種程度的數學能力而難以接受,但大多數人從來沒有達到這個限度,因爲缺乏嘗試。 – romandas 2009-01-06 08:54:03

24

我認爲任何人都可以在數學上取得更好的成績。你只需要確定和練習。

問題的部分原因是數學書籍往往是由幾十年前不再是數學新手的數學家編寫的。你想要的是與你的關卡相關的書籍,其中包含你可以使用的材料。

一些建議:

  • 如果你能找到一個副本,獲得數學和一本好書它(紹姆的大綱實際上是非常好,價格便宜)。我一直用它來形象化事物。

  • 作爲一名程序員,您可能希望針對離散數學而不是微積分。

  • 其他地方提到的具體數學書很棒。

  • 大多數介紹性離散數學文本都很好地涵蓋了邏輯,集合,組合,概率,圖論等等。我的學校使用了我喜歡的羅森文本。

  • 如果您要進行3D圖形編程,線性代數非常有用。大多數工程師介紹文本將教你你需要知道什麼。線性代數完成如果您想要更多的理論,可能是「真正的」線性代數上最好的。

  • 尋找馬丁加德納的書,玩他的謎題。他是一位優秀的作家和老師。

記住,數學不會改變太多。您可以在亞馬遜和舊書店中以廉價購買舊書。當我購買教科書時,我總是尋找n-1版本。

+1

我會警告說,使用Mathematica不教你任何關於理解數學的基本... – Alex 2009-01-06 18:40:49

1

練習練習練習!

Schaum的輪廓對此很有幫助。如果您對概率感興趣(涉及組合數學),請參閱50概率中的具有挑戰性的問題。

7

我可以分享我的經驗...

我一直以來小學數學害怕的。恨它,沒有明白,沒有追究。

相比之下,我一直對計算機着迷。我從「需要知道」學習編程 - 我無法忍受不了解計算機和編程從最低層到最高層。我幾乎完全受過自我教育,並且擁有程序員/建築師的職業生涯。

去年,在我妻子的催促下,我開始重返大學。我註冊了一個補救代數課,知道這將是一個痛苦。事實並非如此。

不知何故,通過多年學習開發面向對象軟件,似乎我已經欺騙自己學習如何以數學思維。這些概念已經不再那麼困難了。我可能已經學會了從較小,較不復雜的想法組成的複雜系統的角度思考。

我現在正在研究遊戲開發,而是一些嚴重的數學導向的編程。比我在這一點上所做的業務發展更勝一籌。然而,我並不覺得它太令人生畏,因爲它是應用 mathetmatics。努力解決實際問題似乎使得這項研究不那麼單調乏味,而且更加有趣。我發現維基百科和Wolfram的Mathworld是有幫助的。如果你已經知道如何編程,那麼你就在遊戲學習數學之前。

15

當你第一次開始學習英語時,所有這些「符號」(字母)看起來都像你一樣亂七八糟。我敢肯定,在某些時候,你對缺乏理解感到沮喪。但是慢慢地,你逐漸開始理解它們。

最終你能夠使用這些符號構造自己的單詞和句子。經過多年的結構和語法糾正之後,您現在可以掌握語言。

數學就是這樣。你的眼睛因爲你沒有學過這門語言而黯然失色。也許在學校裏,你並沒有特別喜歡數學,因爲你沒有看到任何實際的應用。當然,我們向學生講授數學的方式是殘酷的,所以難怪爲什麼很多人通過學校不熟悉它(進一步閱讀,請查看A Mathematician’s Lament,其中討論了我們目前的數學教學方法是多麼可怕)。

然而,要達到一定程度的熟練程度,可以閱讀許多學術計算機科學着作永遠不嫌晚。晚上從當地社區學院開始使用預微積分(可以刷新您忘記的所有內容)。然後繼續進行微積分,然後採取離散數學。老實說,這是所有你需要99.99%的時間的數學。在不到2-3學期的時間裏,你可以完全被抓住,在閱讀有些數學根源的東西時,你將不再瞪大眼睛。

3

學習數學就像獲得古典教育,一個特別適合程序員和其他計算機專業的教育。數學就是隨着年齡的增長,你可以欣賞更多的東西。你意識到這並不是要磨出答案,而是要深入思考和深思。你可能研究出的「答案」使這種方式更有意義。

有一次,我會建議參加幾何課程,並花一些時間來學習如何證明定理,看看這些概念是如何一起流動的。但是,現在,我認爲在離散數學課中學習可能更好。它更實用,而且有更多種類,但是如果你想要的話,那裏仍然有足夠的理論來讓它變得具有挑戰性。

離散數學也爲您提供以前可能沒有想到的編程挑戰。也許你可以通過一個很好的啓發來解決一個NP完全問題,比如一個N城市旅行推銷員問題。甚至可能會提出一些解決方案,並測試哪些在哪些情況下效果最好。

(我從來沒有把CompSci類在大學,你可能可以告訴。)

4

你的技能生鏽,如果不使用和知識隨着時間的推移逐漸消失,如果不使用。 如果你不使用你的數學技能,你很快就沒有數學技能。不斷學習和練習你已有的技能將有助於你成爲一名數學/編程碩士。

Project Euler有許多數學問題只能通過編程來解決。這些問題變得更加困難,但依靠以前解決方案中獲得的技能和知識。

我還在二手書店買了一些有趣的教科書。他們的便宜和緩慢的技能提高。我將它們與MIT Open Course ware一起使用。

4

練習數學的有趣方法是http://projecteuler.net/。 雖然它不像做課程或閱讀教科書那麼系統/有效。

2

首先,我會推薦Steve Yegge的Math For Programmers。它幾乎總結了你的鬥爭。

現在我想講一個個人的故事。我是數學和CS雙專業。我在數學課上學到了很多東西,但我真的沒有像我應該的那樣欣賞它。我會告訴你,我在編程生涯中所做的很多事情都對我有所幫助。這不是關於一些公式或者微積分,或者其他任何東西。這是一個堅實的數學背景教你如何思考,以解決問題。對我來說,這是你需要的數學。

4

我完全知道你的感受。我一直想學更多的數學,但是因爲我放學後無法在大學裏完成(沒有足夠的空間),並且無法在大學攻讀(不能拿到CS學位),我還沒有自16歲起正式學習數學。

數學是任何人都可以學習的東西。有些人會認爲隨着年齡的增長會變得越來越困難,但是我已經遇到過60個正在接受數學課程的人。在我的大學裏有一個女性70歲,而且她在數學相關領域的學位畢業幾個月。如果你想學數學,現在是時候了,儘管我會成爲第一個說這不容易的人。雖然編程經驗會讓您發現許多問題非常簡單,但您仍然會發現,經歷一系列問題需要耗費大量時間。我幾乎完成了關於線性代數的麻省理工開放式課程的課程,最後得到了一份新的兼職工作,每週工作10個小時,每週工作7天,並忘記了我學到的大部分內容。這就是說,如果你有時間和真正的奉獻精神,我可以推薦一些視頻講座的鏈接,可能會幫助你走上正路。

我並不是說這就是你需要知道的。這是我在我的CS學位畢業之前就已經着手學習的內容,所以您可以隨意挑選您感覺最適合您的任何內容。

2

1)是的。

2)探索聽起來有趣的數學問題。購買/閱讀能夠提供所需信息的書籍。重複。

1

簡短的回答:
有可能是人誰是愚蠢獲得好數學。但是這些人一般也是去愚弄去編程。

所以如果你有一些編程技巧,你可能會認爲自己也很聰明,也可以學習數學。

注:我知道有聰明的人有嚴重的數學學習障礙,但我認爲這更像是一個例外。

2

絕對可以學會。我個人從我在大學中學習的數學(特別是證明)課程中受益最大。

推薦課程:

  • 離散數學
  • 數學思想
  • 抽象代數
  • 任何其他證據課程

推薦書:

  • 螺母和證明的螺栓,由安東內拉Cupillari

我強烈建議試圖把一個或多個這些課程在某種類型的學校。找到當地的大學並審覈課程。

1

我也推薦project euler雖然它並不是完全教數學,它給你的問題,然後你可以看看如何解決。我一直喜歡解決實際問題,而不是僅僅學習理論。

2

位於2投給洛克哈特的「一個數學家的輓歌」,其中建議數學教喜歡繪畫,詩歌,音樂 - 不是爲了它的實際用處,但對於簡單的快樂:

有沒有 別有用心實際目的在這裏。我只是在玩。這就是數學 - 想知道,玩, 讓自己有了想象力。

請看最近的Knuth論文中的圖表,Dancing Links,並告訴我他做這些工作並沒有樂趣。

2

問題的一部分是,一些數學符號傳達了大量的信息。如果你正在閱讀一本普通的編程書,它充滿了文字和代碼。這些都不是超級冗長的(儘管我經常需要比正常的單詞慢得多的代碼)。然而,一個複雜的數學公式很容易成爲一個充滿編程代碼或文字的屏幕。我們有各種表達複雜過程的簡單符號。

另一個問題是符號標準化,但不完全。不同的書籍使用的記號略有不同,因此需要一段時間才能習慣。許多教科書在數學證明或甚至實例中都沒有提及關鍵步驟。有時甚至大學教授也會在教科書中的某個證明中對缺失的步驟感到困惑,然後給出他們自己的證明,或者稍微修改一下,因爲他們學到了不同的東西,或者不能完全重新創建缺失的步驟這將證明在不同的方向。

所以無論如何只是因爲你的眼睛釉過並不意味着你不得不放棄。您第一次看到方程式時,您可能會在閱讀英文文本模式時不得不暫停以考慮它們。慢慢地回過頭去,注意所有的符號意味着一次一步走,可能會給你帶來答案。如果有一些你以前從未見過的符號,可能有一個介紹章節或附錄來解釋符號,所以請在那裏查看。最後,尋找其他來源。使用谷歌/維基百科來查找這個概念的方程,你可以找到一個可以遵循的派生和/或證明。另外,另一個可以幫助你更好地理解當前的證明/推導。即使你對證明/推導的理解沒有改進,你的額外研究可能會幫助你理解方程。

2

我覺得有兩件事要學習數學: 1.學習一般技巧。即如何添加兩個分數,如何區分,整合。 2.學會解決問題並將數學應用於現實世界。

我覺得拿起數學課本你會學習1.很多數學課本都按章節組織,其中有幾頁向你展示技術,然後是一堆問題。這些問題往往與你剛剛學到的技術有關,而且非常相似。即關於對數的部分將具有對數的所有問題,並且可能不包括任何多項式。通過解決本節中的問題,您將學習這些技巧。你做得越多,你得到的速度越快,理解概念的能力就越強。很多時候你會發現,如果你沒有明確地記住公式就能解決問題,你會發現,在你做足夠的事情之後,所需的公式將被隱含記住。最終,如果您在查看概率公式時遇到困難,您將需要閱讀概率公式。如果您在總結符號方面遇到問題,您可能需要諮詢代數書的某一部分,等等......

要學習2我認爲數學教科書沒有那麼多的幫助,因爲每個部分都有相關的問題該部分。偶爾會有一些「混合評論」問題或混合問題的「章節評論」,但它們通常介於兩者之間。像物理學,生物學,化學等科學教科書往往會更好。在那裏你經常閱讀這個問題,把它解決掉,並最終使用各種數學工具來解決它。有時微積分,線性代數和幾何都屬於同一個問題。這裏的價值在於它教會你解決問題。一般來說,SAT/GRE不會測試你是否知道如何做代數,他們測試你是否知道如何將它應用到現實世界中,科學問題真的可以幫助你。一般而言,編程是關於解決問題的,解決問題越好,編程就越好。基本上在編程時你會遇到問題,創建一個心智模型,設計一個解決方案,然後用你選擇的編程語言對它進行建模。這與物理學相似。你看問題,提取一個數學模型,設計一個解決方案,用解決方案的模型解決一些方程,然後插入數字。我強烈推薦物理學,因爲在我的大學物理課後,單詞問題對我來說變得很簡單,他們使用相當困難(雖然不是不可能)。

在日常編程中,您可能不會使用代數和邏輯(if語句和循環條件)。有一些地方使用計算機遊戲,密碼學,數據挖掘等高等數學,但對於典型的商業應用程序,您可能不會使用代數和邏輯,也可能使用一些集合論(這些東西如此基本內化它)。即使在使用高數學的地方(如金融公司),商業用戶(或某些行業文獻)經常會做更高的數學計算,而您只需要實施方程式(帶有一些代數)。我只提到這一點,因爲除非您正在閱讀算法分析(算法入門),人工智能或某些其他研究領域的教科書,否則大多數編程書籍的代碼和邏輯都不會超過代數和邏輯。關於如何做事的一般應用書通常在數學上很短。

但取決於你正在閱讀的數學可以提供幫助。對於大多數計算機科學代數+離散數學應該足夠了。再加上一些物理實踐,你應該很好去。它可能仍然是一個緩慢的走,但你應該有適當的背景。

2

我喜歡combinatorics和算法 - 玩得開心,你學得更快。