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

news2024/11/29 18:47:33

作者:小傅哥
博客: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虫洞栈】回复【程序员数学

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/166083.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java基础】-【集合类】

目录Java中的容器(集合类)Java中的容器,线程安全和线程不安全的分别有哪些?Map接口的实现类Map put的过程如何得到一个线程安全的Map?HashMap的特点JDK7和JDK8中的HashMap有什么区别?HashMap底层的实现原理…

【年度总结】2022回首瞻望 | 2023大展宏“兔“

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计专业大二本科在读,阿里云社区专家博主,华为云社区云享专家,CSDN SAP应用技术领域新兴创作者。   在学习工…

GO语言配置和基础语法应用(三)

C语言是直接影响Go语言设计的语言之一。 Go是一门编译型语言,Go语言的工具链将源代码及其依赖转换成计算机的机器指令(译注:静态编译)。 package mainimport "fmt"func main() {fmt.Println("Hello, 世界")…

一行代码加速Pytorch推理速度6倍

一行代码加速Pytorch推理速度6倍 Torch-TensorRT 是 PyTorch 的集成,它利用 NVIDIA GPU 上的 TensorRT 推理优化。 只需一行代码,它就提供了一个简单的 API,可在 NVIDIA GPU 上提供高达 6 倍的性能加速。 话不多说, 线上代码, 再解释原理!!…

【论文精读】Scaling distributed machine learning with the parameter server

Scaling distributed machine learning with the parameter server前言Abstract1. Introduction1.1 Contributions1.2 Engineering Challenges1.3 Related Work2. Machine Learning2.1 Goals2.2 Risk Minimization2.3 Generative Models3. Architecture3.1 (Key,Value) Vectors…

设计模式简要汇总

一、面向对象设计原则 开闭原则:一个软件实体(类、模块、函数)应该对扩展开放,对修改关闭。依赖倒置原则:高层模块不应该依赖底层模块,它们都应该依赖于抽象。抽象不应该依赖于细节,细节应该依…

语义分割——FCN模型pytorch实现

FCN网络简介 全卷积网络(Fully Convolutional Networks,FCN)是Jonathan Long等人于2015年在Fully Convolutional Networks for Semantic Segmentation一文中提出的用于图像语义分割的一种框架,是首个端对端的针对像素级预测的全卷…

BIGEMAP APP离线卫星地图数据应用

离线包(高清卫星图): 1、一次下载永久可用,访问更快,下载更快 2、离线包数据可自动更新,无需重新下载,更新3到6个月一次 3、离线包可在无网络离线环境下使用,不受网络限制 4、离线包…

Springboot打成JAR包后读取配置文件

Springboot的默认配置文件为:application.properties或者是application.yml 如果这两个配置文件都存在,不冲突的话,就互相补充。冲突的话,则properties优先级高。 当我们使用IDEA创建出一个Springboot项目上时,配置文…

Git从入门到精通

目录 Git 配置 1. 在安装完成 Git 后,开始正式使用前,是需要有一些全局设置的,如用户名、邮箱。 2. 除了用户名、邮箱之外,还有很多的配置可以用来自定义 Git,如: 3. 查看所有的已经做出的配置&#xff…

Python3 常用内置函数解析(共28个函数)

文章目录一:Python3 操作符(大全)二:函数带括号与不带括号的区别三:不可变数据类型与可变数据类型四:Python3 内置函数(大全)1、input():用于获取控制台的输入。2、print…

Django REST framework--渲染器

Django REST framework--渲染器Django REST framework--渲染器自定义接口规范渲染器基本原理Django 项目debug调试技巧异常信息处理配置异常处理模块自定义异常处理Django REST framework–渲染器 自定义接口规范 目前使用的是REST框架默认的返回格式,类似这种 […

【redis6】第十章(事务和锁机制)

Redis的事务定义 Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 Redis事务的主要作用就是串联多个命令防止别的命令插队。 Multi、Exec、discard 从输入Mu…

2023年面试题之Dubbo基础架构

一. Dubbo 的整体架构设计有哪些分层?接口服务层(Service):该层与业务逻辑相关,根据 provider 和 consumer 的业务设计对应的接口和实现配置层(Config):对外配置接口,以 ServiceCon…

Docker 应用实践-镜像篇

一个 Docker 镜像往往是由多个镜像层(可读层)叠加而成,每个层仅包含了前一层的差异部分,单个镜像层也往往可以看作镜像使用,当我们启动一个容器的时候,Docker 会加载镜像层并在其上添加一个可写层。容器上所…

C语言学习——字符函数和字符串函数

🌇个人主页:平凡的小苏 📚学习格言:别人可以拷贝我的模式,但不能拷贝我不断往前的激情 🛸C语言专栏:https://blog.csdn.net/vhhhbb/category_12174730.html 小苏希望大家能从这篇文章中收获到许…

实战Kaggle比赛:预测房价

实战Kaggle比赛:预测房价 目录 下载和缓存数据集访问和读取数据集数据预处理训练K折交叉验证模型选择提交Kaggle预测 本节我们将通过Kaggle比赛,将所学知识付诸实践。 Kaggle的房价预测比赛是一个很好的起点。 此数据集由Bart de Cock于2011年收集 (D…

Linux--线程互斥与同步--0112 13

线程互斥 1.背景概念 临界资源:多线程执行流共享的资源就叫做临界资源。 临界区:每个线程内部,访问临界资源的代码就叫做临界区。 互斥:任何时刻,互斥保证有且只有一个执行流进入临界区 ,对临界资源起保…

36岁北邮硕士,四段大厂经历,当初为了涨薪频繁跳槽,被裁后投遍所有公司,基本都不回复!...

今天给大家分享一位36岁北邮硕士的职场经历:2013年北邮硕士毕业后,分别在乐视、字节、阿里、小米待过,2022年被小米裁员,几乎投遍了boss上所有公司,基本都是已读不回。只有一个小公司的hr看了简历后回了一句“加油”。…

绕过某博客查看文章验证码,关注公众号得验证码

之前也写过一篇,当时使用Burpsuite抓包,改包,有点杀鸡用牛刀了。 虽然我挺支持为知识那啥的,但是吧要我去关注公众号太麻烦了 绕过查看文章需要验证码 其实就是改一个返回的字段,既然后端也是改,那我前端…