之前在知乎看到一个问题:
https://www.zhihu.com/question/48617074/answer/111889884
程序员不需要知道太多数学,你认同吗?
我听到的关于学习编程的最常见的顾虑,就是人们认为这需要很多数学知识。其实,大多数编程需要的数学知识不超过基本算数。实际上,善于编程与善于解决数独问题没有太大差别。你认同这个观点吗?
看到一个答案,还是比较认同的,有 613 个点赞。
我在成为程序猿之前,一直听到两种声音: 1、程序员不需要懂太多数学英语; 2、想成为程序员就要好好学数学和英语。
在我接触编程的初期,我信了前者。我发现编程没有所谓要数学好英语好,只要一个稍微逻辑正常的人都能写出程序。于是我天天玩命敲代码,想到什么写什么,看着自己写出的一堆乱麻在机器上跑起来,那种成就感从心底油然而生。
后来在这一行业接触越来越广,慢慢发现自己能力越来越有限,力不从心。
学图形学和directx游戏编程时候,天天回去恶补线性代数和空间几何。 看算法导论第一个算法的时间复杂度证明都看不懂,被吓得不轻。于是又恶补离散数学。 后来为了一个比赛,研究手势识别,接触图像识别领域,又跟小组一起恶补了概率论。还通宵了几个晚上。那时候真是要哭了。
从我工作开始,我几乎有一半时间都是在阅读英文文档。很多时候还要读一些英文原著,有些国外的好书,不是没中文版,就是翻译太差劲。好在从初中开始英语一直很好,所以看英文文档还算无压力。但是看英文书有时候还是有些吃力,可能什么时候找时间得补一补了。
接触越广,需要的基础知识越多。接触越深,需要基础知识越扎实。
所以,对于还不懂自己以后得路怎么走的童鞋。我建议你,先把知识学广了。至少有个了解,到时候发现自己想深入一个领域时候,不至于以后死得很惨。
所以现在,哪个家伙再跟我说数学英语不重要,我直接抄起一本算法导论直接拍死他。
? 当然,如果胖友你不知道如何学习数学,可以根据自己的情况,购买即可时间的数学专栏:
大体目录如下:
基础思想篇(15篇)
二进制:不了解计算机的源头,你学什么编程
余数:原来取余操作本身就是个哈希函数
迭代法:不用编程语言的自带函数,你会如何计算平方根?
数学归纳法:如何用数学归纳提升代码的运行效率?
递归(上):泛化数学归纳,如何将复杂问题简单化?
递归(下):分而治之,从归并排序到MapReduce
排列:如何让计算机学会“田忌赛马”?
组合:如何让计算机安排世界杯的赛程?
动态规划:如何实现基于编辑距离的查询推荐?
树的深度优先遍历:如何才能高效率地查字典?
树的广度优先遍历:人际关系的六度理论是真的吗?
从树到图:如何让计算机学会看地图?
数据结构总结:数据结构里都体现了哪些数学思想?
时间和空间复杂度:优化性能是否只是“纸上谈兵”?
基础思想篇答疑和总结
概率统计篇(11篇)
概率和统计:编程为什么需要概率和统计?
概率基础(上):随机变量到底是什么变量?
概率基础(下):掌握了贝叶斯公式,概率就搞定了一半
朴素贝叶斯:如何让计算机学会分类?
文本分类:如何区分特定类型的新闻?
马尔科夫链:从PageRank到中文分词,背后是什么模型在支撑?
信息熵:如何利用信息增益,设计出最具区分度的测试题?
熵和互信息:如何通过信息学寻找关键特征?
正态分布:各科成绩如何综合才是最合理的?
统计意义:如何通过AB测试,判断你的实验结果是不是巧合?
概率统计篇答疑和总结
线性代数篇(10篇)
线性代数:线性代数到底是在讲什么?
向量空间:怎样让计算机理解现实世界?
文本向量:怎样让计算机理解自然语言?
文本聚类:如何过滤冗余的新闻?
矩阵:如何从单个值到多维空间?
线性方程组:最小二乘法是求解线性方程组的最优方案吗?
线性回归:如何用多个因子来预测产品的销量?
特征值和特征向量:如何利用主成分分析来降维?
奇异值分解:如何挖掘潜在的语义关系?
线性代数篇答疑和总结
综合应用篇(6篇)
缓存系统:如何通过哈希表和队列实现高效访问?
搜索引擎(上):如何通过倒排索引和动态规划,让你的查询速度更快?
搜索引擎(下):如何通过分类查询,让你的搜索结果更相关?
推荐系统(上):如何实现基于相似度的协同过滤?
推荐系统(下):如何通过SVD分析用户和物品的矩阵?
综合应用篇答疑和总结
如果你对 Dubbo / Netty 等等源码与原理感兴趣,欢迎加入我的知识星球一起交流。长按下方二维码噢:
目前在知识星球更新了《Dubbo 源码解析》目录如下:
01. 调试环境搭建
02. 项目结构一览
03. 配置 Configuration
04. 核心流程一览
05. 拓展机制 SPI
06. 线程池
07. 服务暴露 Export
08. 服务引用 Refer
09. 注册中心 Registry
10. 动态编译 Compile
11. 动态代理 Proxy
12. 服务调用 Invoke
13. 调用特性
14. 过滤器 Filter
15. NIO 服务器
16. P2P 服务器
17. HTTP 服务器
18. 序列化 Serialization
19. 集群容错 Cluster
20. 优雅停机
21. 日志适配
22. 状态检查
23. 监控中心 Monitor
24. 管理中心 Admin
25. 运维命令 QOS
26. 链路追踪 Tracing
... 一共 69+ 篇
目前在知识星球更新了《Netty 源码解析》目录如下:
01. 调试环境搭建
02. NIO 基础
03. Netty 简介
04. 启动 Bootstrap
05. 事件轮询 EventLoop
06. 通道管道 ChannelPipeline
07. 通道 Channel
08. 字节缓冲区 ByteBuf
09. 通道处理器 ChannelHandler
10. 编解码 Codec
11. 工具类 Util
... 一共 61+ 篇
目前在知识星球更新了《数据库实体设计》目录如下:
01. 商品模块
02. 交易模块
03. 营销模块
04. 公用模块
... 一共 17+ 篇
源码不易↓↓↓↓↓
点赞支持老艿艿↓↓