不会数学的程序员,只能走到初级开发工程师!(代码片段)

小傅哥 小傅哥     2023-01-17     214

关键词:

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

2020程序员进阶宝典,年薪50万不是梦

前言如果你想要一个月速成程序员,那么这篇文章不适合,如果你仅想要在IT圈“耍酷”,那你也不需要研读,如果你执着询问“退化”成为一名程序猿有啥捷径,那我只能告诉你,此路不通!不可否认,这是个浮躁的社会,程... 查看详情

软考初级程序员考试大纲

一、考试说明1.考试目标通过本考试的合格人员能根据软件开发项目管理和软件工程的要求按照程序设计规格说明书编制并高度程序,写出相应的程序文档,产生符合标准规范的、实现设计要求的、能正确可靠运行的程序。具... 查看详情

xin片设计的中的数学问题

xin片设计的中的数学问题(为了过审只能用拼音替代)文章目录xin片设计的中的数学问题(为了过审只能用拼音替代)概述EDA简介EDA的主要工具和相关数学问题数字全流程工具数学问题定制电路全流程工具数学问... 查看详情

xin片设计的中的数学问题

xin片设计的中的数学问题(为了过审只能用拼音替代)文章目录xin片设计的中的数学问题(为了过审只能用拼音替代)概述EDA简介EDA的主要工具和相关数学问题数字全流程工具数学问题定制电路全流程工具数学问... 查看详情

html+css初级开发工程师

html+css初级开发工程师html简介www维网(环球信息网)简称web分为Web客户端和Web服务器程序WWW可以让Web客户端(常用浏览器)访问浏览Web服务器上的页面W3C万维网联盟文件名的命名规范:不能数字开头,在项目中不可用汉字命名。... 查看详情

学习java心得

...,结果看完了练习时发现连环境变量都不会 2、初级工程师改bug,中级写主要80%代码,高级工程师处理紧急情况,重大BUG,性能调优,每一级别都要锻炼一两年怕 3、要为成功找理由不为失败找接口,不要因为自己不是科 查看详情

学习java心得

...,结果看完了练习时发现连环境变量都不会 2、初级工程师改bug,中级写主要80%代码,高级工程师处理紧急情况,重大BUG,性能调优,每一级别都要锻炼一两年怕 3、要为成功找理由不为失败找接口,不要因为自己不是科 查看详情

java工程师书单(初级中级高级)

简介怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作一两年之后开始迷茫的程序员经常会问到的问题... 查看详情

世道变了,面试初级java开发会问到arrays!!!你不会还不知道吧!(代码片段)

一、基本定义Arrays类,全路径java.util.Arrays,主要功能为操作数组,Arrays类的所有方法均为静态方法,所以调用方式全部为Arrays.方法名二、常用方法1.<T>List<T>asList(T...a)可以将数组转化为相应的list集合࿰... 查看详情

软件开发的一般流程是啥?_?

...技术,精通一种可视化平台及其软件开发技术。获取Delphi程序员系列、Java初级或VB开发能手认证。就业方向:企业、政府、社区、各类学校等可视化编程程序员。2WEB应用程序设计具有美工基础和网页动画设计能力,掌握交互式... 查看详情

大厂java初级开发工程师!!!面试必问项之set实现类:treeset(代码片段)

一、TreeSet概述1、TreeSet是SortedSet接口的实现类,TreeSet可以确保集合元素处于排序状态。2、TreeSet顾名思义他内部维护的是一个TreeMap,底层是红黑二叉树,他使得集合内都是有序的序列。3、Tree可以按照添加对象的指定... 查看详情

是什么让初级工程师走投无路?

  虽然有非常多的初级工程师,但是并没有非常多的职位给他们。 几个月前,我参加了一场针对技术领域女性的活动。很多参加者中是新的开发者,毕业于编程学校或者计算机科学课程。几乎所有人都告诉我,她们在获... 查看详情

如何成长为高级工程师?

...家分享自己学习到的思维模式。笔者是一名励志成为卓越程序员的前端开发工程师,因为不喜欢把自己限制在前端开发中,所以在这里和大家讨论如何成长为高级工程师。按照德雷福斯模型,技术人员可以分为五级&#x... 查看详情

2018网易的初级游戏开发工程师的面经

2018网易的初级游戏开发工程师的面经自我介绍:先是自我介绍,简单介绍了一下自己的项目经历,会什么技术(自己认怂,说了非科班出身,技术不咋地);然后问我,有看那些计算机相关的书籍;自己却只回答了一本书,简直是失败呀;好的... 查看详情

如何测试自身的java水平

...要掌握哪些技术呢,简单回顾下自己开发阶段的认识初级程序员:完成代码层面的CRUD操作+前端基础(HTML+CSS+JS+Jquery+Vue+Layui)+SSM框架基本用法+会看功能文档和理清数据库模型关系+解决BUG是有方向+规定时间完成项目任务高级开发工... 查看详情

初级的开发工程师,值得去读的几本书

...ZooKeeper分布式一致性原理与实践》,作者倪超,阿里巴巴工程师《Spring源码深度解析》,作者郝佳。 查看详情

git学习笔记

...了巨大差别, 几十个文件都复制粘贴么?不会tdd的python程序员,只能叫写脚本的,算不上工程师.目前暂时使用git扛一阵,解决代码同步的问题. 1.g 查看详情

tq2440开发板学习纪实---初始化片外ram,让程序有更大内存空间(代码片段)

到目前为止,我们的程序只能使用S3C2440的片内4KB的RAM。这么小的内存空间,显然不能应付实际的应用。是时候使用片外的RAM了,本文将详细介绍片外RAM的初始化过程。0ROM,RAM,SRAM,DRAM,SDRAM傻傻分不清作为软件出身的软... 查看详情