不會數學的程序員,只能走到初級開發工程師!
作者:小傅哥
博客: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. 適合人羣
- 具備基本編程技能,在校大學生和工作的研發人員
- 對數據結構和算法感興趣,但總感覺看不懂的
- 看了太多理論,但沒有實踐驗證的
- 求職面試,總被面試題搞的死去活來的
2. 閲讀建議
本書雖然是源碼分析、理論實踐,但並不會讓讀者感覺枯燥。作者:小傅哥
,在每一篇的知識裏都通過對數據結構的實踐和配圖來講解。小夥伴在閲讀的時候可以對照源碼實踐,並且在源碼中還包括了一些必備的原圖稿件方便做筆記。希望這本書徹底教會你數據結構,也讓所有認真閲讀的讀者,學習後都能讓懂了就是真的懂
!
好啦,這是新年前的最後一本PDF啦。每一本原創資料的PDF輸出,都要在1~3個月甚至半年時間;整理資料、編寫文章、開發代碼,再到PDF的封面的設計和內容的歸納。 也因此希望讀者夥伴可以在獲取資料的同時,留言、分享、點贊支持,我非常需要你的幫忙!非常感謝!
- 免費1年服務器,部署個ChatGPT專屬網頁版!
- 面試官:“項目這麼問,就能把你水分擠幹!”
- 做了一個和ChatGPT有關的開源項目
- 不會數學的程序員,只能走到初級開發工程師!
- 把ChatGPT配置到微信羣裏,可以對AI提問了!
- 學這個源碼項目,Java編碼能力提升3年?
- 布隆過濾器是否好用,得看哈希函數寫成啥樣
- 考你個並查集,你竟然摳腳!
- 我大抵是捲上癮了,橫豎睡不着!竟讓一個Bug,搞我兩次!
- 敲了幾萬行源碼後,我給Mybatis畫了張“全地圖”
- 放假寫小冊,做技術副業的第1年總結
- 《Mybatis 手擼專欄》第10章:使用策略模式,調用參數處理器
- 《Mybatis 手擼專欄》第9章:細化XML語句構建器,完善靜態SQL解析
- 你説寫代碼,最常用的3個設計模式是啥?
- 《手寫 Mybatis》第7步:SQL執行器的定義和實現
- 《Mybatis 手擼專欄》第6章:數據源池化技術實現
- 久等了,網傳“字節跳動總結的設計模式”,出版紙質書了【送書】!
- 教小白使用 docsify,搭建一個賊簡單的所見即所得博客!
- 怎麼説服領導,能讓我用DDD架構肝項目?
- 金3銀4面試前,把自己弄成卷王!