在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

程序員為什么要學數學 又如何學數學

工程師人生 ? 來源:wv ? 作者:簡書網 ? 2019-10-25 16:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在開篇,我詳細講了程序員為什么需要學數學。那么,怎樣的學習方法才是行之有效的呢?我想你現在心里還沒有一個固定的答案,而我不想一味地去講我自己的一家之言,畢竟沒有什么學習方法是最好的。

你能做的是要多看,去找適合自己的。而我能做的,就是盡量給你更多的參考,讓你可以自己來選擇。所以,我邀請了幾位朋友,讓他們來談一談,自己學習數學的一些心得體會,希望對你有所啟發。

程序員是否需要學好數學?原本學數學分析、概率論、線性代數的時候,我也沒想到數學和寫程序有啥關系,但是隨著研究的開源軟件越來越多,我發現很多技術深入下去,本質就是數學。

程序員應該怎么學習數學呢?我不建議你將大學的數學書拿出來啃一遍,一來耗費大量時間,二來和實際應用結合不起來,往往該看的忽略了,不該看的費了半天勁用不上,過一陣又忘了。

我們了解一個新技術有三個階段,第一階段是,怎么使用;第二階段是,如何實現,原理是什么;第三階段是,為什么這樣實現。學數學和學一門新技術一樣,也有這樣三個階段,先用起來,了解原理,然后了解為什么。

用一句話來說,我們不能為了數學而學數學,學數學要和具體的應用結合在一起。

隨著過去幾年深度學習成為程序員界的顯學,不少程序員開始回頭復習微積分、概率論和線性代數這樣的基礎數學課,乃至開始學習最優化、博弈論這樣的應用數學課。我自己則是因為從 2010 年一頭扎入了計算廣告的大坑之后,重新開始學習數學。

可以說,這次重新學習數學,為我自己推開了程序世界中另一扇門,使得我在埋頭具體寫代碼之外,有機會重新從另一個角度,去認識和理解“程序”和“問題的解決方案”這兩件事情。

我為什么要學點數學?

投入時間學習數學,于我來說主要是兩個原因,一來,數學在工作中用得上;二來,學點數學很多時候是個有趣的事。

譬如說,過去幾年火起來的深度學習,以及之前沒那么火,但是實際上早早就在搜索、廣告這些領域,應用的機器學習和推薦算法。這里面其實就是結合了微積分、線性代數、概率論之后的最優化問題。

事實上,大部分應用領域的核心解決方案,都是把應用領域的問題,形式化為一個個數學問題。在找到數學問題的“解法”之后,用寫程序的方式翻譯成實際應用的“算法”。而能夠應用“數學”的方式來解決問題,是從一個只能套用現成方案的“碼農”,向能夠將新問題形式化、并找出創新解決方案的“研發工程師”邁出的第一步。

很多問題當你知道如何用數學來解決的時候,常常會有醍醐灌頂的感覺。譬如當我第一次搞明白,廣告中的競價問題,居然能夠變成一個博弈論中“尋找上策均衡”的問題,并且能夠通過簡簡單單的公式表示出來的時候,我是很有滿足感的。

此外,一旦熟悉了機器學習中用到的數學知識,很多想要解決的系統問題,都能通過定義更好的數學優化目標,變成一個能夠找到最優解的程序算法,最后通過寫個程序,翻譯成數學問題來解決,這個過程帶給我巨大的身心愉悅。

我是如何學數學的?

數學整個領域很大,如果想要學點什么,我建議從工作相關的領域開始,先廣度,再深度。

從工作相關的領域開始,是讓自己一是能有實際用得上學到的知識的機會,二是日常工作中容易耳濡目染,相當于常常在復習。而先有廣度,是讓自己在心中有一個問題到解決方法的“地圖”,遇到具體的問題能夠對得上,容易獲得正反饋;然后再有深度,具體去對一個特定的主題學習應用。

當開始深入學一個特定問題的時候,最好的方式是,追一門在線課程,譬如 Coursera、TEDx,或者在極客時間上找一門課程來學習。

這是因為,在線課程有明確的節奏,通常還會提供作業和測驗。通過作業和測驗,讓自己對自己的學習有一個聯系和反饋的過程。即使實踐中沒有足夠的應用,過一段時間有些知識沒有那么熟悉了,但是也容易建立自己很快可以“撿”回來的信心,降低“復習”的啟動成本。跟隨在線課程的節奏,可以有效避免“三天打漁兩天曬網”的惡習,讓學習有始有終。

最后,給你介紹一個有程序員特色的學習方法,針對學習的內容寫一點程序。把正在學習的問題的解法,寫一個算法實現出來。這是一個非常有效的練習方式。譬如學習線性代數,理解仿射,反復讀書的效率對我來說,就不如找來 Coding The Matrix,通過寫程序,讓學習、理解變得更深入。

在數學的學習中,首要的問題是明確需求。作為非數學專業出身的“外行”,我們使用數學的目的不是頂天,而是立地;不是上下求索艱深的理論問題,而是將生活中的具體問題抽象化,進而加以解決。

因此,對于我們這些票友來說,學習數學的基礎在于經驗而非哲學,比較實際的思路是秉持功利主義的原則,用多少學多少。掌握基本的線性代數與矩陣論、概率論與數理統計知識足以應付日常的使用,盲目地好高騖遠通常有害無益。理論化和公理化這些比較深邃的嘗試固然讓人著迷,但它們可能并沒有肉眼可見的實用性,對于絕大部分計算機從業者恐怕過于陽春白雪。

其次,在學習時還要理解數學的本質。數學是工具而非問題,是手段而非目的。探索世界奧秘的學科是“格物窮理”的物理學,相形之下,數學更像是個任人打扮的小姑娘,它存在的意義就是通過合理的設計簡化物理學的研究。

正因如此,在數學中存在著各種各樣在現實中不可能出現的理想化模型(比如無窮小和極限的誕生),也存在著對同一個物理過程不同的建模方式(比如矩陣力學和波動力學)。充分理解數學的人造特質,可以在學習中少走很多無謂的彎路。

理解數學的工具屬性就會自然而然地引出了數學學習中的另一個關鍵點,那就是工具設計的出發點,也就是所謂的數學思想與數學邏輯。

任何一個工具都不是平白無故地設計出來的,它必然要解決某個特定的問題,比如線性代數與矩陣論是對具體對象的抽象表示與運算,比如概率論和數理統計是對不確定性及其定型定量表示的建模。因此,在掌握每一種數學工具的微觀技巧之前,理解它們的宏觀目標是更加重要的。只有掌握了工具誕生的背景與目的,才有可能有效地使用它們。

在這里還要多說一句,數學絕不僅僅是算術,把主要精力放在計算上未免因小失大。在經典科幻《銀河系漫游指南》中,超級計算機告訴人們,世界的終極答案是“42”——這更像是對數字主義者善意嘲諷的一個梗。但對算術的過度強調并不鮮見,在相當數量的現行數學教材中,講解線性代數時開篇便給出行列式的計算方法,這種編排著實讓人費解。

具體到數學每個子學科的學習方法上,相關的經驗教訓已然汗牛充棟,很多內容都無需在此贅言。但在我看來,學習時值得突出強調的一點是舉一反三的能力。同一種工具及其背后的思想可以出現在不同的場景下,解決不同的問題,但是一旦深入到本質層面,就會發現它們實際上是相通的。如何透過現象看本質,將不同場景融會貫通,才是值得鍛煉的高級能力。

同一個工具存在不同應用的例子不勝枚舉:

凡此種種都說明,即使是不同的學科,使用的數學基礎也有著千絲萬縷的聯系,將基本的數學概念和充分的想象力結合起來,觸類旁通就變得輕而易舉。

總結起來,我對數學學習的幾點拙見是:把握數學的工具屬性,學習具體方法時先溯因再求果,勤于思考解決相同問題的不同方法,與解決不同問題的相同方法之間的聯系與區別。希望這幾條建議能夠在數學的學習中助你一臂之力。

好了,三位老師都分享完了自己的學習方法。其實他們有一個共同的觀點,那就是數學要是“實用”的,這和我的想法如出一轍。

首先我們來看最常用的數據結構和編程語句,我想你對它們應該非常熟悉。在我眼里,這些基礎的內容,同樣富含了數學思維。例如,數組和鏈表就體現了迭代和遞歸的思想,判斷語句就是使用了邏輯(布爾)代數。

對于架構在這些數據結構和編程語句之上的算法(為了將這些算法和機器學習的算法區分,我稱其為通用算法),除了迭代和遞歸,也體現了排列、組合和動態規劃等思想。

對于機器學習的算法而言,我們更需要理解概率統計和線性代數的核心思想,包括什么是概率、貝葉斯定理、數據的統計分布、向量、矩陣、線性方程等等。

整個專欄我基本上都是從數學的角度出發,逐步推進到這些知識在計算機中的應用。不過在繪制這張應用地圖的時候,我特意反其道而行之,從計算機編程的角度出發,為你展示程序員應該如何看待編程中的數學知識。

我覺得在開始學習之前,這個地圖會給你一個大體的認識,告訴你計算機領域常用的數學思想有哪些。這時,你也許會產生一些疑惑,同時你可以帶著自己的思考和問題去逐篇學習。等你學完整個專欄之后,再回頭來看看這個地圖,應該會有更深的感觸。我希望這種雙向打通,能夠進一步加強你的學習體驗。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 程序員
    +關注

    關注

    4

    文章

    954

    瀏覽量

    30321
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    硬件好還是軟件好?

    、計算機硬件等領域相關。 學習軟件則側重于編程、算法、數據結構等方面。軟件工程師負責開發、測試和維護各種軟件應用程序,如操作系統、辦公軟件、游戲等。如果你對編程、數學、邏輯或解決復雜問題感興趣,那么
    發表于 04-07 15:27

    阿里云升級通義靈碼AI程序員,全面上線

    近日,阿里云宣布其備受矚目的通義靈碼AI程序員已正式全面上線,為開發者帶來更為強大和便捷的編程輔助工具。 此次上線的通義靈碼AI程序員,在功能上實現了全面升級。現在,它支持VS Code
    的頭像 發表于 01-09 11:16 ?677次閱讀

    TMS320C6000程序員指南

    電子發燒友網站提供《TMS320C6000程序員指南.pdf》資料免費下載
    發表于 12-24 17:19 ?0次下載
    TMS320C6000<b class='flag-5'>程序員</b>指南

    TMS320C55x DSP CPU程序員參考補充

    電子發燒友網站提供《TMS320C55x DSP CPU程序員參考補充.pdf》資料免費下載
    發表于 12-21 11:36 ?3次下載
    TMS320C55x DSP CPU<b class='flag-5'>程序員</b>參考補充

    UCD3138A64/UCD3138128程序員手冊

    電子發燒友網站提供《UCD3138A64/UCD3138128程序員手冊.pdf》資料免費下載
    發表于 12-09 14:42 ?0次下載
    UCD3138A64/UCD3138128<b class='flag-5'>程序員</b>手冊

    機械革命發布CODE AI程序員

    近日,英特爾新質生產力技術生態大會在成都舉行,機械革命作為重要參展商帶來了多款明星產品引爆全場!其中更是在AI PC軟件生態產品發布分論壇上,Intel、智譜、機械革命三方聯合發布了專為程序員設計的CODE AI程序員本,成為本次大會的一大亮點。
    的頭像 發表于 11-30 10:34 ?1053次閱讀

    Linux驅動程序程序員指南

    電子發燒友網站提供《Linux驅動程序程序員指南.pdf》資料免費下載
    發表于 11-22 15:53 ?0次下載
    Linux驅動<b class='flag-5'>程序</b><b class='flag-5'>程序員</b>指南

    傅里葉變換的數學原理

    傅里葉變換的數學原理主要基于一種將函數分解為正弦和余弦函數(或復指數函數)的線性組合的思想。以下是對傅里葉變換數學原理的介紹: 一、基本原理 傅里葉級數 :對于周期性連續信號,可以將其表示為傅里葉
    的頭像 發表于 11-14 09:27 ?1614次閱讀

    AI編程工具會不會搶程序員飯碗

    AI編程工具可輔助編程,減少手動編碼,提升效率,對程序員有積極影響也有挑戰。程序員需深化技能、拓寬知識應對。長遠看,AI與人類程序員將共生共榮。
    的頭像 發表于 11-08 10:17 ?510次閱讀

    什么是光子

    ? 本文概述了光子,包括其基本原理、關鍵技術、應用和新興趨勢。 一、光子的基本原理 光子是一門研究光和其他形式輻射能的學科。它涉及使用光學元件、激光、光纖和電子光學儀器來產生、操縱和檢測光。它
    的頭像 發表于 10-29 06:21 ?651次閱讀

    第五屆長沙·中國1024程序員節開幕

    據官方媒體報道,10月24日;? 第五屆長沙·中國1024程序員節在湖南湘江新區開幕;本次中國1024程序員節以“智能應用新生態”為主題。設置有岳麓對話、技術英雄會、主題峰會及賽事、展覽等活動,一場
    的頭像 發表于 10-25 15:42 ?458次閱讀

    matlab 神經網絡 數學建模數值分析

    matlab神經網絡 數學建模數值分析 精通的可以討論下
    發表于 09-18 15:14

    程序員節視頻創意大賽,用串口屏贏取千元大獎

    10月24日,程序員專屬的節日里,我們盛大開啟“程序員節視頻創意大賽”特別活動!這不僅是一場視覺的盛宴,更是智慧與創意的璀璨碰撞。我們誠摯邀請每一位程序員及編程愛好者,拿起你的鏡頭,記錄下那些平凡日子中的不凡瞬間,讓編程的魅力與
    的頭像 發表于 07-08 10:38 ?72次閱讀
    <b class='flag-5'>程序員</b>節視頻創意大賽,用串口屏贏取千元大獎

    程序員節視頻創意盛宴,邀您共襄盛舉!

    10月24日,程序員專屬的節日里,我們盛大開啟“程序員節視頻創意大賽”特別活動!這不僅是一場視覺的盛宴,更是智慧與創意的璀璨碰撞。我們誠摯邀請每一位程序員及編程愛好者,拿起你的鏡頭,記錄下那些平凡日子中的不凡瞬間,讓編程的魅力與
    的頭像 發表于 07-04 09:00 ?67次閱讀
    <b class='flag-5'>程序員</b>節視頻創意盛宴,邀您共襄盛舉!

    神經網絡在數學建模中的應用

    數學建模是一種利用數學方法和工具來描述和分析現實世界問題的過程。神經網絡是一種模擬人腦神經元結構和功能的計算模型,可以用于解決各種復雜問題。在數學建模中,神經網絡可以作為一種有效的工具,幫助我們更好
    的頭像 發表于 07-02 11:29 ?1731次閱讀
    主站蜘蛛池模板: 青草青青视频 | 亚洲欧美一区二区久久香蕉 | 免费a级毛片出奶水 | 手机免费黄色网址 | 婷婷六月色 | 神马午夜98 | 日韩基地1024首页 | 亚洲аv电影天堂网 | 一级视频在线观看免费 | 伊人久久精品成人网 | 国产色拍| 成人窝窝午夜看片 | 国产精品久久在线 | 国外精品视频在线观看免费 | 中文字幕亚洲综合久久2 | 一级特黄特黄的大片免费 | 午夜免费啪 | 色婷婷亚洲精品综合影院 | 一区二区三区视频 | 婷婷综合五月 | 午夜dy888理论 | 日日噜噜夜夜狠狠久久丁香 | 中文字幕亚洲一区二区三区 | 天天色天天操天天射 | 午夜视频免费看 | 一本到中文字幕高清不卡在线 | 亚洲第一免费播放区 | 亚欧免费视频一区二区三区 | 天天色色网 | 天堂国产| 亚洲高清资源 | 亚洲免费影视 | 午夜小视频免费观看 | 可以免费看的黄色片 | 国产高清免费在线 | 一级黄色毛片播放 | 国产三级日本三级美三级 | 午夜影剧 | 免费观看在线aa | 免费的两性视频网站 | www.国产一区二区三区 |