数学对程序员来说真的很重要吗?

2019-08-04 21:46:14 +08:00
 izzy27

我是一名在校生,专业是数学和计算机的交叉学科,认识了不少计算机系的同学,几乎每个同学都对我说数学很重要。然而我在学习过程中发现理论和实践之间有着巨大的差异。就我个人而言做项目的时候几乎不会用到数学知识(极限积分微分向量...),同时学数学的时候更不会涉及到有关编程的内容。我大一在学数学,现在还在学数学,可能是我太菜了吧,始终没有感觉到两者的关联

挺迷茫的,各位觉得数学对工作帮助真的很大吗

9452 次点击
所在节点    问与答
82 条回复
RangerWolf
2019-08-05 13:00:22 +08:00
能把数学逻辑搞定, 那个脑子真的挺聪明的。
有价值的不是什么数学公式, 而是用这个数学公式锻炼过大脑
MonoLogueChi
2019-08-05 13:19:01 +08:00
看什么方向,如果是游戏开发,不懂数学的话,很多功能只能靠复制粘贴,找前面已经实现的代码
xiaowangge
2019-08-05 13:42:42 +08:00
在本站搜索一下,就有很多结果的哦:

《冒号课堂》----答读者问(1)——对程序员的一些个人建议

http://blog.zhenghui.org/2010/06/03/advice-on-programmer/


关于数学基础,窃以为并非什么太大的问题。几乎每个得知我数学背景的人都会对我说:哦,学数学的人来学计算机自然容易啦。事实上,这种观点虽然极为普遍,但也极为肤浅。本人从事数学 14 年(从本科算起)、从事计算机 12 年(与前者有部分重合),在这一点上还是比较有发言权的。事先说明,以下提到的数学不包括高中数学。其实大多数从事软件开发的人员用不到太多的数学知识,他们只需要正常的逻辑思维能力和抽象思维能力。整天拿数学说事,要么是无知,要么是找借口,要么是装高深。当然,我不否认一些高级算法、计算机理论以及人工智能等领域可能涉及到高深的数学知识(其实也只是图论、组合数学、数论、概率论、计算几何、抽象代数、数学逻辑等中的一小部分),但那毕竟只是少数。我也不否认自己的数学背景有助于对编程的理解,但投入产出比太低,不值得作为经验来推广。不过若想成为一位计算机科学家,那就另作别论了——这时数学懂得再多也会嫌少的。


倒是英语我希望你更重视些。我在《冒号课堂》中专门提过阅读原著的必要性,而且你也意识到译著的质量问题。建议不必特地去学习英语(你本来就会了,不是吗?),只要坚持读经典原著即可。其实,计算机方面的英文算是很容易的了,关键是克服自己的惯性和惰性。开始可能不习惯,看多了就习惯了。在此提醒一点,在阅读时请有意识地培养自己对英语的语感,就像编程时要有意识地培养自己对编程语言的语感一样。


总之,对于程序员来说,数学没有人们认为的那么重要,英语没有人们认为的那么不重要。


再说说专业方面的问题。你提到愿意重新自学大学课程,虽精神可嘉,但未必可取。从软件(或建筑)设计的观点来看,这是 bottom-up 法。作为学生,最好采用这种方法,但你已经参加工作了,所以我建议你更多地采用 top-down 法。这当然不是轻视基础知识,而是认为获取知识最高效的方法莫过于按需( on demand )学习。在实际工作中意识到某个知识点的重要性,从而有针对性地弥补短板,这样学习起来不仅更有效率,也更有兴味。需要强调的是,绝不能只是 “头痛医头”,而要“拔萝卜带出泥”。只有寻根究底、以点带面,才能快速有效地建立起自己的知识结构体系。对于软件开发这类实践性很强的专业来说,该法尤其奏效。
nicebird
2019-08-05 14:04:23 +08:00
逻辑重要,数学很少。
zqx
2019-08-05 14:20:16 +08:00
请相信教育部,计算机专业大纲要求的高数,离散数学,概率论,线性代数,这四门数学课已经够了。
across
2019-08-05 14:39:56 +08:00
想想主要应该给楼主列举用处,比如
几何 - 向量常规运算、矩阵空间运算,游戏必备技能。 其他工种估计做页面动画相关用到一点。 模式识别好像也有用到?计算相似性什么的。
概率 - 设计活动概率行为,抽奖、开箱什么的。游戏系统就不说了,实际概率系统都是人为控制的,比如有概率累积什么的。 另外贝叶斯系统之类的算法不知道现在还有多少运用,反正个人没接触过···
数学到工程经历了:
数学 - 算法 - 工程实践。 所以我同意上面先做做算法题···(不过大一没学完可能矩阵都看不懂),然后看看现在软件都要求啥算法。图片相似性怎么判断? 查询城市路线时软件怎么算的? 现在的美颜滤镜又是怎么搞的? 可能有人会说,这不是调 API 就可以了么? 是可以了,不过只调 API 的岗位是很容易被替代的····可能培训班 3 个月也能来抢工作。
另外一点是
数学基础好的程序亮点主要是两个:
1。设计的系统效率高。
2。能拿出一个别人做不出的系统。
第一点是所有岗位都能体现,第二点最主要还是算法岗,但是你有想法技术却不够用时,第二项缺点体现就超级明显·····举个例子,机器学习这么火,v 站之前就有人发 AI 对联工具,想到这个点子的人估计不少(包括我),但是具体怎么做我没概念,看数学补习就要很久,第一步放弃了····
AmberJiang
2019-08-05 14:55:34 +08:00
个人觉得很重要 数学好也是加分项对程序员来说 而且数学也是逻辑思维的一种体现 学好数学只会有益 可恨没有早几年接触他😂虽然现在也不算太晚
Cloutain
2019-08-05 15:37:27 +08:00
太重要了
liuzhiyong
2019-08-05 15:45:07 +08:00
“数学对工作帮助真的很大吗”,基本上不重要,基本上没有任何帮助。
guixiexiezou
2019-08-05 16:14:04 +08:00
工作 3 年多的回答下吧。如果是做常规业务逻辑(其实就是增删改查),数学真的没啥鸟用,几乎不可能用的上。但如果是做其他一些,例如游戏相关的会用到很多矩阵运算那些,如果涉及图片处理,怎么也得用上傅里叶变换吧。我觉得,数学好的人,运气都不会太差。
zhuangzhuang1988
2019-08-05 16:19:50 +08:00
看哪种程序员呗。
zhanao1994
2019-08-05 17:10:48 +08:00
觉得不重要的都是带专生
photon006
2019-08-05 17:30:18 +08:00
韩寒曾经说过,数学学到初中就够了,买菜根本用不上那么复杂的计算,搞机器学习的数学专业人士会说,学好数学买菜根本不看价格。
onice
2019-08-05 17:54:13 +08:00
看开发的领域,应用层的就不重要,例如常见的 web,android,ios 等。
底层的就重要了,例如数据库,操作系统,深度学习。
aogu555
2019-08-05 21:18:53 +08:00
先找好自己的定位,未来是想成为使用计算机科学还是使用语言的程序员,这两者的需求是完全不同的,而且你来这个论坛问,我觉得 v2 的大部分人都是偏向业务的程序员,所以结果更多的是告诉你不需要很多的数学,你来这里问,如果真的不学数学了,那些说不用学的人的会对你负责吗?答案是否定的。所以你需要找到你的目标,未来会不会考研继续深入学习计算机科学或者说毕业后有没有打算从事计算机视觉 高性能推荐算法等工作,还是说把计算机简单当作一个挣钱工具,日后做业务类的程序员。但是在我看来学数学和学计算机有相关冲突吗,完全可以我全都要
hzgit
2019-08-05 21:24:00 +08:00
郭德纲说“相声比到最后比的是文化”,借用一下“编程比到最后比的是数学”。这句话 10 年以后如果你不改行,并且还在走技术路线,再来看。
b00tyhunt3r
2019-08-05 21:57:47 +08:00
@wtdd 你最后一句是不是说反了,数学明显比编程门槛高多了
sorra
2019-08-05 22:08:46 +08:00
英语更重要,数学也重要,到高端有用的
离散数学和抽象代数用于一些算法,微积分、线性代数和概率统计用于 AI,线性代数用于图形学
我工作 6 年重新对数学感兴趣,开始自学数学
golden0125
2019-08-06 09:07:10 +08:00
@murmur 张口就来,懂数学的有个专门的岗位叫算法分析师,程序员负责实现分析师给出的算法
murmur
2019-08-06 09:10:33 +08:00
@golden0125 不要玩弄概念,算法分析师只是数学非常牛逼的程序员而已,我看了好几个职位的算法分析师都有一定程度的编程要求

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/589014

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX