首页 » 软件优化 » 二流靠算法!程序员的数学需要很厉害吗?(数学程序员算法很厉害编程)

二流靠算法!程序员的数学需要很厉害吗?(数学程序员算法很厉害编程)

萌界大人物 2024-10-29 23:07:04 0

扫一扫用手机浏览

文章目录 [+]

一流程序员靠数学;二流程序员靠算法;

三流程序员靠逻辑;四流程序员靠SDK;

五流程序员靠 Google 和百度;低端的看高端的就是黑魔法 。

二流靠算法!程序员的数学需要很厉害吗?(数学程序员算法很厉害编程) 软件优化
(图片来自网络侵删)

说是段子,更是程序员的真实写照。
我也知道,大部分普通程序员在开发过程中,用中学数学基础是足以应付的,好像不需要学习高端的数学。

但问题是,以目前的职场环境来说,只要你想再往上走一步、做任何一点带有创新性的技术,最容易遇到的,往往就是数学问题。

比如,算法涉及大量数学基础和相关背景知识,图形处理相关的算法,大量的线性代数矩阵变换等等,Google 还曾用一道数学题作为投递简历的门槛,之前朋友圈就被这个招聘广告牌刷过屏。

其实,不止是 Google,我随便翻了翻招聘启事,发现,很多大公司在招应届研发时,都会优先考虑数学专业的毕业生。

无论是数据结构与算法,还是程序设计, 底层原理和思路都源自数学 ,在大数据和智能化的时代,学好数学更是门槛本身。

“程序员不需要学数学,因为工作中根本用不到数学。
有学数学的功夫,还不如认真把设计模式、计算机网络、操作系统这些硬知识学好。
” 这是很多人的观点,是的,作为程序员,你不需要任何数学知识,也可以写好代码。

但我认为,数学学得好不好,将会直接决定一个程序员未来的发展潜力。
往大了说,数学是一种思维模式,考验的是一个人归纳、总结和抽象的能力,放到程序员的世界,就是解决问题的能力。

往小了说,不管是数据结构与算法,还是程序设计,其底层原理和思路很多都源自数学。
所以很多大公司在招人时,都会优先考虑数学专业的毕业生,因为数学基础好,学习编程会更容易上手。

那程序员到底该如何学数学呢?我整理了三位技术专家的看法。

Steve Yegge | 资深程序员

1. 正确学习数学的方法是广度优先,而非深度优先。
你要了解的是整个数学领域每个概念的名字,并知道它们要解决什么问题。

2. 把数学当成文科来学,先不用重点看那些算法和证明,只需要了解数学概念的名字、作用、大致步骤、发明人、发明时间、局限等。

3. 数学符号是关闭你通往另一个世界的符咒,如果你看到一堆自己不懂的数学符号,就把它的实现功能简单地当成一个原子操作好了,不要深究太多。

徐文浩 | bothub.ai 创始人

1. 从工作相关的领域开始了解数学,这样你更容易获得正反馈。

2. 把正在学习的数学问题的解法,写一个算法程序实现出来,这是一个不错的练习方法。

3. 你可以选择对一门数学相关的在线课程,跟着老师的节奏来系统理解数学。

刘超 |《趣谈网络协议》专栏作者

阶段一:怎么使用?咱们做工程的,还是实现出来,程序跑起来看。
我一开始使用Lucene的时候,因为接口已经十分友好,是很容易实现一个简单的搜索引擎的,这个时候,我还处在第一个阶段。

阶段二:如何实现,原理是什么?只会用可不行,原理都不了解,没法调优和Debug。
我这个人爱看源代码,于是就去分析里面的原理,有的部分就比较晦涩,需要结合Debug和代码贡献者的文档才能有所了解,这个时候,我处在第二个阶段,写了大量源码分析的文章。

阶段三:为什么这样实现?其实实现一个东西有好多种方法,作者之所以选择这样实现,都是因为数学算过的,这样的性能或者准确度最高。
我在读Lucene代码贡献者的文档的时候,有的作者会列出很多的论文,这里面有大量的数学推演,以及并列的多种方法,你才会发现开源软件的实现也是沧海一粟。
这样才能举一反三。

希望对大家有帮助~

如果你想更好地提升你的编程能力,好好学习C/C++编程知识,以后努力成为高薪软件开发工程师的话!

编程学习书籍:

编程学习视频:

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

C语言C++编程学习交流圈子,点击下方【了解更多】获取更多学习资料帮助你学习成长哦~

相关文章