头图

不会数学的程序员,只能走到初级开发工程师!

作者:小傅哥
博客:https://bugstack.cn

沉淀、分享、成长,让自己和他人都能有所收获!😄

在我还是初级程序员时,每天也都粘贴着代码和包装着接口。那个阶段并没有意识到数学能在编程中起到什么作用,就算学了数学的部分知识,也没法用到编程中。但后来随着编程越来越久,逐步接手核心代码块开发时候,用到的数学越来越多了。包括:开发的规则引擎用到的B-自平衡二叉树、数据库路散列算法用雪崩测试论证了不同散列算法的使用情况、要处理非对称加密数学时验证了素数的合理选择。直到这时候越来的发现,不是知识没用,而是因为你没用到。

为了让更多的伙伴可以夯实数学基础,提升自身编程思想。小傅哥的《程序员数学 v2.0》PDF 22年编写完成了,今天分享给在座的各位兄弟。

一、前言:谷歌招聘

2004年,在硅谷的交通动脉 101 公路上突然出现一块巨大的广告牌,上面是一道数学题:{e 的连续数字中最先出现的 10 位质数}.com。

img

广告:这里的 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)、欧拉公式、贝祖定理、线性同于方程、中国余数定理、费马小定理等。

img

书籍下载:关注公众号【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的封面的设计和内容的归纳。 也因此希望读者伙伴可以在获取资料的同时,留言分享点赞支持,我非常需要你的帮忙!非常感谢!


CodeGuide_程序员编码指南
公众号:bugstack虫洞栈,回复:设计模式,可以下载《重学Java设计模式》PDF,全网下载量17万+ | 这是一...

CodeGuide | 程序员编码指南 - 原创文章、案例源码、资料书籍、简历模版等下载。

4.6k 声望
28.4k 粉丝
0 条评论
推荐阅读
简历上的项目,需要这样描述才有亮点!
每每准备面试,总有些小伙子甩出自己的豆包项目,不是Xxx管理系统,就是某某自动化平台。就像这几年自己的经历都放在 CRUD 编写上了,走的那是加班的道,干的都是体力的活。

小傅哥3阅读 109

封面图
手把手教你写一份优质的前端技术简历
不知不觉一年一度的秋招又来了,你收获了哪些大厂的面试邀约,又拿了多少offer呢?你身边是不是有挺多人技术比你差,但是却拿到了很多大厂的offer呢?其实,要想面试拿offer,首先要过得了简历那一关。如果一份简...

tonychen152阅读 17.7k评论 5

封面图
正则表达式实例
收集在业务中经常使用的正则表达式实例,方便以后进行查找,减少工作量。常用正则表达式实例1. 校验基本日期格式 {代码...} {代码...} 2. 校验密码强度密码的强度必须是包含大小写字母和数字的组合,不能使用特殊...

寒青56阅读 8.4k评论 11

JavaScript有用的代码片段和trick
平时工作过程中可以用到的实用代码集棉。判断对象否为空 {代码...} 浮点数取整 {代码...} 注意:前三种方法只适用于32个位整数,对于负数的处理上和Math.floor是不同的。 {代码...} 生成6位数字验证码 {代码...} ...

jenemy48阅读 6.9k评论 12

从零搭建 Node.js 企业级 Web 服务器(十五):总结与展望
总结截止到本章 “从零搭建 Node.js 企业级 Web 服务器” 主题共计 16 章内容就更新完毕了,回顾第零章曾写道:搭建一个 Node.js 企业级 Web 服务器并非难事,只是必须做好几个关键事项这几件必须做好的关键事项就...

乌柏木75阅读 7k评论 16

再也不学AJAX了!(二)使用AJAX ① XMLHttpRequest
「再也不学 AJAX 了」是一个以 AJAX 为主题的系列文章,希望读者通过阅读本系列文章,能够对 AJAX 技术有更加深入的认识和理解,从此能够再也不用专门学习 AJAX。本篇文章为该系列的第二篇,最近更新于 2023 年 1...

libinfs42阅读 6.8k评论 12

封面图
从零搭建 Node.js 企业级 Web 服务器(一):接口与分层
分层规范从本章起,正式进入企业级 Web 服务器核心内容。通常,一块完整的业务逻辑是由视图层、控制层、服务层、模型层共同定义与实现的,如下图:从上至下,抽象层次逐渐加深。从下至上,业务细节逐渐清晰。视图...

乌柏木45阅读 8.5k评论 6

CodeGuide | 程序员编码指南 - 原创文章、案例源码、资料书籍、简历模版等下载。

4.6k 声望
28.4k 粉丝
宣传栏