日更128天 - (翻譯) 編程是否需要數(shù)學(xué)(下)

我不擅長數(shù)學(xué),所以我嘗試用我的直覺、常識、流程圖,更多其他類型的圖表來解決我作為一個(gè)程序員每天面臨的問題。這種情況持續(xù)了幾年,我總結(jié)出了一些規(guī)則和想法,并在此基礎(chǔ)上建立了一個(gè)解決問題的模型。建立這個(gè)模型的目的只有一個(gè):非常清楚、非常簡要地說明問題是什么,解決方案又是什么。我創(chuàng)建了一個(gè)模型,將把問題作為輸入,輸出是包含英語、流程圖和許多其他類型圖表的解決方案。這個(gè)模型有一定的假設(shè)、規(guī)則和條件,這些都是非常清楚的。清晰性和簡單性是重點(diǎn)。這是一種通用的、抽象機(jī)制,可以應(yīng)用于各種問題的解決方案。幾個(gè)月前,在我讀完所有前面提到的所有數(shù)學(xué)文章后,我又看到了 Evan Miller的一篇文章,題目是《Don’t Kill Math 》,這篇文章實(shí)際上是為了回應(yīng)Bret Victor的《Kill Math》。

這兩篇文章對我沖擊很大。首先,Bret Victor試圖做我?guī)啄陙硪恢痹趪L試的事情,當(dāng)然他比我更成功。我從來沒有搭建出可以被所有人使用的穩(wěn)定模型,而Bret已經(jīng)做到了。我很高興,因?yàn)槲艺业搅宋乙恢毕胍?,社?zhǔn)備跟隨Bret的腳步,但我最終并沒有這樣做。為什么?

有一個(gè)原因,我永遠(yuǎn)無法搞出一個(gè)穩(wěn)定的模型。我總是認(rèn)為它缺乏一些東西。不管我做了什么,做了多少工作,我總覺得缺少一些非常基本的東西。每當(dāng)我研究薛定諤方程、麥克斯韋方程、牛頓定律、開普勒定律、不確定性原理或Shulba-Sutras時(shí),我總是覺得所有這些方程都是完整的,但我的模型卻不是?!禟ill Math》和《Dont' Kill Math》這兩篇文章讓我意識到什么是完備性。它就是《Dont' Kill Math》中提到的數(shù)學(xué)特性。Evan在這篇文章中提出的問題,以及他用非常簡單和基本的細(xì)節(jié)進(jìn)行解釋的方式,為我尋找一個(gè)穩(wěn)定模型的過程畫上了句號。數(shù)學(xué)是一種簡明扼要的方法,用來解決問題和理解各種現(xiàn)象。這些直接清楚的特點(diǎn)是數(shù)學(xué)所固有的,就像靈魂是每個(gè)生命所固有的一樣。有了數(shù)學(xué),你可以用更短、更好的方式來解決問題,而非其他方法了。

這讓我想到一個(gè)非?;镜膯栴}。為什么我討厭數(shù)學(xué)?這是因?yàn)樵趯W(xué)校和大學(xué)里教我數(shù)學(xué)的方式。我被教導(dǎo)的是死記硬背的數(shù)學(xué),而不是真正的數(shù)學(xué)。這是學(xué)校的錯(cuò),是我們教育系統(tǒng)的錯(cuò),不是學(xué)生的錯(cuò)?;氐轿覀兪欠裥枰獢?shù)學(xué)來成為一個(gè)偉大的程序員這個(gè)主要問題上,這就是世界最初是如何解決問題的:



然后出現(xiàn)了數(shù)學(xué),這就是大多數(shù)數(shù)學(xué)家所做的事情:



而這也是幾乎所有的計(jì)算機(jī)程序員/軟件工程師/開發(fā)人員所做的:

Evan Miller說,你可以不用太多的數(shù)學(xué)知識就能成為一流的黑客,我認(rèn)為他是對的,這個(gè)觀點(diǎn)與所有其他作者也是一致的。他強(qiáng)調(diào)的一點(diǎn)是數(shù)學(xué)在解決這個(gè)世界的問題中的作用,數(shù)學(xué)在解決現(xiàn)實(shí)世界的問題中是非常有效的。作為程序員,我們要解決問題,但如果我們用數(shù)學(xué)來解決問題,然后將編程方案應(yīng)用到解決方案的數(shù)學(xué)模型中,那么我們就可以有一些巧妙漂亮的方法來提供更好的解決方案,這將使我們作為程序員的生活更輕松(作為一個(gè)彩頭)


最后總結(jié)下:

  • 你不需要數(shù)學(xué)來也能成為一個(gè)一流的程序員,因?yàn)槲覀儾⒉挥弥苯邮褂煤芏鄶?shù)學(xué)知識。如果你想成為程序員,那就學(xué)習(xí)編程。計(jì)算機(jī)編程與數(shù)學(xué)有很大的不同,作為一個(gè)計(jì)算機(jī)程序員,你必須更多地關(guān)注如何寫出更好的程序,如何在一個(gè)特定的范式(如函數(shù)式、OO式、通用式、程序式、邏輯式、聲明式等)中思考,找到更好的方法來創(chuàng)建軟件,你需要了解設(shè)計(jì)模式,更不用說學(xué)習(xí)和使用各種語言幾年后會(huì)給你的思維增加新的維度。所有這些都與數(shù)學(xué)沒有任何關(guān)系。你需要先學(xué)習(xí)這些,你需要花幾年的時(shí)間才能掌握它們,然后如果你想學(xué)數(shù)學(xué),你就可以學(xué)。閱讀Roberrt J. Chassell寫的《使用Emacs Lisp編程入門》,了解如何解決創(chuàng)建一個(gè)可定制的、自我記錄的、不斷擴(kuò)展的實(shí)時(shí)顯示文本編輯器的問題。閱讀GNU Make手冊,了解它為什么需要M4和Autoconf。
  • 數(shù)學(xué)是理解這個(gè)世界的本質(zhì)和解決問題的最廣泛使用的載體。通過學(xué)習(xí)數(shù)學(xué)方法,我們可以學(xué)到更多解決問題的方法。我自己已經(jīng)開始學(xué)習(xí)概率,因?yàn)榫拖馭teve Yegge說的那樣,一旦你理解了數(shù)學(xué),那么你就可以看看這個(gè)問題,看看它是一個(gè)概率問題、微積分問題還是統(tǒng)計(jì)問題等等。數(shù)學(xué)與問題的本質(zhì)有關(guān),而不是軟件的本質(zhì),軟件有自己解決問題的方法和工具,記住這一點(diǎn)。

簡單一句話:兩個(gè)層面問題,做程序員不會(huì)數(shù)學(xué)完全是可以的; 學(xué)了數(shù)學(xué)能提高解決問題的能力,這不僅僅是局限寫程序的范疇了。


日更127天 - (翻譯) 編程是否需要數(shù)學(xué) (上)
日更126天 - 知識付費(fèi)是士力架還是人參果
日更125天 - 整理下自己的手機(jī),別讓它碎片化了我們的生活
日更124天 - 打造自己小環(huán)境
日更123天 - 杠桿
日更122天 - 收入的四個(gè)象限
日更121天 - 時(shí)光穿梭,回顧和展望
前日更120天索引

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容