这个问题困扰了我挺久,数学到底是不是程序员必备的技能呢?有必要上班之后再专门拿起来学习吗?
我也有过和你一样的疑惑,问过身边同事,回复是两个极端,一个是说不需要,一个是非常需要,甚至要统计学,离散数学....
个人感觉,两个答案的结合是对的,即,需要一些数学,比如大学高等数学的底子,和逻辑数学,其他的有难度的可能遇到了,才会去研究学习。
已参与 「极客观点」 ,欢迎正在阅读的你也加入。
想起来一个故事, 大致内容如下: 英国工厂发生了一个故障, 找了几天都找不出原因. 后来找到了一个专家, 看了三天三夜, 最后专家在某处电机上划了一条线, 说线圈少一圈, 要价10000英镑. 后来果然问题解决了, 问为啥要这么贵, 说划一条线1英镑, 知道在哪里划线9999英镑.
就像上面故事里的一样, 数学重要不重要, 这个要看你岗位和工作内容.如果你只是做CURD, 可能不需要高深的知识, 但是如果需要提升某个算法, 需要研究论文, 甚至自己发明创造一个算法, 提升当下的效率,这里面很多都涉及到高深的数学知识. 比方说,推荐效率提升1%, 但是流量是百亿级别的, 这个提升就是很夸张的, 这个时候再吹捧数学也就不过分了.
已参与 「极客观点」 ,欢迎正在阅读的你也加入。
不需要。你都这样问了,那么肯定是你找不到用它的地方。
大多数人都用不到,想想之前一个角度的计算,我都需要网上查半天,真要了 🐶 命
当你遇到的时候,大多数也能从网上找到解决办法,而且还有大量库可以帮助你实现。站着巨人的肩膀上不好嘛?
已参与 「极客观点」 ,欢迎正在阅读的你也加入。
程序的核心是数据结构和算法,这两个东西都是数学息息相关的。但是一般写应用程序,需要深入了解其原因,只需要找到合适的库来使用就行了。多数程序设计语言的标准库或者常用第三方库中都含有日常使用的数据结构及算法,比如列表、栈、树、映射表、排序、查找……
那么,你觉得我是想说不需要数据功底吗?并不是——
写程序需要严密的逻辑思维能力,这个能力是数学功底的一种。
要把程序写好,需要具有抽象和模块化思维,这个思维,也是从数学训练中习得的。
想做好设计,需要具有一定的建模能力,建模的全称叫“数学建模”,所以……
不说别的,就常用的递归函数,其实也就是数学归纳法的程序表现。
而“函数”,这根本就是数学中的概念
……
所以说,是不是需要数学功能呢?你可能不需要应用数学中学到的任何理论知识,但是绝对会用到数学培养出来的思维能力的思维习惯!
已参与 「极客观点」 ,欢迎正在阅读的你也加入。
答案是肯定需要,但是需要多好的功底,这个没有固定答案。
就拿前端来说,画一个圆形,如果要移动它到某个固定位置,我至少得知道把圆心坐标移动过去是吧。如果要给圆形的一半填充东西,我得知道圆的面积公式才能继续往下做吧。但是这些涉及到的数学知识难吗?只要是上过初高中的,甚至大学迷迷糊糊混过来的人,做出来也很轻松。因为都是很基础的数学,对于中国人来说,得益于应试教育和中高考这种强度,平均的数学水平绝对不低。
但是我们再做复杂一点的东西,比如动画、三维空间物体的绘制等,这时需要你对向量、曲面计算、各种三角函数了然于胸才能写出来。不然即使你精通了这门编程语言,一个简单的动画效果可能你都做不出来。
最后就是基本纯数学的,比如MATLAB
这种软件,我也不知道是程序员和数学家一起完成的,还是别人的程序员也超级牛,能搞出来这些东西,基本上这也属于工业软件的天花板了。但是不要妄想你数学好,就能做出来。这种东西不是单靠数学好就能搞出来,软件本身靠的更多是软件工程的知识和计算机知识。
现在WebGL工程师
很火,但是能完全自己从底层写效果,写动画的还是很稀缺的(用别人封装好的不算)
所以说,做数学要求不高的活,自然你的可替代性一定会更高。数学要求越高,说明你的这个岗位相对来说门槛会更高一点。
已参与 「极客观点」 ,欢迎正在阅读的你也加入。
程序=数据结构+算法;这两个都牵扯到数据的影子;比如高中学的数列、点、线、面、图、树;另外是算法,加减乘除商、余数,包括流程图等都是数学上的。好的数学功底,它会让你更快理解编程思路
已参与 「极客观点」 ,欢迎正在阅读的你也加入。
不是很需要,看你要做什么方面的开发。游戏开发不光需要用到数学知识,还需要用到物理知识。如果你是做某个行业某个领域的开发,还需要对这个行业领域知识有所深入。
已参与 「极客观点」 ,欢迎正在阅读的你也加入。
看你如何理解所谓的“数学功底”,毕竟初中数学也是数学,当你遇到需要用到特定公式或计算模型的时候再去写也不吃。不过真的搞不会的就别强求,毕竟数学不会骗人的。
已参与 「极客观点」 ,欢迎正在阅读的你也加入。
其实这个问题的根本原因,我感觉是对数学
这个概念的定义。什么是数学❓
高中的代数、几何?大学的高数、线代、概率论?
有功底更好,没有也问题不大(对于大多数开发而言)
已参与 「极客观点」 ,欢迎正在阅读的你也加入。
7 回答5.3k 阅读
3 回答3.9k 阅读✓ 已解决
1 回答810 阅读
1 回答781 阅读
不是很需要,除非你的项目涉及到大量的复杂计算,这时候数学就会发挥出他的魅力