天天看點

不會數學的程式員,隻能走到初級開發工程師!

作者:小傅哥

部落格:https://bugstack.cn

沉澱、分享、成長,讓自己和他人都能有所收獲!

在我還是初級程式員時,每天也都粘貼着代碼和包裝着接口。那個階段并沒有意識到數學能在程式設計中起到什麼作用,就算學了數學的部分知識,也沒法用到程式設計中。但後來随着程式設計越來越久,逐漸接手核心代碼塊開發時候,用到的數學越來越多了。包括:開發的規則引擎用到的B-自平衡二叉樹、資料庫路雜湊演算法用雪崩測試論證了不同雜湊演算法的使用情況、要處理非對稱加密數學時驗證了素數的合理選擇。直到這時候越來的發現,不是知識沒用,而是因為你沒用到。

為了讓更多的夥伴可以夯實數學基礎,提升自身程式設計思想。小傅哥的《程式員數學 v2.0》PDF 22年編寫完成了,今天分享給在座的各位兄弟。

一、前言:谷歌招聘

2004年,在矽谷的交通動脈 101 公路上突然出現一塊巨大的廣告牌,上面是一道數學題:{e 的連續數字中最先出現的 10 位質數}.com。

不會數學的程式員,隻能走到初級開發工程師!

廣告:這裡的 e 是數學常數,自然對數的底數,無限不循環小數。這道題的意思就是,找出 e 中最先出現的 10 位質數,然後可以得出一個網址。進入這個網址會看到 Google 為你出的第二道數學題,成功解鎖這步 Google 會告訴你,我們或許是”志同道合“的人,你可以将履歷發到這個郵箱,我們一起做點改變世界的事情。

計算 e 值可以通過泰勒公式推導出來:e^x≈1 + x + x^2/2! + x^3/3! +……+ x^n/n! (1) 推導計算過程還包括埃拉托色尼篩選法(the Sieve of Eratosthenes)、線性篩選法的使用。感興趣的小夥伴可以用代碼實作下。

除了谷歌以外;

  • Facebook 在面試時問過:“如何在一個有向圖中找到最短路徑“
  • Amazon 在面試時問過:“如何在一個有向圖中找到最短路徑”
  • Microsoft 在面時問過:“如何在一個有向圖中找到環”
  • Apple 在面試時問過:“在一個無向圖中找到最短路徑”

國内的網際網路也喜歡問能不能手寫一個紅黑樹,但現在逐漸更新了,從真實場景中考察你對算法運用到實際場景中的能力。比如:你運用過什麼算法優化布隆過濾器的哈希碰撞、你的資料庫路由算法雪崩測試如何驗證的、抽獎生成x個使用者生成n個抽獎碼最後如何快速結算。

經過這麼多,我想說:“不提升數學方面的知識積累,程式設計能力隻能停留在初級階段。”

二、新書:提升數學

《程式員數學 v2.0》是小傅哥關于整理程式設計資料結構和算法方面的書籍資料,本書為結合資料結構14篇繼續擴充關于數學的14篇内容。如包括;“如何使用二進制計算乘法?”、“為什麼不能用斐波那契散列,做資料庫路由算法?”、“素數用途 - RSA 加密算法解析”、“楊輝三角的數學邏輯特點”等内容。

有數學才有程式設計之美,代碼是對數學邏輯的具體實作,有了數學支撐才讓程式設計邏輯具有靈魂。而小傅哥也希望每一個程式員都能積累這些數學知識,如:擾動函數、負載因子、斐波那契(Fibonacci)、歐拉公式、貝祖定理、線性同于方程、中國餘數定理、費馬小定理等。

關注公衆号【bugstack蟲洞棧】回複【程式員數學】下載下傳PDF

Hello, world of programmer mathematics! 你好,程式員數學的世界!

歡迎來到這裡,很高興你能拿到這本書。如果你能堅持看完書中每章節的内容,那麼不僅可以在你的面試求職上有所幫助,也更能讓你對關于程式員數學方面的知識有更加深入的學習。

《程式員數學》 是一本通過 Java 語言漸進式的講解資料結構的書籍,通過循序漸進的方式介紹程式員數學方面的知識。全書共計 5 章 28 節,268 頁 6.9 萬字 200+張圖檔,耗時 6 個月完成。涵蓋 4 類 14 種資料結構,包括:連結清單、數組、隊列、堆棧、哈希表、堆、字典樹、二分 搜尋樹、平衡二叉樹、2-3 樹、紅黑樹、并查集、圖、布隆過濾器,以及數學部 分 14 章,包括:二進制、階乘、斐波那契、RSA、割圓術、傅立葉變換等,後續還會繼續擴充。下一次就是v3.0版本了。

1. 适合人群

  1. 具備基本程式設計技能,在校大學生和工作的研發人員
  2. 對資料結構和算法感興趣,但總感覺看不懂的
  3. 看了太多理論,但沒有實踐驗證的
  4. 求職面試,總被面試題搞的死去活來的

2. 閱讀建議

本書雖然是源碼分析、理論實踐,但并不會讓讀者感覺枯燥。作者:小傅哥,在每一篇的知識裡都通過對資料結構的實踐和配圖來講解。小夥伴在閱讀的時候可以對照源碼實踐,并且在源碼中還包括了一些必備的原圖稿件友善做筆記。希望這本書徹底教會你資料結構,也讓所有認真閱讀的讀者,學習後都能讓懂了就是真的懂!

好啦,這是新年前的最後一本PDF啦。每一本原創資料的PDF輸出,都要在1~3個月甚至半年時間;整理資料、編寫文章、開發代碼,再到PDF的封面的設計和内容的歸納。 也是以希望讀者夥伴可以在擷取資料的同時,留言、分享、點贊支援,我非常需要你的幫忙!非常感謝!

繼續閱讀