程序员需要怎样的数学基础?

我初中学历,自学了C语言,C++,本来还想学高中数学,但学了C语言,C++后,觉得跟数学的关系不大,我都不想学了,请问我应该学还是不学?

LZ不要杞人忧天了,那些说数学重要的,首先数学你会吗?数学包含的范畴太多了,常见的有高等几何 微积分 线性代数 概率论 离散数学 数论 图论等等你指的是具体哪一样呢?就算是前人科学巨匠泰斗牛顿,殴几里德,爱因斯坦,他也只是擅长自己从事的那领域,要说所有数学领域都精通我想他们也不敢吹这样的牛逼。
所以对大多数人来说,在数学方面都不太可能取得什么很深的造诣。等到你所谓的把数学学好,那胡子都快白完了,数学是又深奥又费解学习成本巨大需要耗费大量时间学完不用立马就忘的学科。所以说数学重要,先问问你自己能不能学会。
其次,计算机学科跟数学根本就不是一门学科, 包含内容极其有限。计算机编程有自己的理论知识体系,很多跟数学关系不大。学好编程尤其对新手来说最重要的是对你学的编程语言的熟练运用和工具SDK的烂熟于心。每个语言都有自己独特的设计理念,不存在什么好学的编程语言。
所以说,题主, 你想得太远了。软件开发需要用到的知识比数学重要的太多了。抛开计算机不说,英语比起数学的重要性就大的多的多。英语不好你看不懂函数API说明你一切就是白瞎。而数学对于大多数人来说是最难学也是最不重要的知识,基本上是学了就忘忘了就扔扔了也没感觉的那种,很多搞编程的可能一辈子也用不到数学知识。为什么?理解C++的指针和多态需要数学吗?一个复杂的系统架构也不需要半点数学知识,而你就是看不懂。
还有就是程序调试技术,很多IDE给出的出错语句非常费解,什么指针为空,数组越界,内存溢出,SDK找不到, 你没经验时打死你也看不懂你的编程工具提示的是什么。这时你那高大上的数学真是P用没有,它能帮你排查错误找出程序崩掉的原因吗?我看不行吧,你还是得到论坛百度去问人家这些基本的问题。
在你担心数学好不好之前,你更应该关心编程环境怎么搭建,连IDE都搞不定不知道程序怎么跑起来你还搞什么呀,下一步就是程序基本的语法和SDK库函数的掌握,基本SDK都不知道什么意思怎么去用,如字符串函数,文件读写和数据库常用操作,这些你都不会你还有学下去的必要吗?还有更重要的更基本的程序调试技术,程序老出错老崩溃怎么办呀,哪里变量为空了内存写错了?为什么程序老编不过去呀,谁能帮帮我呀!!!这个时候你发现那牛逼的数学知识真是屁用没有,你还是感叹自己基本功底不行经验太少,这个时候打死你也不会再关心数学好不好的问题了。
如果说用到数学的大概只有3D游戏引擎,很智能的人工智能,如格斗游戏的电脑应对玩家的复杂AI,生化危机中僵尸怪物的配合商量运用策略包抄玩家和记忆功能,还有航空航天领域这样高精尖技术学科才会用到复杂一点的数学知识。而这些都是计算机专家才要掌握的内容。所以题主你是想多了,还是先关心下自己程序为什么编不过老是报错的问题吧
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-04-18

离散数学对程序员来说非常重要,还有组合数学、线性代数、概率论、数论等等,即使你将来不做研究,这些基础知识也能极大地提高你的水平。计算机科学对离散数学的要求很高,建议你先学习前面提到的这些课程,然后学习计算机算法和数据结构,再配合到网上的在线题库做题,过程很艰辛,但是对你的帮助会很大。

推荐书目:

《具体数学》(先学完前面的数学课程,在水平有一定进步以后再看)

《算法导论》(应该人手一本的好书)

简单来说,学数学的目的,一方面是活跃你的思维;另一方面是为了深入学习算法打基础,设想一下,同样的问题,普通人的程序要几十分钟甚至几小时几天才能解决出来,甚至根本无法解决,而你精心设计的程序却能在1秒内解决出来,这就是数学的魅力、算法的魅力。

其实,一切取决于你是否想做一个高级程序员。如果你做体力活(其实一般编程别人都认为是体力活),那你可以不学,因为你用不到,但是,你要是做技术上的创新,做个很强的程序员,没有数学的支持,很难。

你既然学习了C,c++,你也知道算法的重要性,同样一个问题,我用13行程序解决了,我的同学居然用了33行,因为他不懂的用数学。你要达到什么高等,取决于你的数学修养。当然,要做一个普通的程序员就不用学习了。要挑战自己,做个好的,优秀的,学习数学吧!

本回答被网友采纳
第2个回答  推荐于2018-05-18
离散数学对程序员来说非常重要,还有组合数学、线性代数、概率论、数论等等,即使你将来不做研究,这些基础知识也能极大地提高你的水平。计算机科学对离散数学的要求很高,建议你先学习前面提到的这些课程,然后学习计算机算法和数据结构,再配合到网上的在线题库做题,过程很艰辛,但是对你的帮助会很大。

推荐书目:
《具体数学》(先学完前面的数学课程,在水平有一定进步以后再看)
《算法导论》(应该人手一本的好书)

简单来说,学数学的目的,一方面是活跃你的思维;另一方面是为了深入学习算法打基础,设想一下,同样的问题,普通人的程序要几十分钟甚至几小时几天才能解决出来,甚至根本无法解决,而你精心设计的程序却能在1秒内解决出来,这就是数学的魅力、算法的魅力。

我是复制的,给你
其实,一切取决于你是否想做一个高级程序员。如果你做体力活(其实一般编程别人都认为是体力活),那你可以不学,因为你用不到,但是,你要是做技术上的创新,做个很强的程序员,没有数学的支持,很难。你既然学习了C,c++,你也知道算法的重要性,同样一个问题,我用13行程序解决了,我的同学居然用了33行,因为他不懂的用数学。你要达到什么高等,取决于你的数学修养。当然,要做一个普通的程序员就不用学习了。要挑战自己,做个好的,优秀的,学习数学吧!本回答被提问者和网友采纳
第3个回答  2011-03-31
肯定要学啊,你学各种语言仅仅是工具而已,这些其实都比较简单,编程难点其实在于如何实现它,思想才是最重要的,你数学功底越强你编程编起来才得心应手,要不然你就只能编一些很小的小程序,没意思的。
第4个回答  2011-04-03
要学!计算机科学中能解决的是可以离散化的问题,所以计算机科学用到的主要是离散数学,你的情况,可以先学习线性代数,有一定基础后可以专门学一下离散数学
相似回答