作为一个程序员,数学对你到底有多重要

 每个计算机系毕业的人,大都学过不少数学课,而且不少学校的计算机系的数学课,通常比一般的其他工科专业的数学要难一些,比如不上高等数学,而是学数学分析,不上线性代数而去上高等代数。但是,大部分毕业了后去做程序员的人,即使是所谓的名校计算机系毕业的,大都工作中也基本完全用不上学的那些数学,基本上,一半时间在CRUD,另一半时间在处理各类字符串、链表、Hash表,知道在面试中回答各种排序的时间复杂度是他们需要的数学的上线了。

  而在念书的时候,虽然上大学之前,有不少内行的外行的,年老的年轻的人告诉你,数学很重要啊。但是,通常来说,各个学校的计算机系的同学么,爱好学习的,可能重视的也是《Thinking in Java》,《C++ Primer》之类的语言书,或者设计模式之类的架构书,抑或是算法与数据结构这些玩意儿;而像我这样天天偷懒放羊的,也不会把数学当作是什么重要的课程好好学习。所以,“数学真重要”,这句话,似乎对于大家来说,始终只是飘在天上的一句话,随风飘逝了。

  于是,五年过去了,程序员们都有了不少的工作经验了,如果不是对工作毫无追求混吃等死的程序员的话,对于天天干活的语言,不论是Java还是C++应该都熟能生巧了,所谓的设计模式、重构、自动化测试等等也手到擒来了,大部分人的title上都加上了Senior了,牛一点的后面大概还跟上了一个Manager,然而,大家都开始考虑一个新的问题?—?— “30岁以后怎么半?”。于是,转PM的转PM,考公务员的考公务员,像我这样仍然抱定?—?— “你看人家美国Rohit都50了还不是天天写程序,别人想请还请不到的”的单纯想法的人越来越少了。然后,就算这些人,时不时也会觉得,自己天天干的超越CRUD的,所谓写点OO的框架,不也是很无聊的体力活么,写程序的人干两年谁都会干。于是,又有不少人下海创业了,多年以后,这些人中的大部分都会和我一样悲催的没有挣到前继续回来给大大小小的公司写程序。

  其实,杯具往往发生在一开始,其实,要是咱们当年好好学习,才会发现,也许数学对于你当个不错的程序员来说,没那么重要,但是要再往上走一步,有一点点技术上的创新,就都是数学的事儿了。两年前,我在T公司,用Configurator处理某个程序的时候,开始有点儿意识到这一点了,于是,那阵子还花了不少时间重新翻了翻数理逻辑。今年,换了新工作后为了工作看点儿机器学习的东西的时候,终于发现,这全都是数学啊。当你要超越CRUD,做任何一点点有创新性的技术的时候(不说产品),最有机会遇到的问题,其实是数学问题。虽然从Spring到Hibernate到Rails之类的框架,或者Hadoop,HBase之类的分布式计算框架,也都是技术上的重大革新,但是这些框架类的程序,完善都是阶段性的,一旦出现后,很快都会有相应的Best Practice,又会成为熟练工种的活。而真正针对问题域的解答,反是每天都可以有些新鲜的想法、思路和方案的,这些,往往有个数学的门槛。所以如果你真是挺喜欢写程序的,而且希望自己一直能写更好玩更难的程序,总有一天,你要过了这一道坎儿。

  所以我很是同意不知道是谁说的,如果你只想当个good programmer,那么数学不重要;但是如果你想当个great programmer,那么数学很重要。在你手里只有锤子的时候,你看什么东西都会是个钉子,想想你如果没有学过算法和数据结构,可能你的大部分程序需要自己写排序的话,都会是傻傻地冒泡吧,反正对于大部分程序来说,在现在这么快的PC下,这点时间差别,大部分情况下,也就是让你等程序执行测试的时候,多个倒杯水的时间。但是很多新鲜,好玩,有挑战的问题,很多数学的概念没有的话,恐怕不是多等个倒水的时间了。而如果你过了这个门槛,你又会发现,一个崭新的世界,又到了你的面前。

  回过头来,我说数学重要的话,那么重要的是哪些呢?大家常说的通常是离散数学,不过最近比较热门的机器学习这个方向,我目前看到的相关资料都大量依赖于线性代数和概率论,以及一点点微积分。所以,如果你和我一样,希望做点有追求的技术工作的话,开始花点时间学习数学吧。其实万事开头难,也许你和我一样,对着一堆公式符号,感到头晕眼花,但是如果真得按下心来,看上一个小时,这么坚持个一周,其实就会发现,这没啥难的,就当学门新的编程语言得了。

原文地址:https://www.cnblogs.com/zhoading/p/8836118.html

时间: 2024-11-16 08:52:21

作为一个程序员,数学对你到底有多重要的相关文章

每一个程序员必须掌握的知识,字符集与字符编码.

1. 基础知识 计算机中储存的信息都是用二进制数表示的:而我们在屏幕上看到的英文.汉字等字符是二进制数转换之后的结果.通俗的说,按照何种规则将字符存储在计算机中,如'a'用什么表示,称为"编码":反之,将存储在计算机中的二进制数解析显示出来,称为"解码",如同密码学中的加密和解密.在解码过程中,如果使用了错误的解码规则,则导致'a'解析成'b'或者乱码. 字符集(Charset):是一个系统支持的所有抽象字符的集合.字符是各种文字和符号的总称,包括各国家文字.标点符

从前有一个程序员,成天写代码,后来,他屎了。。。

从前有一个程序员,成天写代码,后来,他屎了 1.一门可以靠手艺混饭的专业 你好,非常荣幸能够步入改变世界的软件开发行业,接下来我们聊点正经的.回首近7-8年来的时光,发现自己可能将要走向程序员这条道路的时候最早可以追溯到2008年高考完填写志愿,那时候分数所迫,二本学校的好专业都上不了,我就想有什么专业是可以不靠学校名声而靠自己努力成就一番霸业的?思来想去选择了–计算机,作为第二志愿...显然那时候会计这个专业更火一些. 入学一年以后我有了自己第一台笔记本电脑,然而第一个装上的应用程序居然就是魔

一座熟悉而陌生的城市--一个程序员的成长史(7)

回到重庆,已经是两天以后了.代是雄的老家在农村,但他并没有急着回去,而是先到一个亲戚家住下,借此机会来重新看看重庆这张"熟悉而陌生"的面孔. 代是雄是土生土长的重庆人,但老家在农村,在上高中之前的大部分时光都是在他们那个小镇上度过的,自己的足迹也几乎仅限于以他家老房子为中心的方圆10公里以内.在他的印象中,在初中三年时间里,他到过两次县城,那是去参加所谓的初中数学竞赛.他当时只是觉得县城与小镇比起来,要漂亮很多.他印象最深的就是在县城里面吃了一碗凉粉,那个味道真的是好极了,似乎自己之前

如何区分一个程序员是保守派还是自由派?

最近,我在阅读 Steve Yegg 的文集<程序员的呐喊>. 这是一本非常有趣的书,里面甚至包含了一个小测试(原文),区分一个程序员到底是保守派还是自由派. 下面一共有十个问题,每个问题都有 A 和 B 两个选项,请选择你的答案. 问题一:Bug 还没修复,软件能不能上线? (A)软件发布前,应该编写完整测试,充分调试,尽量修复所有bug. (B)不管多努力,bug 总是无法避免的,如果性质不是很严重,可以先上线,根据反馈再调试和修补. 问题二:容易出错的特性,是否应该用在程序中? (A)很

论一个程序员的自我修养

在<喜剧之王>中,周星驰扮演的尹天仇,一直梦想成为一名演员,而他不管是在扮演跑龙套,或者在街坊中开设演员训练班,亦或成为主角时,他对待演员的态度,始终是认真,热爱而又投入的.而那一本他随身携带的书--<演员的自我修养>,尽管不知道里面具体写的是什么,但我猜,他对待演员的态度和行为,就是书中内容显示的. 于是,不禁问了问自己,作为一名程序员,一个“程序员的自我修养”是什么? 尽管我们不一定要像尹天仇那么的认真对待自己的事业,但,一些基本的修养,作为一名新时代的码农,总应该是要具备的吧

(小说)那些年,那些事——一个程序员的奋斗史

转自:http://blog.csdn.net/x283930450/article/details/9072223 第01章    段伏枥,一个瘦小,矮小,根本和“帅”这个字粘不上任何关系的普通人 .名字的来源在于其多读了几年书的老爹,总抱着有一天要出书出名乃至于名流千古的 美好理想,但可惜现实总是给予他无情的而又现实的打击,于是就将理想寄望于自己的 儿子,起了个“伏枥”的名,寓意为“老骥伏枥,志在千里”,表达自己不到黄河不死 心的良好的愿望.     只可惜段伏枥这家伙完美地遗传了来自于老爹

作为一个程序员,没有看过这几部电影你就out了!

摘要:每次看科技类的电影,都感觉很酷,一直以为那是虚幻的,实际上是现实中的一些技术在电影中被无限扩大了,而并不是不存在的.其实很多时候在不同的行业领域中,都分享着一个共同的理念和思想,就像很多编程中涉及到的思想被运用到了电影里. 艺术源于生活,高于生活.当计算机编程中的某些概念被运用到电影里之后,我们总会觉得电影很酷,很不可思议,其实是那些编程思想被艺术化了.既然说艺术源于生活并高于生活,反过来这些电影对程序员更好的理解这些编程思想也会有很好的帮助.以下小编为大家推荐几部非常值得一看的电影. 1

《五年琴——一个程序员的平淡乐章》连载(一)

不知道一个程序员的喃喃自语会引来多少人的关注.不过各位看官如果有心情看完这个像小说一样的自传连载,看完之后还保有一丝期待的话,欢迎点赞或者留言. 如果可以的话,每一个程序员都应该是文字控. --mig_davidli 前言 每个人应该都书写过自己的青春.或许是考场作文,或许是随笔,或许会在自己的心里,用着"生命是幸福的琴弦,青春弹出的是美好的乐章"这类形容. 同样,每个人理想中的青春都充满了刺激与希望.但是大多数人又会在与现实的交锋中无情的落败,归于平凡.不平凡的人的生活,在小说电影中

从一个程序员到一个销售高手的心路历程

从一个程序员到一个销售高手的心路历程 0.引言 我大学本科读的是理工科,后来毕业以后,我逐渐走上了程 序员的道路.每天面对电脑一行一行的敲代码,这被我们程序员们戏称为“搬砖头”,因为我们所做的事跟民工搬砖头砌墙本质上是相同的,我们也是把一堆代码从 一个地方搬到另一个地方,然后改改让它面子上看起来挺好看,用起来结实耐用就算完工了. 干了6年的技术以后,我放弃了已做的非常 好的技术和积累起来的成绩,转而从0开始去做销售.后来经过自己的努力,我终于成长为一个销售和业绩翻倍高手,在销售和业绩翻倍方面取得

一个程序员的自我救赎

为了找一个能清晰表达我在2017年的状态词语,我搜索了不下百个词语还是未能找到一个贴切的形容,可想我这一年的状态该有多么的糟糕.既然无法汇总,只好通过文字来聚焦我的思绪把这混乱一层一层地剥离.观察和思考. 疲惫的身躯 我细数了一下2017到底有多少可以让我"精神抖擞"的日子,算下来可能也就只有那可怕的10天左右,如果用"智能手环"来表达的话,2017我可能只有10天左右的睡眠质量勉强能达到良好.这是一个往我焦虑感火上加油的数字,我觉得这个数字恰恰应该是一个"