2023-05-27- ???? 我看《圖靈和ACM圖靈獎》

最近看的書比較多也比較雜,像《芯片戰(zhàn)爭》、《芯片簡史》、《比爾蓋茨傳》、《數(shù)學之美》等等,這幾本書里有提到圖靈獎的信息,順手買了一本《圖靈和ACM圖靈獎》,看了這本書對我震撼很大,原來計算機的大牛在搞這些東西,他們可以是程序員,更重要的是這些人更看重數(shù)學,用數(shù)學建立模型來構(gòu)建和改善計算機生態(tài)。

之前看過左耳朵耗子寫 的《程序員三重門》,當時還沒太懂,現(xiàn)在完全明白了,
簡單說:三等程序員寫代碼,二等程序員調(diào)試調(diào)優(yōu),一等程序員玩數(shù)學。

這篇文章也是對自己將近十年的職業(yè)生涯的一個總結(jié)吧,知道自己在計算機這座神廟里干的什么活,以后前進的方向。

之前一直想把數(shù)學算法應用到工作中,相信很多人在給你灌輸這樣的想法(他們的主要目的還是讓你交智商稅),簡單概括他們的說法,技術萬法不離其宗,不學好算法你就不配做程序員,學會你就天下無敵了。但是隨著時間的推移,你發(fā)現(xiàn)你就算學完這些對你的工作提升也不大,因為在工作中根本用不到,這個月學完下個月忘(沒錯就是以前的我??),好像自己很笨一直沖不破這道門一樣。

其實這個道理很簡單,我下面舉個例子:

比如你是軍隊一名步兵,你的日常作戰(zhàn)任務就是瞄準開槍。你的長官說:小子,想做好一名步兵,你需要學習子彈和槍的設計原理,這樣你才能更好的瞄準射擊,才能做一名出色的步兵。

當然,作為一個積極向上的步兵,你欣然接受了前輩長官的建議。因此你除了在作戰(zhàn)中開槍射擊之外,不打仗的時候就去研究各種槍炮原理、空氣動力學,材料學啥的。然后你想在射擊中應用你學到的這些原理,但是你發(fā)現(xiàn)學習動力學好像和射擊有點關系,但是關系又不大,因為你是一名步兵,你的日常動作是瞄準開槍射擊,你所處的場所沒有為你提供改造槍和子彈的結(jié)構(gòu)的環(huán)境或者條件。

研究這些東西并沒有錯,因為你是一個想提升自己的人,但是你急于把所學轉(zhuǎn)化成當前的步兵角色中,效果甚微,長此以往,你得到的只有對自己的質(zhì)疑和前途的迷茫,因為你身邊所有士兵都這樣說的,想做好步兵就要學習槍炮原理,如果你學到的東西長期用不到,有可能是你學的東西不對,也有可能是你的職業(yè)錯了。

然而真正研究槍和子彈原理并應用的是兵工廠的槍炮師,這些東西是通過他們的倡導流行開來的,所以你學這些東西后就不要在想去做一個步兵了,你應該是去做兵工廠的炮槍師,這樣才能發(fā)揮你的所學。

這也是AK47發(fā)明者米哈伊留申·卡拉希尼柯夫的故事,二戰(zhàn)中,卡拉希尼柯夫作為一名坦克手奔赴前線,在,在1941年10月手臂嚴重受傷,卡拉希尼柯夫在野戰(zhàn)醫(yī)院療傷時,打聽著傷員們常在一起抱怨蘇聯(lián)槍械的拙劣性能和前線德軍使用的自動武器,于是萌發(fā)了設計輕武器的念頭?;丶茵B(yǎng)傷期間,他設計出第一支PPK-42沖鋒槍,引起軍方的注意。1943年,他進入正規(guī)學校,并被分配到武器試驗場擔任技術員,從此轉(zhuǎn)型做了槍炮師。

所以,如果想做好一名步兵,你還是應該把主要精力放在射擊練習和熟系槍械上,同理
作為一個三等程序員,你只要把程序邏輯搞明白,會看英語文檔、懂點操作系統(tǒng)、網(wǎng)絡和編譯,再懂點設計模式,明白軟件工程師需要注意什么就OK了,這一層的天花板很低,而且這些東西之間聯(lián)系并不大,不需要你把這些東西全部融會貫通。

當然,作為一名軟件工程師,如果想進一步提升等級,就必須去研究性能優(yōu)化,需要全面考量的那種,CPU、操作系統(tǒng)、網(wǎng)絡、內(nèi)存、程序等等(可以看看《性能之巔》),真正把你學的算法和數(shù)學運用起來。換句話說,學完這些你就得準備轉(zhuǎn)換程序員角色了,如果你下定決心轉(zhuǎn)型,這一過程肯定是充滿了曲折的,因為你要踏入陌生的領域,運用不同的思維和技能去解決你沒有完全熟悉的問題。

現(xiàn)在再看,那些把數(shù)學和算法掛在嘴邊的人,你就知道什么叫蒙昧,他們能騙的也就是哪些喜歡揍捷徑的人(有些PM都被忽悠去學了)或者說這些人本身就是槍炮師,他們只是站在自己的應用領域去學習這些東西,但是他們或者你自己無意間把這些強加在你自己身上了,過度神話了。通過這個思考,我更知道了讀書的重要性,讓你看到更大的世界,讓你獨立思考,不能人云亦云。

總之,算法數(shù)學和普通程序員關系不大,大家都知道編程的門檻有多低,現(xiàn)在小學生都學的懂。讀了這本書我才發(fā)現(xiàn),一等程序員更多的是用數(shù)學去解決計算機的普遍性問題,比如非對稱加密質(zhì)數(shù)解密,計算復雜性問題、怎么讓編譯器性能更快,為什么用關系型數(shù)據(jù)庫代替網(wǎng)狀數(shù)據(jù)庫,我之后會結(jié)合圖靈獎寫幾篇數(shù)學在計算機中的應用的博客。

最后緬懷下左耳朵耗子,他對中國技術圈的貢獻和積極的影響力絕對是值得肯定的。

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

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

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