注:此文乃4月为工作室应学院院刊《数计苑》约稿而写,本想请工作室中各位大神献墨,不巧均忙碌无瑕他顾,故鄙人只得自使陋笔为之。思前虑后,斟酌再三,直至半夜,方得此稿,惟恐有疏漏以贻害矣。然自知学识浅薄,故久久不敢见诸此博客之中。近来忙于赛事,无瑕动笔,也罢,发此文与诸位共寻缺漏,尽早补之,也不失认真之道。有劳诸君慧眼,不吝赐教。在此谢过!

 

 

#ifndef 说明

#define 说明

首先,请不要误解,本文没有任何鼓动大家转专业的倾向;

再者,本文不是计算机简史,也不是计算机导论,更不在技术层面上作太多陈述;

最后,由于篇幅问题,以及考虑到本人的功底实在十分有限,所以这个题目显然太大了。但我确实找不出更能符合我写此文本意的题目了,故姑且用之。

成文仓促,难免有如有纰漏之处,如文中有说得不清楚的地方,或者您有不同意见,也欢迎到我的博客:http://blog.shenslu.com/帮我指正,谢谢!

#endif

 

这是一个数字时代、信息时代,而时代的主角正是计算机。PC、IT、Internet、Web这些词语大家都听得生了耳茧,人们整天说着信息高速公路、电子政务、企业信息化,这些说到底无非就是计算机普及,互联网普及。这股洪流势不可挡,“截至2009年6月30日,中国网民规模达到3.38亿人,普及率达到25.5%。网民规模较2008年底年增长4000万人,半年增长率为13.4%,中国网民规模依然保持快速增长之势。”(引自《中国互联网络发展状况统计报告(2009年7月)》)甚至早有人声称,这个时代文盲的特征不只是不识字了,还要包括不会用电脑。

而对于我们数学、统计、科计等专业的同学来说,要求可就不只是会用电脑了。在将来的日子里,我们中的大部分人将天天和计算机跟互联网打交道,甚至还要去改造计算机,为社会的信息化、新科技的发展添砖加瓦。所以我们之中是不应该有计算机盲的存在的。当然我说这句话是绝没有歧视这类同学的意思的。由于条件的限制,有不少同学在进入大学之前并未能有机会接触到计算机,或者是因为兴趣等原因没有认真去探求过计算机技术。没有关系,学校为我们提供了优越的条件,在这个计算机文化较为浓厚的校园中,我相信只要有心想学,加把劲就一定能在最短的时间里成功“扫盲”。

下面,我将从以下几个方面与大家一起来探讨如何“从数学走向计算机”:

 

① 如何走近计算机;

② 关于数学与计算机;

③ 编程语言与算法学习;

④ 软件业和互联网产业形势及就业环境.

 

如何走近计算机

对于自认为是计算机盲的同学,我有一个建议,那就是多去尝试,多去操作电脑。毕竟它是一种工具,学习工具的使用最好的方法自然就是去用它,用多了你就会熟练了。

其实,不只是计算机使用的入门,包括我们的《C/C++程序设计》、《数据结构》、《计算机原理》、《汇编语言程序设计》、《数据库原理》、《操作系统》、《计算机网络》、《软件工程》等专业课程,统统是对上面实验要求非常高的。虽然由于课时和实验环境的限制,我们在上课时并没能有多少实验机会,但如果想要学好它们,我们也要自己创造条件多去操作。可以说,在实践中提高,这是学好计算机的唯一秘诀。

刚好说到课程设置上,我有一个建议,大家不妨去图书馆找《计算机科学导论》之类的书来看一下。这门课信科院、软院的同学大一的时候都是要上的,而由于课时上的限制(或者是出于对课程重心的考虑),我们学院没有开《导论》或《概论》甚至是《计算机基础》这样的计算机科学入门课,而是直接就开了C语言、C++、计算机原理等课程。结果许多同学从一开始就不知道老师在说什么,严重影响了对计算机学习的兴趣。就算是对计算机科学有兴趣的同学,由于没有经过系统的基础知识学习,缺乏对整个计算机科学体系的整体认识,学习上没能有明确的方向和目标,效果也不是很好。实际上,在成为一个成功的程序员,一个优秀的软件开发者之前,你必须先是一个优秀的计算机用户。我一直认为,学编程应该是我们计算机学习的最后一个阶段,而在此之前至少应该有充分的计算机实际操作经验,以及一定量的计算机基础知识学习。所以计算机基础较薄弱的同学不妨先从《导论》入手,相信会有很大的收获。

 

关于数学与计算机

从进入数计院开始,大家一直就在讨论着这样一个话题:读数学以后可以干什么?从我们学院毕业生去向的统计来看,除了个别选择继续在数学上深造的同学外,最明显的就是转向金融类和计算机类了。而对于数学跟计算机科学、计算机技术的区别,可能不少同学还不太明白。在这里,我说一下我个人的理解:

在学科分类上,数学是理科,而计算机是工科。有人开玩笑说,在一个工程中,学数学的设计模型,学计算机的理论实现,学软件工程的开发成品。当然这里说的数学应该还是指应用数学或者计算数学(科计)。虽然我比较反对把所学专业和个人的知识结构画上等号,但这种说法从某种程度还是说出了几个学科之前的差别。

一直有不少人在思考这样的问题:数计院的学生在计算机方面相比信科院、软院的学生有什么优势和劣势呢?从课程设置可以看出,数计院学生花费更多的精力在基础数学、锻炼逻辑思维等方面,而信科院、软院学生更多的还是接触应用性的知识,并相对数计院有更多的实践机会和氛围。所以从理论上讲,我们的优势在于数学基础更为扎实,但不足是在计算机方面的学习不够多,实际操作、应用上的技能太少。

这一点不足从笃行工作室这两年的招新情况可以看出来,数计院低年级学生中有过项目开发经验,甚至就是小型应用程序开发经验的学生只有极少数,而高年级学生中参加项目开发实习的同学也不是很多。不少同学在抱怨说,我们从大一开始上C/C++程序设计课,但读到大学毕业写程序还只是能够写出一个黑框框(这个是指DOS控制台程序)。正是看到同学们在项目开发实践经验上的不足,因此学院才设立了笃行工作室这样一个组织来提供给大家更多的学习、提高的机会。参加工作室的开发项目,或者学校的科研项目立项、各种级别各种形式的软件设计比赛,以及校外企业提供的假期实习工作,都是大家提高项目开发经验很好的途径。

 

编程语言与算法学习

说到计算机学习,在学习完几门基础课程之后,自然而然地,不少同学就会面临着接下来学什么,如何提高的问题。许多人一开始学编程就会纠结在“到底学什么好”这样的问题:汇编语言、高级语言如:C语言、C++、(Visual C++)、Java、C#、Visual Basic、Pascal、(Delphi)、易语言(中文编程)等编译型语言和PHP、ASP、Perl、Python等解释型语言……业界常见的语言至少有几百种,而且新语言也一直在出现,让人眼花缭乱。

当然,“第一个语言”的选择问题学校帮我们解决了,统一学习C语言和C++。这样做有利有弊,在此先不作争论,但总的来说还是利大于弊的。在基本掌握了C/C++之后,再去学习别的语言应该说都不会有太大的阻力,这也是IT界相当盛行的一种说法,因为毕竟大部分语言的语法都是相通的,而且非常多常用语言(如Java,PHP等)其实都或多或少脱胎于C++。关于这个问题因为篇幅有限,不能讨论太多,只能抛出一句话:语言不重要,关键是思想,而归根结底是实用性的问题。(这里“思想”是指编程思想,而“实用性”指的是要用某语言某方法来解决的实用问题。)

学完了某种语言之后,是否意味着你就可以胜任软件开发工作呢?当然还没有,这只是开始。

一般来说,计算机相关专业学生的技术水平的考评标准大致就表现在算法设计水平与项目经验两个方面了。前面已经说了,我们是比较缺乏项目经验的。而算法呢?(不知算法为何物的同学请维基[http://www.wikipedia.org/ ]

著名计算机科学家、Pascal之父、结构化程序设计的先驱Niklaus Wirth有一本书叫《算法+数据结构=程序》。这道经典的等式已经得到几乎所有人的认可,说到算法就不得不说到数据结构。一般情况下,《数据结构》课程科计专业是大二上学期上的,而应数、统计专业是大二下学期才开(而且要求会相对低一些),在课程中会在“算法设计”问题上低空掠过,但没并有过多停留。而此后我们并没有另外开设《算法设计》课程。所以应该说我们受到的算法方面的训练还是比较不足的。另一个方面,数计院学生在校内的ACM/ICPC比赛(国际大学生程序设计大赛,简称ACM,有兴趣的同学不妨Google[https://www.google.com/]之)中的表现也不尽如人意,与信科院、软院的同学比起来,有着相当的差距(近两年比较明显)。ACM比赛实际上考察的就是算法运用、设计水平,所以从这也可以看出我们的不足。

当然,泼了这么多冷水,还是要分析下原因的。一方面,由于我们的数学课程负担比较重,所以可以花在程序设计上的精力并不多,而且由于在院内没能形成一个较好的ACM比赛氛围,所以更难以形成竞争力。这方面笃行工作室也尝试着组成了一个ACM小组,但毕竟覆盖面有限,所以我建议大家都多去ACM题库做做题(中大的网上题库为叫Sicily [http://sicily.3322.org/],比较有名的还有北京大学的POJ  [http://acm.pku.edu.cn/]等)来提高自己的算法水平。

 

软件业和互联网产业形势及就业环境

这一节的小标题用得确实比较吓人,估计这一部分的内容是大家最关心的吧,不过很遗憾的是,我并没有多少亲身经历、亲身体会可以跟大家分享。只能纸上谈兵,跟大家介绍一些权威们的说法。

正如文首所引用的数据,中国现在已经是全球最大的“网民国家”,中国的互联网在近年来得到了长足的发展,大家非常熟悉的腾讯公司已成为全球第三大互联网公司(第一名为美国Google公司)。随着整个互联网的进一步发展,云计算、移动互联网、电子商务等领域的兴趣都将带来前所未有的机遇和挑战。

而软件业方面,中国软件产业一直以来难以茁壮成长很大程度上源于中国国民的知识产权意识不足、法律保障不足,但随着国民素质的提高、知识产权法的完善,中国软件产业的前景还是比较美好的。

但是不容乐观的因素也存在,为避免因为我个人了解不全面而误导大家,在此就不一一列举了。这些还是需要大家自己多去关注最新IT资讯,了解行业形势,再根据自己的实际情况作出判断。2010313,微软中国终身荣誉总裁,现新华都集团总裁唐骏先生来中大演讲,在回答同学提问时曾这样说:“(对于当前的互联网、计算机产业)不要说环境不好,几年前,十几年前也一样有人说不好。”所以我们现在最应该做的并不是太多地去抱怨或者挑剔,只要你认准了这个目标,四年磨一剑,充分地利用这个校园里的资源,提高自己的技术水平,完善自己的知识结构,就业,就好业,都不会是问题。

最后祝愿大家在“从数学走向计算机”的道路上享受到学习的乐趣并收获累累硕果。


如非说明转载,本博文章皆为原创,转载请务必注明文章出处: 转载自慎思琐识录 作者:慎思

本文链接地址: 从数学走向计算机

关于 Shens

Shens 已经在这个博客中伪文艺了 58 篇博文.

爱哲学,爱历史,也爱诗言志;爱读书,爱生活,也爱到处跑。我是非典型挨踢男。