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

語言: CN / TW / HK

作者:小傅哥
博客:http://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蟲洞棧】回覆【程序員數學

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的封面的設計和內容的歸納。 也因此希望讀者夥伴可以在獲取資料的同時,留言分享點贊支持,我非常需要你的幫忙!非常感謝!