其他
先祝程序员们节日快乐!1980年,当我在哥伦比亚大学从法律系转到计算机系时,我完全没有预期计算机专业在21世纪会是多么的火爆。我很幸运,完全凭借兴趣作出的选择,成就了我的终身职业。后来的故事大家都很了解,我在卡内基·梅隆大学取得博士学位,从美国回到中国,从跨国科技巨头的领导者,到专注科技领域的投资人。这一切都离不开当初的选择,我选择了计算机,选择了人工智能。我有幸见证了过去四十年计算机行业的飞跃,见证了中国高科技产业的兴盛,也见证了“程序员”队伍的诞生和壮大。在这个行业,我们见过很多白手起家、一夜暴富的奇迹;也见到很多中年失业、透支生命的悲剧。那么在今天的环境下,程序员还是一个好的职业选择吗?如果要成为一个成功的程序员,想在计算机行业施展拳脚,应该怎么做?我想和你们分享我的同事、创新工场人工智能工程院执行院长王咏刚做客璞跃中国播客节目的一次采访。咏刚本人就是优秀程序员的代表,希望他的建议能够给计算机行业的人才、尤其是计算机专业的同学们带来启发。Q:您觉得现在程序员饱和吗?未来几年市场对程序员的需求还会如此强烈吗?大学生读计算机专业,未来还会是香饽饽吗?王咏刚:程序员之所以能够变成非常赚钱的行业,不是因为相比其他行业超级到什么程度,主要原因是吃到了过去30年全球信息化的红利。这30年,全球信息化的发展远远超出了30年前的人的想象能力。那时候的电脑是一个大方盒子,只能做一些简单的东西,很难想象高性能的摄影摄像,或者智能的程序可以跑在今天这么小且平价的手机上。信息化的超高速发展带来的杠杆效应,是一种撬动效应,任何行业一旦引入信息化,都可以把效率提高百倍、千倍。哪怕只是把以前的纸质的信息变成数字的,都可以用智能算法挖掘出非常多有价值的东西,这对传统行业是“降维打击”。这是过去30年世界科技产业格局的主题,所以程序员其实都是吃了这个红利。如果没有科技产业超出预期的发展,程序员这个行业也不可能有这么高的收入。因此我觉得,对程序员的需求,本质上取决于这种科技趋势能保持多久。回顾历史,和程序员相关的科技趋势,大概经历了三个阶段。最早的信息化/数字化,就是把非数字的东西全部用电脑处理。第二步是移动化/物联网化,就是把数据全部分布在像手机、电视机顶盒、冰箱的这样终端里,这一步让网络变成了移动化的网络,远远超出了以前一个电脑能做的,把整个世界连在了一起。今天我们看到,在这个基础上,各行各业在有了信息化,有了移动网络之后,第三步是把智能算法放在每一个地方,去大幅提高效率。所以智能化这件事,特别是人工智能算法在各个行业的渗透,其实才刚刚开始。那么程序员这个行业还能火多久?只要智能算法对效率的提升,还能保持前面30年这样的速度,我相信这个行业还是会一直红火下去,只是红火的方式、对程序员的素质或者经历的要求会和以前不一样。Q:您认为具备什么能力的程序员才是行业稀缺的优秀人才?王咏刚:概括地讲,计算机行业的高级人才分两类:偏科研的人才,和偏工程的人。这两类人才的成长路径、企业对他们的要求,还有他们可发挥能力的空间非常不一样。第一类科研人才相对少一些,他们必须有比较强的科研敏感度,在计算机专业,或者数学相关专业读到博士,并且博士研究中能够做出世界级的、顶尖的成果。科研型人才是这个行业里超级宝贵的人才,他们的工作方式,工作的思路,从小积累的能力,和工程型人才是有很大区别的。科研型人才本质上是要做学术突破,在最前沿的领域大胆地做创造性的尝试。相比解决问题的敏锐度,发现问题的敏锐度更重要。能不能从你所掌握的知识里,从今天大家都在做的事情里,发现哪些事情是最有可能取得突破的。很多读到博士、博士后的学生其实都不算科研人才,他们只是在这个领域继续读下去了而已,真的科研人才是要做出突破性成果的。第二类,工程型人才的数量是相对比较多的,高级人才里可能百分之八九十都是工程型人才。这些人才的培养比较有规律可循,对个人的天分、非规律性的积累、或者机遇的要求相对少一些。其实今天很多人并没有理解培养计算机人才本质的规律。小朋友在小学阶段对编程有兴趣的话是很好的苗子,励志做计算机工程师也是很好的志向。但是对这些同学来说,他们需要一个好的引导框架,尽量开拓视野,编程语言尽量多了解一些,看最好的程序员贡献出来的代码是什么样的,远比按照编程语言教科书去背语法重要。在中学阶段,数学要远远比编程语言重要,也远重要过任何软件的学习。如果立志走编程这条道,想进入计算机行业,那么就要从中小学开始打好数学基础,了解数学知识怎样帮助其他领域。所以我对喜欢编程的同学的建议是,可以去体验编程是怎样一回事,去看那些大师级的代码是什么样的,去体验那些最好的程序。但是从学的角度讲,我认为学编程不着急,最重要的还是学好数学。一个数学底子非常薄的人,最后无论给他灌多少本编程语言教科书,多少本数据结构算法教科书,他最终的编程实力都会很弱,不会进入到高级的计算机工程工作者的行列。Q:我们知道计算机行业有很多细分的领域,近几年市场变化非常快,一些程序员在自己的细分领域不景气的情况下,会面临一些职场的焦虑,对此您怎么看?您觉得程序员应该如何保持自己在职场上的竞争力?王咏刚:很多程序员有一个特别大的误区,本来做得挺好的,结果细分行业不景气了,比如编游戏程序的,突然发现页游不景气了,就好像非常无助,不知道该干嘛了。但其实高层次的程序员根本不会有这种困惑。低层次和高层次怎么区分?其实特别简单。比如游戏行业的程序员,有相当大一部分只会拿着游戏开发工具,比如说