导航:首页 > 程序命令 > 程序员需要很多数学吗

程序员需要很多数学吗

发布时间:2023-01-06 22:19:26

Ⅰ 学计算机一定要数学好吗

作为一名IT行业的从业者,同时也是一名计算机专业的研究生导师,我来回答一下这个问题。

首先,数学和物理对于计算机专业有重要的影响,因为软件研发问题说到底就是数学问题,而硬件研发说到底就是物理学问题,所以学好数学和物理对于计算机专业的学生来说具有重要的意义。不少计算机专业的研究生导师也比较喜欢数学专业和物理学专业的学生,数学专业的本科生在读研时选择大数据、人工智能等方向也是比较不错的选择。

当然,随着IT行业的不断发展,软件开发的难度也在下降,大量的应用级开发岗位对于数学的要求并不高,比如前端开发、移动终端开发、Web开发等涉及到数学知识的地方并不多,所以即使数学基础比较薄弱,目前也可以从事软件开发工作。但是如果要从事研发级岗位,则需要具备扎实的数学基础。

目前是大数据、人工智能时代,大数据和人工智能是典型的交叉学科,大数据的基础知识包括三方面,分别是数学、统计学和计算机,而人工智能涉及到的基础知识就更多了,包括哲学、数学、计算机、经济学、神经学、语言学等。所以,如果想从事大数据和人工智能领域的开发,数学是比较重要的。

随着云计算服务逐渐从IaaS转换到PaaS,软件开发模式也在发生着变化,一些基础性的开发任务将逐渐被整合(场景开发),未来大量的应用级开发程序员将面临岗位升级的问题,而数学是岗位升级的关键因素之一。尤其是未来人工智能产品的采用将代替大量的初级开发岗位,程序员的工作内容将进一步向技术创新方向发展,而IT行业的技术创新在很大程度上要依赖于数学知识。

如果有互联网方面的问题,或者考研方面的问题,都可以咨询我,谢谢!

我是“驴子谈”,这题我来谈!

由于你没说在你在计算机中到底是学习的什么?所以我就从编程的角度来讲了。希望你能从中明白,举一反三映射到你的计算机知识方向中。

我是程序员,高中学历,曾在网络,阿里巴巴等互联网公司干过。

我曾经也认为,学计算机编程都必须要数学甚至高等数学。其实这都不一定的,大部分用到什么就现学什么,更多的是找到对应公式生搬硬套,往往非常可行。

数学在计算机编程中不是必须的,但它绝对是重要的。主要是你往什么方向走。比如,算法工程师就需要高等数学了。如果只是普通的码农,数学甚至只需要小学水平就行,能解开应用题。就比如做一个网购支付结算,就是加减乘除和求余,其他的没啥。如果需要排序什么的简单算法,网上搜索就行啦。普通的码农就是罗辑思维+小学数学和初中英语,就这么简单。

举个例子,我曾经写了一段代码,算法用了30多行,我的一个哥们儿数学厉害,就用了5行搞定。当然,它并不是代码压缩。于是我有事没事也就钻研起来了高级点儿的数学。数学只有初中水平的时候,没觉得怎样,学会了高级点儿的数学,也只是特定情况下才用到,可以提高代码质量。

如果是 游戏 编程,那自然就得会弦,余弦之类的计算,还要会向量,3D数学。我之前也不懂,初中学的都忘干净了,最近自学 游戏 开发,还不是查资料自学,单独补数学知识。

就像学编程,必须英语好吗?这类问题,英语只要认识基本的英语字母就行了。我初中英语考个位数是常事,在刚学编程的时候,记住几个常见关键词,定义变量用翻译,后来用的多了,5-10次,就记住了,也会读了。

记住,时间不等人,很多时候会了基本的操作,大部分都是在实践工作中提高的。

不知道我感觉到的准不准,你问这个问题的目的就是因为自己数学不够好,想知道如果数学在你的学科中不重要,或不是必须的,就不学了,也没打算今后学。你之所以提这个问题,也说明了,你知道你这个需要数学。

所以,我的建议是,你多分析下,你现在的学习的计算机方向里,是不是必须用到数学甚至高等数学。或者它是否能为你的工作提高效率,如果是,那就是一个字 —— 学。

再补充一点,如果是现在必须学,不学没法进行你的计算机学习,那就学。如果不影响你现在的学习,没关系,数学可以放一放。

还有就是面试的时候,大部分都是,面试造火箭,工作拧螺丝。

千万不要犯我们人类的通病,懒惰。

来说说我的看法。

在大学期间和之前的工作经历中,我也是学习并从事计算机编程工作,期间也学习了计算机的一些相关知识。

对于数学,我的观点是要认真学习。因为计算机的很多方面说到底都是数学。

以编程为例,现在的编程环境越来越简单,快速,我也接触过一些国内的编程环境。可以很肯定的是当中涉及到很多数学的思维方式。数学的学习除了知识本身之外,最重要的就是培养逻辑思维和一定的思考能力。编程中的算法编写设计到一些数学的知识,逻辑顺序也需要数学学习来做支持。如果从事底层的设计,还会涉及到相关的数学知识。

计算机的很多方面都与数学有许多密不可分的关系、联系。所以数学的学习是很有必要。所以不是说学计算机一定要数学好,而应该是学计算机一定要关注数学的学习。

希望可以帮助到你。

谢谢。



从高考的角度,高校计算机专业要看你的数学,物理高考成绩,当然要学好数学;



从大学专业角度,要学深学透,数学自有的逻辑素养,相当重要,将来考研,数学更是必考



从以后的工作生活管理角度,基本的数学素养很有必要,不然“骂架”都没顺序与重点,开个玩笑了。

欢迎拍砖!

也不一定,做码农就不需要很高深的数学基础,只要逻辑思维好就OK。

学计算机可以没有数学知识,但是要学好计算机,一定要有扎实的数学知识。理论和道理就不多讲了,举两个实例。

一,使用泊松分布,模拟测试订单管理系统
开发中央厨房订单处理系统时,在系统上线前,没有真实数据,如何模拟订单分布呢?数学课上讲概率时,有正态分布、泊松分布,等等。

泊松分布是一种常见的离散机率分布,适合描述单位时间内随机事件发生的次数。中央厨房收到订单是一个随机事件,以基本固定的平均瞬时速率λ随机且独立地出现,所以单位时间内的订单数量近似服从泊松分布P(λ)。

使用Apache Commons Math提供的Poisson Distribution函数,模拟客户下单速率和数量,测试系统运行情况,在商用推广前,做到心中有数。

二,一个经济学公式,造就了一家互联网 科技 巨头,近千亿美元市值
美国版携程Priceline,创始人Jay Walker定义的业务模式颇具特色,并申请了专利,Name Your Own Price,自我定价系统,基于经济学中的一个公式“价格与价值相互关系原理”,产品价值通过价格体现出来。

在产品接近保质期时,价值残值逐渐减少,比如越临近登机,机票实际价值就越小,到飞机起飞时为零。

有专利保护的独特商业模式,加上2000年李嘉诚入股30%后推行改革,压缩成本,Priceline发展顺利,不断并购,现在是美国最大的在线 旅游 科技 公司,业务遍及全球。

生活相关的基础知识学好了都不坏

不需要!

如果你想成为一名程序员,会门语言,敲字快就行了;

如果你想成为一名架构师,年头长点,多考点证书就行了;

如果你想成为一名产品经理,有情怀,口才好就行了;

如果你就是喜欢编程,那么好好学数学,不会错!

注:本文以玩笑为主,并非是对以上人士不敬。

真新鲜,看看电影,上上网页,要什么数学

如果大学读计算机专业的话,数学是必修。事实上甚至我知道有些文科专业都要必修数学。

而实际上从事计算机专业的人平时需要用到多少数学知识,这个就不好说了。因为计算机这个行业覆盖的面太广,几乎世界上所有行业计算机都有覆盖到。所以有可能你是搞计算机的,我也是搞计算机的,但我们却隔行如隔山。

可能许多人从事计算机工作用不到太多数学知识,但是学好数学对你在计算机行业可以做得更好走得更远是有帮助的。

Ⅱ 计算机行业需要数学学的好吗

个人认为对于计算机专业的学生来说,数学好是需要的,但是这个数学不是我们所熟悉的“数学”,而是数学思维。
数学思维对于我们的学习和工作来说是非常的重要的,因为它不仅可能增强我们的逻辑思维能力,还可以让我们统筹大局,做到“心中有数”,因此,如果锻炼我们的数学思维能力是非常重要的。

Ⅲ 学习计算机编程,一定要学习高等数学吗

不一定,初等、中等的编程不一定会运用到高等数学,而要向更高层次迈进,就需要深厚的数学基础和优秀的逻辑思维。因此学习计算机编程,不一定要学习高等数学。

一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师)、系统分析员,系统架构师,测试工程师六大类。

(3)程序员需要很多数学吗扩展阅读

行业现状

由CSDN、《程序员》主办的2007年开发者大调查2007年底已收到15000多份有效问卷,已经是中国调查样本最多的开发者调查。

在这次调查中,详细的分析了样本空间的分布状况,发现在庞大数目的有效问卷的参与者中有70%也就是接近一万一千名的参与调查者是IT的全职人员,14%的参与者是有过开发工作经验的学生,

从这样的分布就可以看出来IT从业人员对专业知识的需求是巨大而迫切的,CSDN作为专业的软件开发技术门户网站,已经是大家获取这些技术知识的主要手段。

职业要求

一般的程序员都有四年的在专业领域的学习,需要一个在程序领域的学士学位获得者,不论是数学方面的还是工程方面的都是可以的。

大约有20%的人在这一领域的计算机科学和工程学拥有更高的学位。还有很小一部分程序员是自学的,尽管一些专业性的学校或者综合大学可以提供,但是也需要一些别的途径来提供相关的人才。

尽管学历是比较重要的,但是公司经常把重点放在应聘者的工作经验上,很多刚从大学毕业的大学生虽然有引人注目的学位证书,但是他们找不到工作是因为他们缺乏经验。

一个程序员虽然没有正规的学历,但是如果一个人拥有程序设计的深厚知识背景或者丰富的工作经验的话,那么他的机会要比有学历的应届毕业生大得多。

所以要尽量抓住有用的工作和实习机会,这样的话在毕业后你就会发现,多实习让你有更多的经验,在找工作的时候就有更多的机会。

Ⅳ 一个优秀的程序员需要擅长数学吗

程序员都应该懂得数学。程序的基础是数学,不管是有意还是无意,程序员的工作中都会涉及到很多的数学知识的。

Ⅳ 做程序员一定要数学很好吗

做程序员需要数学知识的,从事开创性的工作的都是数学很好的。比如谷歌的搜索系统,那就是从一个数学模式中推导出来的。

Ⅵ 程序员需要数学很厉害吗

程序员不需要数学特别优秀,但需要有一定的数学基础。

程序员(英文Programmer)是从事程序开发、程序维护的基层工作人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚。

数学是人类对事物的抽象结构与模式进行严格描述的一种通用手段,可以应用于现实世界的任何问题,所有的数学对象本质上都是人为定义的。从这个意义上,数学属于形式科学,而不是自然科学。不同的数学家和哲学家对数学的确切范围和定义有一系列的看法。

程序员岗位职责:

1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。

2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。

3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。

4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。

Ⅶ 要想成为一名顶尖的程序员,要学习高等数学吗

必然的,必须的。
顶尖的程序员除了懂写代码外还要懂各种算法的应用。而应用的背景知识就是高等数学。如果只知道写代码,那么还算不上顶尖的程序员,顶多算个中等的程序员。
举个最简单的例子,做图像识别或人脸识别,就是对图像进行处理。而图像的本质就是矩阵,因此离不开线性代数的各种运算,特征求解,规划求解。
人脸识别中可能还涉及到神经网络的学习和试算梯度预算,就离不开微积分。
再举个例子,密码的编译也离不开矩阵代数应用,无论是密文还是密文转明文。
还有,文字索引,文本处理……是在太多太多了。以上的知识,还要变成代码写入你的程序中的。
所以,光从应用的角度来看,就离不开高等数学。要想成为顶尖的程序员,那就更要学好高等数学。

Ⅷ 程序员必备的一些数学基础知识

作为一个标准的程序员,应该有一些基本的数学素养,尤其现在很多人在学习人工智能相关知识,想抓住一波人工智能的机会。很多程序员可能连这样一些基础的数学问题都回答不上来。

作为一个傲娇的程序员,应该要掌握这些数学基础知识,才更有可能码出一个伟大的产品。

向量 向量(vector)是由一组实数组成的有序数组,同时具有大小和方向。一个n维向量a是由n个有序实数组成,表示为 a = [a1, a2, · · · , an]

矩阵

线性映射 矩阵通常表示一个n维线性空间v到m维线性空间w的一个映射f: v -> w

注:为了书写方便, X.T ,表示向量X的转置。 这里: X(x1,x2,...,xn).T,y(y1,y2,...ym).T ,都是列向量。分别表示v,w两个线性空间中的两个向量。A(m,n)是一个 m*n 的矩阵,描述了从v到w的一个线性映射。

转置 将矩阵行列互换。

加法 如果A和B 都为m × n的矩阵,则A和B 的加也是m × n的矩阵,其每个元素是A和B相应元素相加。 [A + B]ij = aij + bij .

乘法 如A是k × m矩阵和B 是m × n矩阵,则乘积AB 是一个k × n的矩阵。

对角矩阵 对角矩阵是一个主对角线之外的元素皆为0的矩阵。对角线上的元素可以为0或其他值。一个n × n的对角矩阵A满足: [A]ij = 0 if i ̸= j ∀i, j ∈ {1, · · · , n}

特征值与特征矢量 如果一个标量λ和一个非零向量v满足 Av = λv, 则λ和v分别称为矩阵A的特征值和特征向量。

矩阵分解 一个矩阵通常可以用一些比较“简单”的矩阵来表示,称为矩阵分解。

奇异值分解 一个m×n的矩阵A的奇异值分解

其中U 和V 分别为m × m和n×n 的正交矩阵,Σ为m × n的对角矩阵,其对角 线上的元素称为奇异值(singular value)。

特征分解 一个n × n的方块矩阵A的特征分解(Eigendecomposition)定义为

其中Q为n × n的方块矩阵,其每一列都为A的特征向量,^为对角阵,其每一 个对角元素为A的特征值。 如果A为对称矩阵,则A可以被分解为

其中Q为正交阵。

导数 对于定义域和值域都是实数域的函数 f : R → R ,若f(x)在点x0 的某个邻域∆x内,极限

存在,则称函数f(x)在点x0 处可导, f'(x0) 称为其导数,或导函数。 若函数f(x)在其定义域包含的某区间内每一个点都可导,那么也可以说函数f(x)在这个区间内可导。连续函数不一定可导,可导函数一定连续。例如函数|x|为连续函数,但在点x = 0处不可导。

加法法则
y = f(x),z = g(x) 则

乘法法则

链式法则 求复合函数导数的一个法则,是在微积分中计算导数的一种常用方法。若 x ∈ R,y = g(x) ∈ R,z = f(y) ∈ R ,则

Logistic函数是一种常用的S形函数,是比利时数学家 Pierre François Verhulst在 1844-1845 年研究种群数量的增长模型时提出命名的,最初作为一种生 态学模型。 Logistic函数定义为:

当参数为 (k = 1, x0 = 0, L = 1) 时,logistic函数称为标准logistic函数,记 为 σ(x) 。

标准logistic函数在机器学习中使用得非常广泛,经常用来将一个实数空间的数映射到(0, 1)区间。标准 logistic 函数的导数为:

softmax函数是将多个标量映射为一个概率分布。对于 K 个标量 x1, · · · , xK , softmax 函数定义为

这样,我们可以将 K 个变量 x1, · · · , xK 转换为一个分布: z1, · · · , zK ,满足

当softmax 函数的输入为K 维向量x时,

其中,1K = [1, · · · , 1]K×1 是K 维的全1向量。其导数为

离散优化和连续优化 :根据输入变量x的值域是否为实数域,数学优化问题可以分为离散优化问题和连续优化问题。

无约束优化和约束优化 :在连续优化问题中,根据是否有变量的约束条件,可以将优化问题分为无约束优化问题和约束优化问题。 ### 优化算法

全局最优和局部最优

海赛矩阵

《运筹学里面有讲》,前面一篇文章计算梯度步长的时候也用到了: 梯度下降算法

梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。

梯度下降法
梯度下降法(Gradient Descent Method),也叫最速下降法(Steepest Descend Method),经常用来求解无约束优化的极小值问题。

梯度下降法的过程如图所示。曲线是等高线(水平集),即函数f为不同常数的集合构成的曲线。红色的箭头指向该点梯度的反方向(梯度方向与通过该点的等高线垂直)。沿着梯度下降方向,将最终到达函数f 值的局部最优解。

梯度上升法
如果我们要求解一个最大值问题,就需要向梯度正方向迭代进行搜索,逐渐接近函数的局部极大值点,这个过程则被称为梯度上升法。

概率论主要研究大量随机现象中的数量规律,其应用十分广泛,几乎遍及各个领域。

离散随机变量

如果随机变量X 所可能取的值为有限可列举的,有n个有限取值 {x1, · · · , xn}, 则称X 为离散随机变量。要了解X 的统计规律,就必须知道它取每种可能值xi 的概率,即

称为离散型随机变量X 的概率分布或分布,并且满足

常见的离散随机概率分布有:

伯努利分布

二项分布

连续随机变量
与离散随机变量不同,一些随机变量X 的取值是不可列举的,由全部实数 或者由一部分区间组成,比如

则称X 为连续随机变量。

概率密度函数
连续随机变量X 的概率分布一般用概率密度函数 p(x) 来描述。 p(x) 为可积函数,并满足:

均匀分布 若a, b为有限数,[a, b]上的均匀分布的概率密度函数定义为

正态分布 又名高斯分布,是自然界最常见的一种分布,并且具有很多良好的性质,在很多领域都有非常重要的影响力,其概率密度函数为

其中, σ > 0,µ 和 σ 均为常数。若随机变量X 服从一个参数为 µ 和 σ 的概率分布,简记为

累积分布函数
对于一个随机变量X,其累积分布函数是随机变量X 的取值小于等于x的概率。

以连续随机变量X 为例,累积分布函数定义为:

其中p(x)为概率密度函数,标准正态分布的累计分布函数:

随机向量
随机向量是指一组随机变量构成的向量。如果 X1, X2, · · · , Xn 为n个随机变量, 那么称 [X1, X2, · · · , Xn] 为一个 n 维随机向量。一维随机向量称为随机变量。随机向量也分为离散随机向量和连续随机向量。 条件概率分布 对于离散随机向量 (X, Y) ,已知X = x的条件下,随机变量 Y = y 的条件概率为:

对于二维连续随机向量(X, Y ),已知X = x的条件下,随机变量Y = y 的条件概率密度函数为

期望 对于离散变量X,其概率分布为 p(x1), · · · , p(xn) ,X 的期望(expectation)或均值定义为

对于连续随机变量X,概率密度函数为p(x),其期望定义为

方差 随机变量X 的方差(variance)用来定义它的概率分布的离散程度,定义为

标准差 随机变量 X 的方差也称为它的二阶矩。X 的根方差或标准差。

协方差 两个连续随机变量X 和Y 的协方差(covariance)用来衡量两个随机变量的分布之间的总体变化性,定义为

协方差经常也用来衡量两个随机变量之间的线性相关性。如果两个随机变量的协方差为0,那么称这两个随机变量是线性不相关。两个随机变量之间没有线性相关性,并非表示它们之间独立的,可能存在某种非线性的函数关系。反之,如果X 与Y 是统计独立的,那么它们之间的协方差一定为0。

随机过程(stochastic process)是一组随机变量Xt 的集合,其中t属于一个索引(index)集合T 。索引集合T 可以定义在时间域或者空间域,但一般为时间域,以实数或正数表示。当t为实数时,随机过程为连续随机过程;当t为整数时,为离散随机过程。日常生活中的很多例子包括股票的波动、语音信号、身高的变化等都可以看作是随机过程。常见的和时间相关的随机过程模型包括贝努力过程、随机游走、马尔可夫过程等。

马尔可夫过程 指一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态。

其中X0:t 表示变量集合X0, X1, · · · , Xt,x0:t 为在状态空间中的状态序列。

马尔可夫链 离散时间的马尔可夫过程也称为马尔可夫链(Markov chain)。如果一个马尔可夫链的条件概率

马尔可夫的使用可以看前面一篇写的有意思的文章: 女朋友的心思你能猜得到吗?——马尔可夫链告诉你 随机过程还有高斯过程,比较复杂,这里就不详细说明了。

信息论(information theory)是数学、物理、统计、计算机科学等多个学科的交叉领域。信息论是由 Claude Shannon最早提出的,主要研究信息的量化、存储和通信等方法。在机器学习相关领域,信息论也有着大量的应用。比如特征抽取、统计推断、自然语言处理等。

在信息论中,熵用来衡量一个随机事件的不确定性。假设对一个随机变量X(取值集合为C概率分布为 p(x), x ∈ C )进行编码,自信息I(x)是变量X = x时的信息量或编码长度,定义为 I(x) = − log(p(x)), 那么随机变量X 的平均编码长度,即熵定义为

其中当p(x) = 0时,我们定义0log0 = 0 熵是一个随机变量的平均编码长度,即自信息的数学期望。熵越高,则随机变量的信息越多;熵越低,则信息越少。如果变量X 当且仅当在x时 p(x) = 1 ,则熵为0。也就是说,对于一个确定的信息,其熵为0,信息量也为0。如果其概率分布为一个均匀分布,则熵最大。假设一个随机变量X 有三种可能值x1, x2, x3,不同概率分布对应的熵如下:

联合熵和条件熵 对于两个离散随机变量X 和Y ,假设X 取值集合为X;Y 取值集合为Y,其联合概率分布满足为 p(x, y) ,则X 和Y 的联合熵(Joint Entropy)为

X 和Y 的条件熵为

互信息 互信息(mutual information)是衡量已知一个变量时,另一个变量不确定性的减少程度。两个离散随机变量X 和Y 的互信息定义为

交叉熵和散度 交叉熵 对应分布为p(x)的随机变量,熵H(p)表示其最优编码长度。交叉熵是按照概率分布q 的最优编码对真实分布为p的信息进行编码的长度,定义为

在给定p的情况下,如果q 和p越接近,交叉熵越小;如果q 和p越远,交叉熵就越大。

Ⅸ 北大青鸟java培训:编程需要多少数学知识

1、编程中的数学于是我马上回顾了下编程中用到的数学知识,好像少的可怜。
计数的能力:for循环中经常用,小学生都会。
数字的加减乘除:每种编程语言都会内置支持,都不需要你自己算余数和模:偶尔会用得到集合运算:交集、并集、差集,编程中用的不多。
布尔运算:AND,OR,非各种进制:二进制、十进制、十六进制还有哪些?我想不起来了。
当然这和我从事的编程领域有极大关系,辽宁北大青鸟http://www.kmbdqn.cn/认为如果我做的不是Web开发,而是搜索,游戏,安全,算法,人工智能等,那对数学的要求估计就开始飙升了。
其实计算机的基础是数学,只是我们一直在应用层编程,体会不到罢了。
比如说我们日常使用的计算机,绝大部分都是所谓冯诺依曼结构,这个结构可以说是图灵机这个概念机器的具体实现,而图灵机就是一个纯数学的东西啊,没有图灵机这么伟大的抽象作为数学基础,现代的计算机是制造不出来的。
再比如说密码领域需要很多数论的知识,RSA算法就涉及到大素数的分解;我们常用的Mysql,Oracle等关系数据库的底层基础是离散数学的笛卡尔乘积;通信系统中很重要的一个原理就是傅里叶变换。
编译器会用到有限状态机;数据的压缩会用到各种数学的算法;项目管理中的进度管理,甘特图数学基础就是图论。
.....总之,数学在计算机科学扮演着非常重要的角色,是整个学科的基础。
2、不拼数学拼什么?具体到应用层编程,尤其Web开发、企业信息化开发,整天折腾的是框架和类库,用不到这么多高大上的数学知识,那到底拼的是什么?想想编程中常用的数组,如果是一维数组,做个循环和遍历,每个人都能轻松应对。
如果要用数组来表示二叉树,就需要把一个树形结构对应到线性结构,那难度立刻上升。
如果在编程中需要自己实现链表,就会发现把各个节点的链接关系维护好,需要把指针调来调去,挪来挪去,实在不是一件容易的事情。
这样的能力就是逻辑思维的一种体现。
我们在做系统设计的时候,经常需要总结、分析现实需求,找到容易变化的部分和相对稳定的部分,把他们封装起来,形成核心的概念,支撑起整个系统,这是一个抽象的过程,虽然用不到多少数学知识,但是思维的过程也极不容易。
逻辑思维能力和抽象能力的差别,能够区分出程序员的优秀和平庸。
一个优秀程序员写出的代码,接口清晰,容易扩展,易于维护;一个差程序员写出的代码,思路混乱,完全是一些计算机语句的堆砌,别人看不明白,过一段时间自己都看不明白了。
数学系的同学在这两方面恰恰是长项,想想看,数学系同学们整天折腾这么多“枯燥的”抽象概念,再去看编程这样大部分都是具体化的实现,简直是分分钟搞定!这可能是数学系的转到编程领域很厉害的原因吧。
逻辑思维能力通过学习数据结构和算法,做数据结构的习题可以得到有效的提高,抽象能力需要在实践中不断的练习、积累经验。
对于初学编程的同学,从现在就开始努力提升吧!

阅读全文

与程序员需要很多数学吗相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:962
phpffmpeg转码 浏览:671
长沙好玩的解压项目 浏览:144
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:736
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:484
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:381
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:349
风翼app为什么进不去了 浏览:778
im4java压缩图片 浏览:362
数据查询网站源码 浏览:150
伊克塞尔文档怎么进行加密 浏览:892
app转账是什么 浏览:163