根据多位行业大牛背书的非盈利机构 CODE.ORG 统计,现在(今天的网站信息)全美有566308个电脑相关的工作机会,但是去年只有42969 名计算机专业学生毕业,而且预测到2020年,全美将有比计算机专业毕业生多出一百万的工作机会,感觉是这个CS专业的就业机会一片大好 (最近有传言,CS/EE行业将有大约26万人在最近两年被裁员,所以,这个其实是一个见仁见智的话题)。但是 什么样的学生适合进入电脑行业工作? 是不是人人都可以学习和从事CS方面的工作呢?我想把我个人在教学时的一点体会分享给大家。
去年冬天,我在纽约州立大学当客座教授,当时是教一门初级的计算机编程课程,其中有大约三分之二的学生是计算机科学系的学生,还有三分之一来自包括数学,会计,甚至是化学,英语等专业的学生。而在我的第一堂课里,一个重要的话题就是要了解学生,为什么会来上这门课,而计算机是否适合作为他们/她们未来的职业。
下面就是我当时的统计结果,在二十六个学生中,其中有十二个明确认为电脑是他们未来的专业方向,九个没有确定,五个明确表示不会从事电脑行业的工作。而原因也是五花八门,有感觉脑子不够用的,有觉得数学不好的,还有个奇葩的怕掉头发的(谣言呀)。
而我当时给出的答案如下:
理论上,任何人都可以学习计算机科学,但要成为一个合格的(还不一定是优秀的)计算机专业人员,有几点重要的要求。
1. problem solving 较好的发现问题和解决问题的能力
4. self study 强大的自学能力,才能保证在未来的职业生涯中不断的学习新的知识
5. detail oriented 讲究细节,不论是编程还是系统,还是测试,细节都能决定成败
除此之外,还有一些其他的因素,比如数学能力,团队合作能力,领导能力等等,所有的这些能力综合起来,就可以简单的判断出什么样的学生适合学习计算机科学了。
计算机行业经常会经历一些大的波动,如九十年代末到2000年,因为Internet bubble和千年虫,整个行业飞速发展,公司找人困难(当然是指合格的人才),但从2001年到2004年,互联网泡沫破灭,加上外包盛行,公司开始大量裁员,直到2005年才见到转机,最近几年新的行业泡沫又起,产生大量的工作机会,但在可以预见的将来几年,由于CLOUD 和 machine learning 又会大量的取代一些人工工作,电脑行业的江湖,可谓是墙头变换大王旗,三十年河东,三十年河西,变的是不同的细分的领域,不变的对于快速学习能力的要求。
我个人认为,如果基础较扎实,学习能力强,沟通能力好,电脑行业在可以预见的将来都将是明媚的春天,机会无穷。
作为从业25年的资深IT人士,可以补充一点,注重细节而不厌烦、善于沟通确实很重要,但这两点可以在实践中学习和提高。
另外,要想知道梨子的滋味,最好的办法是亲自尝一尝。如果有志于此,孩子高中的时候就可以参加兴趣班或者自学,试一试Python或者C语言,入门很容易,试着解决一些实际问题,窥一斑而知全豹,知道编程工作大概是怎样的,以免将来进大学之后才发现编程不适合自己。我是这么教儿子的,如今他也在大学学计算机科学。