程式設計師怎樣學數學

2021-08-08 02:08:01 字數 2864 閱讀 1069

steve yegge

譯者: 

puto

自從我讀了johnny von neumann的傳記,我已經為彌補我糟糕的數學技能花了15個月了.讀了大量的數學書籍,不過呢,似乎我還有更多沒有讀.當然我會接著做的.

現在我就來告訴你這些.

這並不包括傳統的智慧型

首先:程式設計師不認為他們需要了解數學.我常常聽到這樣的話;我不知道還有會不同意這個的.甚至於以前是主修數學的程式設計師也告訴我他們真的不是常常使用到數學!他們說 更重要的是要去了解設計模式,物件導向原理,軟體工具,介面設計,以及一些類似的東西.

你了解嗎?他們完全正確.你不需要了解很多數學你就能做個很棒,很專業的程式設計師.

但是呢,同時你也不是真的需要知道如何來程式設計.我們要面對的是:有很多專業的程式設計師,他們認識到他們不是非常擅長數學,但他們還是尋找方法去提公升.

如果你突然覺得自己好爛,周圍的人都遠遠的超過你,你會怎麼想呢?好,你可能會發現自己善於專案管理,或者人事管理,或者介面設計,或技術寫作,或者系統管理,還有許多其他程式設計師不必去精通的.你會開始堆積那些想法(因為工作永遠幹不完),當你發現一些你能掌握的東西時,你很可能會轉移去全職的做這個工作.

實際上,我認為有些東西你不需要了解,當目前你還能夠賴以生存.

所以他們是對的:你不需要了解數學,並且沒有她你也能過的很好.

但是最近我學到一些東西可能會讓你也感到驚喜:

在你知道如何程式設計之後,數學更容易學會.實際上,如果你先學數學,然後半路出家做程式設計師的話,你會發現程式設計簡直就是小菜一碟.

學校裡教數學的方式都錯了.僅僅是教學的方法錯了,不是教數學本身錯.如果你以正確 的方式學習數學的話,你會學的更快,記住這會更長,但對你作為乙個程式設計師來說也更有價值.

哪怕了解一點點相關的數學知識就能讓你寫出可愛有趣的程式,否則會有些小難度.換 句話講,數學是可以慢慢學的,只要你有時間.

沒人能了解所有的數學,就是最棒的數學家也不是.數學領域正不斷的擴充套件,當人們發明 新的形式去解決自己的問題時.一些給出的數學問題,也正如程式設計,不止一種方法可以去 解決他.你可以挑個你最喜歡的.

數學是......嗯,請別告訴別人我說過這個哈;當然我也不指望誰能邀請我參加這樣的 派對,當我還活著的時候.但是,數學其實就是......我還是小聲的說吧,聽好了:(她其 實就是一種樂趣啦!)

the math you learned (and forgot)

你學到的數學(和你忘了的)

這兒是我能記得在學校學到的數學:

初中:數,數數,算術知識,初級代數("問題故事")

高中:代數,幾何,高等代數,三角學,? (圓錐和極限)

大學:微積分,微分公式,線性代數,概率和統計,離散數學

上面那個關於高中數學課程單子上所列的,怎麼來著?美國高中幾乎都是這樣的課程設定.我認為其他國家也會很相似的,除了那些在9歲之前就掌握了這些課程的學生.(美國人同時卻在熱衷於玩魔鬼卡車競賽,雖然如此,整個來說也算不上什麼大損失.)

代數?是的.沒問題.你需要代數.和一些理解解析幾何的知識.那些很有用,並且在以後 幾個月裡,你能學到一切你想要的,十拿九穩的.剩下的呢?我認為乙個基本的介紹可能 會有用,但是在這上面花整個學期或一年就顯得很荒謬了.

我現在意識到那個書單列表原是設計來準備給那些以後要當科學家和工程師的學生的.他們在高中裡所教的數學課程並不是為你的程式設計生涯做準備的,簡單的事實是多數的程式設計工作相比其他的工程師角色更加要求快速.

甚至於你打算當一名科學家或者一名工程師,我會發現這更加容易去學習和欣賞幾何學和三角在你理解了什麼是數學之後-- 數學它如何而來,如何而去,為何而生.不必去專研記住幾何上的證明和三角恒等式.但是那確實是高中學校要求你必須去做的.

所以這樣的書單列表不再有什麼用了.學校教了我們不是最合適的數學,並且方式也不對.不奇怪程式設計師認為他們不再需要數學:我們學的大部分數學知識對我們的工作沒什麼大的幫助.

the math they didn't teach you

他們沒有教到你的那部分數學

在真實的生活中,計算機解決方案數學**的,或者任何包含了許多數學的舊**.他們做了同樣的分類檢查,正如在你讀**的時候所做的,但是不只是這些,除非他們不想把作者的觀點扳倒.

照那樣說法,我還是偶爾做數學練習.如果那些(比如代數和線性代數)又不停的跑過來,然後我就開始做些練習去確定我是真正的理解她了.

但我要強調這點:不要讓練習使你分心.如果乙個練習(甚或是一篇特別的文章或章節)開始讓你煩惱,那就暫時丟一邊繼續前進.該跑路就堅決跑路.讓你的直覺引導你.你會學的更多,更快,你的信心也會隨之增長.

這些怎樣才能幫到我?

也許不是--不能立刻奏效.但確實能幫助提公升你的邏輯推理能力;好比是在體育館做練習,你整體的能力會提公升如果你每天都做一點的話.

對我來說,我已經注意到一些我已經感興趣的領域(包括人工智慧,機器學習,自然語言處理,和模式識別)大量的使用到數學.如我已經挖的有點深度的領域,我已經發現他們使用的數學不再比我在中學的學到的數學還要更難;大部分來說僅僅是不同領域.不是更難了, 並且學習使我能寫(或者是在我自己的**裡使用)神經網路,基因演算法,貝頁斯分類器,集群演算法,影象識別,和其他時髦的東西能產生很酷的應用.我常向我的朋友顯寶.

我已經漸漸意識到這點,當別人給我看一篇包含了數學符號的文章我不再像突然冒了一身冷汗:組合,微分,真值表,定列式,無限系列,等等.那些數學符號現在變得容易相處了,但(像程式語言的語法)一開始的話多少還是有點讓人感到有些怪異.現在我能更好的理解了,當我一點不知道正在說什麼時,也不再感到自己是個不懂數學的人了.因為我知道自己是能夠弄明白的.

那很好.

我會繼續加油做的更好滴.我還有不少活頭,有好多書和文章要讀.有時我會花整個週末來讀數學書,有時會數週都不再思索她.也和其他興趣一樣,如果你單純的信任她你就會有興趣,也能更容易的消磨時光,你可以經常一點點的嘗試應用你覺得有趣的並且從中獲益.

好好學習,天天數學!

程式設計師要怎樣學英語

第一,既要看 也要讀文件。讀文件唯讀 是很多程式設計師的習慣,也是導致程式設計師雖然讀了很多英文資料,英文水平卻沒有相應提高的原因之一。以前曾在 程式設計師 上看到介紹閱讀技術圖書方法的文章,提出過 先 後文字 的方法,也就是 先看 看不明白再看文字 這種閱讀法能極大提高閱讀效率,但如果技術圖書只看...

程式設計師學python 程式設計師學Python

章python基礎1 1.1表示式和計算1 1.1.1數值計算1 1.1.2標準函式和數學函式包5 1.1.3字串7 1.2變數和賦值10 1.2.1名字 變數和賦值10 1.2.2簡單指令碼程式12 章python基礎1 1.1表示式和計算1 1.1.1數值計算1 1.1.2標準函式和數學函式包5...

這是程式設計師學數學的獨特方式

翻譯 機器之心 簡潔的 不僅能執行程式,還能用來學數學。如果你學習過數學,你一定知道這些符號的含義,而如果我們能用最喜歡的程式語言來理解它們,也許還能帶來更加透徹的領悟。近日,mindbuilderai nurio 創始人 機器學習專家 ian rowan 介紹了自己借助 來理解數學計算過程的經驗。...