快大四了,我才学数学

    我是一个走在大三尾巴上的学生,既将面临的是大四的学习。济南我上大学的地方,这儿有火热的夏天,有冰冷的冬天。六月是高中生毕业的日子,也正是济南火热的日子。在这个六月的一天,我接到一个电话,进行了近半个小时间的交谈后挂断了电话。这是一个培训机构打来的电话,问我是否有意去参加他们举办的嵌入式培训。而后在QQ我把我想学的告诉他后,被他问了一窜问题,我没答出几个,然后他给我说:“你得先修微分方程,这儿没这些,这儿就能够给你系统的程序设计,处理器体系结构,操作系统架构的知识。你需要系统的数学,微积分是基础的基础的基础。算法你不会,看看有没有什么数学建模的课可以选,我们这儿管后边”。

翻开我曾经学过的数学,发现是那么的简陋,提高篇才讲一元微积分,线性代数也就只是简单的讲了一下行列式和矩阵。所以我当然回答不了那个属于二元微积分的问题,也当然解释不了那个属于模糊数学的问题,更无法回答关于信号傅里叶变换处理的问题……当然我这不是再为我回答不了问题而给自己找借口,而是想说明数学知识的匮乏。

对于很小就开始学习计算机编程的我,我深知数学在编程中的重要性。程序设计当中解决的相当一部分问题都会涉及各种各样的科学计算。实际问题转换为程序,要经过一个对问题抽象的过程,建立起完善的数学模型,只有这样才能建立一个设计良好的程序。在这次交谈之前,我一直认为作为程序员应该是只需要有那种数学的思想,而不需要具体数学的,因为程序设计本身就属于数学。但貌似我是真的错了,想想之前遇到过的问题,结合现在受到的BS,无疑是最佳的证明。在大学的三年学习中,始终感觉没有什么进步,甚至有倒退的感觉。大一就把软件设计师的资格拿下来了,对计算机的基础我觉得是可以的,在这之前高中就能写四五千行的C程序了,当时最大的愿望就是希望能成为一个合格软件工程师。可是在大学的学习过程中,学习离散数学和编译原理是相当的吃力,上个学期学习图形学和密码学也是压力很大,自认为数据库学的不错,但是在范式、函数依赖、传递依赖、闭包等数学性比较强的概念面前感到力不从心。这一大堆问题都表明了数学知识的匮乏。

在大一学习过离散数学之后,写出来的C代码从空间和时间复杂度都有明显的改善,当时一度改写链表合并排序等过去使用的算法。而大二大三两年因为没有再继续去对数学进行更深入的学习,把更多的精力花在了应用开发上,可是现在应用的就是刚开始学的,几乎都不变的一个模式,建数据库,拖控件搭建界面,然后就是数据的边界检查和数据的CUID操作了。最近又学了微软ELB,使得前面的数据库操作更简单了,我开始在想在这里学会的东西除了能做MISOAS,设计一下MDI,写写简单的Class或用SQL语句实现查询等基础的编程,我们还能做什么呢?

翻开计算机软件开发的发展史卷,计算机科学界的各大师几乎都是数学很好的人,有的本身就是数学家:图灵、冯·诺伊曼、高德纳……。我的偶像比尔.盖茨数学成绩一直很好,影响一代中国程序员的金山老大求伯君当年高考数学成绩满分。

这几天一直在研究计算机各方面到底如何和数学进行关联的进行了深入的分析,想成为优秀程序员的各同学,我们可得一起努力了。计算机程序的编写需要很多的数学知识,如图论,数论、集合论、排队论、离散数学、组合数学、模糊数学、统计学,当然还有微积分。在我的学习过程中密码学和图形学是我目前遇到数学问题最多的,每一个好的加密算法后面都有一个数学理论的支持,如椭圆曲线、背包问题、素数理论等,图形学的画线,画面更是和几何学关系密切。说到这就开始有点怀疑老师讲课为什么总是以语言为中心,而对算法的核心思想与相关的数学知识都一笔带过,讲得很少,而这也许是让我感觉到什么也没有学到的主要原因吧。记得有位专家曾经说过,经常做做数学题目会使自己变聪明,很长时间不去接触数学问题会使自己思维迟钝。看来是这么回事哦,大家一起努力吧,让自己变得更聪明!

写到最后,再此给各位能看到本文的并喜欢程序设计的同学和朋友一个建议,虽然我自己也在学习,但以我个人的经历来说明问题:要想成为一个有前途程序设计人员一定要掌握好相关的系统的数学知识。

切记:数学是程序的灵魂。

2011-06-21

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值