在浏览我的blog的,除了专业的程序员,也有部分是在校大学生,还有两位同学通过QQ问我怎么
学习编程技术,我为这些同学的好学而感动;又因为自己曾经做过两年计算机大专老师,可能天生
喜欢教育人,兴趣一来就开始写这篇blog,其实自己认识也不够。
现在的大学生面临的环境,用英国著名的小说家狄更斯的名言来形容:
“这是最好的时代,这是最坏的时代。”
好时代在于,现在大学里资讯特别发达,电脑、网络、书籍,他们很容易得到,现在网络上的
教程、blog、技术新闻等等多得是,各种开发工具、开发平台都可以免费获得,这不是最好的时代吗?!
想想我们九十年代读书时,操作系统是win95/win98,学习的语言就是Fortron(都不知道怎么拼写了)
和c语言,反正我从来没有上机实习,去机房就是玩电脑版的超级玛丽,四年下来什么都不会。
坏时代在于,东西太多了,都不知道学什么,很多快餐等着他们,很容易就去学习那种21天能精通的
东西。大学老师要么厉害的自己去开公司赚外快,要么根本不懂软件开发在那里误人子弟。而现在
的网络游戏却一款款引诱着他们,把身体都搞跨了。所以他们现在比我们那时更迷惘。
那么在校大学生到底怎么学习才好?其实没有标准答案,我只能自己从我现在的观点来谈我的看法。
总的看法还是要学好基础课程,虽然是老生常谈,但真正理解的人不多。
具体到课程,数据结构和算法,操作系统,汇编语言,计算机组成原理,编译原理,数据库系统原理。
这些基础知识,我现在还时不时地学习,就是因为当年没有学,或者没有学习好。这些基础的东西学得好
不好,就意味着一个普通技术人员在技术上能走多远,当然有开创性的天才另当别论。
很多人问到我应该学c还是c++, 还是java,
或者是c#等等,这个问题我用去年底美国一位教授的
文章里的观点回答,他说现在美国大学基本上全是开java课,而把c语言放弃了,这样是害得学生学不到
真正的编程技术,将降低美国在基础研究上的能力。很多人不以为然,可能说他是老糊涂了,其实我认为
这是老教授的高明啊,美国是操作系统的发源地,是各种技术标准的制造者,是各种平台的制造者,它在
计算机领域能领导全球,就是在基础研究啊。
数学这个老学科,依然是那么重要,还是拿例子来说明吧。北京时间3月12日消息,据国外媒体报道,
微软主席比尔·盖茨(Bill
Gates)将怀揣多年来的梦想重返美国国会——为高熟练的技术工人签发更多签证;
在学校中开展更多的数学、科学和工程教育;以及加大科技投资等。注意到没有,比尔·盖茨把数学单独
提出来,数学有多重要就不用说了。其实学数学最终目的就是锻炼自己的抽象思维能力,很多非数学专业
出生的人,也没有专门学数学,但他的设计和开发非常好,你可以发现他的抽象思维能力天生就很强,碰
到一些数学估算,时间/空间复杂度的分析,他很快就估算出来了。
有同学问到学什么开发工具或平台好,工具和平台不是很重要。学c/c++的话,你在vc上或者gcc上都
可以。学java的话,你用esclipse或jbulider,或者其它开发工具,反正稍微流行一个就可以编译你的代码
了。数据库也一样,反正是学习好sql语句,因为你们不可能现在就学习到oracle优化这么高级的东西。
注重学习基础知识,养成看书的好习惯。在现在的部门里,很多年轻人都是不看书的,满足于项目
开发得来的那点有限的知识,有了点钱就知道搞股票,最后也没见他赚钱,一两年下来,技术还是没有长足
的进展,做管理就那么一个位子,还远远轮不到他们呢。
还有,很多大学生可能希望有项目经验,这是没必要的。大学四年,本来时间相对就不长,这些理论的
东西都没有时间学好,你还要求有一个很好的项目经验,而把最重要的东西放到那里没有接触,这不是得了
芝麻丢了西瓜吗。
一些大四的学生,可能出去面试过,碰到一些小公司,或者是做外包的公司,特别是对日本外包的,
这些公司就想要你一下子会他们所用的开发工具,至于你的基础扎实不扎实,他根本不希望,因为他们就是
准备把你搞成白痴,能看着别人设计好的文档和例子,把代码写出来就是了,这个就是高中毕业生就能做的,你读大学四年干什么,不如高中毕业就去算了。
总之,在大学时代,基础、基础、还是基础,走上社会了就在实际开发中用好曾经学习过的东西。