Kaiyun(中国)开云·官方网站

开云体育 Kaiyun.com 官网入口计算机行业还能火几年? | 开云(Kaiyun.com)
× 快速导航
新闻资讯
分类
开云体育 Kaiyun.com 官网入口计算机行业还能火几年?
发布日期:2023-09-30 22:56:36

  开云 开云体育官网开云 开云体育官网开云 开云体育官网前几天写的一篇东西《老码农的技术理想》,其中有这方面的思考,贴出来看看:

  小时候,老师问我,你的理想是什么?我不假思索说是工程师,于是长大之后果然成了工程师。

  工作这么多年,一直在思考工程师这三个字的意义,终于有一天恍然大悟,原来就是:用技术手段改进世界。

  那么,在软件方面,目前的世界有哪些问题需要解决呢?有这么一些问题可以思考:

  虽然现在我们的生活与十年前相比,已经发生了巨大变化,比如智能手持设备已经非常普及,可穿戴设备也在蓬勃发展。十年前我们用手机收发短信或者邮件,浏览非常简单而老土的wap页面,但现在,绝大部分人的手机已经取代了电脑,成为日常生活中不可缺少的工具。

  我们用手机交流,购物,欣赏影视,阅读书籍,玩各类游戏,尤其是飞速发展的移动购物和支付体系,使得我们能在任意场合购买心仪的物品,订购旅游服务和宾馆,叫快餐,打车等等,生活非常美好,那么,整个世界的信息化程度处于什么级别呢?

  我觉得,才刚刚相当于小学二年级,整个世界的信息化程度仍然严重偏低。从现在算起,往前10年,往后10年,这20年时间中,面向个人的信息化服务处于高速发展期,这个领域非常吸引眼球,因为它与每个人的生活息息相关。可是,另外有一些领域,却非常需要发展,那就是传统行业的信息化。

  之前有不少传统行业,进行了一定程度的信息化,但这个信息化仅仅能满足自身运作的基本要求,当它与整个社会的潮流相对接的时候,就显得非常落后,迟缓。比如说在网购这个大体系中,普通用户所能看到的是商品展示,比价,下单的过程,但背后的核心环节却是配货与物流。

  我还在上学的时候,有老师这么说过,现在计算机行业非常火热,很可能要饱和了,你们不一定非要从事这方面的工作。现在回头看这句话,觉得很有趣,人真的很难有眼光看到未来。去年我入职苏宁培训的时候,孙为民副总讲了当年一个决策失误的例子。90年代末,公司统计发现全国空调的年销售量达到数百万台,觉得很可怕,这个行业可能要饱和,估计要再想办法拓展别的商品经营了,但现在,全国空调的保有量为七亿台,即使完全没有新增,十年换一轮,每年也卖得出去七千万台,当年凭什么说这就饱和了?

  所以我现在看程序员的状况,仍然是供不应求,尤其是高端程序员,十分抢手。这个问题的背景就是全社会的信息化进程在加速,之前的程序员人数远远跟不上需求量。

  那么,如何解决这个问题呢?一方面是继续培训,促使更多新人来到这个行业,并且认真做下去,另外还有一些别的手段需要考虑。

  我想追问一个问题:世界上懂业务的人多,还是懂技术的人多?很明显,懂业务的人要多很多,什么叫业务?其实就是行业常识,生活经验。

  比如说,一个有经验的仓库保管员,可能文化程度不高,理解不了软件的运行原理之类,但一定对产品出库入库的流程非常熟悉,包括各种审批过程和异常状况,但这些,程序员是不懂的。那如果要促进这个领域的信息化,必然要在两者之间寻找一个结合点,程序员可以学业务,业务人员也可以尝试参与软件研发过程,目前来说,都是前者比较多,因为程序员相对来说还是比较年轻,学东西快些。但从整体社会效益来说,这其实是不利的,因为程序员是更稀缺资源,而传统业务人员非常多。

  之前见过一个问题:如何让业务人员更好地参与软件研发过程。这个问题的根本解决方法是DSL(Domain Specific Language),核心解决方案是二次开发平台。

  什么是DSL和二次开发平台呢,这两个词听上去很高端,但其实大家有很常用的东西就属于这个范畴,比如Excel,它提供了各种各样的公式,开云APP 开云官网入口还有VBA,使用这些东西的人绝大部分不是软件行业的,Excel就是一种很成功的二次开发平台,公式和VBA就可以算DSL了。

  很多时候这些东西还不够直观,我们可以看到一些图形化的编程语言,比如Scratch,现在很多小学生的兴趣班就会学,这些东西相对学起来就比较容易了,我们也可以做一些类似的抽象,以图形化的方式让业务人员能够参与,比如流程配置等等。图形化的东西,是最适合非技术人员理解的。

  所以,要促进社会的信息化程度,最好是能够想办法把各行业的业务人员都拖进来一起搞。具体的分工大致是:技术人员和业务人员一起定义DSL,技术人员负责DSL的底层平台实现,业务人员负责使用它来构建业务模型和业务流程,甚至业务界面。

  那么,软件行业的生产力是偏高还是偏低呢?我认为严重偏低。什么叫严重偏低?如果以机械力量的变革来对比,软件行业目前的生产力水平处于蒸汽机发明之前。也就是说,生产力远远没有被解放,大家做的大部分东西将来是会被机械化的,不再需要这么多人来做这么重复的劳动。可能很多人会对这段话不满,怎么就重复劳动了,你说说我做的什么是可以被机器替代的?

  换个角度看,为什么几乎所有外行都觉得软件贵呢?因为人力成本太高了,他们觉得,做出这么多东西,应该是不需要这么多时间。为什么双方的反差这么大呢?

  我觉得其中的关键点在于绝大部分工作的抽象程度严重不足,另外有很大一部分效率损失在编程平台或编程语言的不完善,比如Web前端。

  从第一代到第四代编程语言,每一代都是损失一定运行效率,而大幅提升编写效率。随着硬件技术的发展,软件编程必然越来越粗放,大的趋势是不特别重视细节效率,只要没有数量级的性能损耗。

  所以我们可以预期,会有越来越多的人使用一些运行效率相对不怎么高的语言或框架,只是为了提高单位时间的生产力。从老板们角度想,也会明白,提升运行机器的性能,要比多雇几个程序员便宜多了。因此,从整体趋势看,追求细节性能的程序员们恐怕会离自己的理想越来越远了,除非是在某些特定领域。

  那么,绝大部分软件系统都可靠吗?我换一句话来问:各位程序员朋友,如果你们住的房子质量跟你们正在做的软件一样,你敢住吗?感觉大家都在笑,笑是什么意思,我们都懂的。

  那为什么软件系统的质量不容易高呢?我觉得主要原因是流程不完善。那为什么不完善?需求容易变。为什么容易变?是因为不论程序员自己,还是需求方,其实潜意识都认为自己做的东西是变更成本较低的。

  试想一下,为什么没人在盖高楼盖一半变更需求?为什么没人修大桥修一半变更需求?甚至做衣服做一半的时候变更需求,理发到一半变更需求,都会被人认为是不讲理。但是在软件领域,好像这倒成了普遍现象。

  因为整个软件系统的实现,都是虚拟的,看不见摸不着,并不消耗什么物料,所以从这个角度想,变起来当然是容易的。但软件系统的架构,其实也跟实体的没本质区别,变更时候要考虑很多关联因素,并不是就那么孤立的看一小块地方,当然,也会有一些不影响全局的变更。打个比方说,如果你在盖房子盖到一半,那变更外墙颜色肯定是要比变更窗户大小容易的。要是想变得太多,估计只好拆了重来。

  我见过不少公司是通过加强测试的方式来试图控制质量,但个人觉得这种方式不划算,而且收效不高。要想很好地应对需求变更,很重要的一点就是不要有这个软件一定不会改的想法,然后,从架构上做拆分,隔离,组件化等等,力争做到即使要改,也只改某一块的内部,不影响别的地方。

  很多软件公司,一方面不注重架构的设计与宣贯,导致变更的时候问题多多,程序员也不能很好领会架构意图,一方面忽视整个过程中对架构的管控,认为架构只是最初那张静态图。

  任何一种架构方案,都需要一个良好的管控机制。没有哪个盖大楼的只认真管设计图纸,不控制施工过程。架构其实是跟施工过程严格相关的,架构并不是一张扁平的图,而是一个立体的东西,作为整个系统工程的骨架。如果能在开发的时候看到这个骨架逐渐建立,血肉充盈的过程,对整个系统的成功把握一定会大得多,这也就是开发过程中架构管控的理念,具体实现要依赖于不同场景。

  有时候看现在的小孩子,会觉得他们很幸福,因为等他们这代长大,就不需要像我们现在这样编写程序了,那时候,编程已经成了一种令人习以为常的通用技能,就像现在的人用Office软件一样,所谓的编程,开云APP 开云官网入口很可能已经不需要敲代码了,而是图形化,设置几个参数就完事了。

  与其讨论计算机行业能够火几年,不如将问题聚焦在:未来世界的行业格局将会是如何?以下这篇来自著名程序员霍炬的雄文,让这个问题的答案不言自明。

  为什么你招聘不到程序员,以及软件如何定义现实世界原创2015-12-22霍炬歪理邪说

  现在已经是2015年的最后几天了。这一年里面,互联网创业从火热到“寒冷“,但有一件事全年都没有变化,就是大家都觉得招聘不到程序员。我没有确切的数字知道2015年这一年程序员的薪资增长的比例,但是我确切的知道,在2015年,一个有3~4年工作经验的年轻程序员,在北京和上海能拿到的薪水已经接近2010年盛大创新院给我的薪水了。要知道,2010年盛大为了创建创新院,给出的是业界顶级的薪水,而且那时候我已经有8年的工作经验了。这不过是5年前的事,今天,3年工作经验的程序员薪水已经到了这个水平。在中国,大概唯一增长率可以比的上北上广房产的,就是程序员的薪水了。

  很多人人根本拒绝相信这件事,不仅仅这个行业之外的人,甚至连这个行业之内的人也觉得非常不可思议。但所有人不得不面对的一个事实是:当你需要程序员的时候,会发现根本招聘不到程序员。那个“所有都准备好了,只差一个程序员就可以开工了” 完全不是笑话,我知道无数个项目,都是真的就差一个程序员了。

  还有很多人的看法是,过几年程序员就好招聘了,开云APP 开云官网入口现在只是泡沫时期罢了。甚至还有人认为,过几年我们就不需要程序员了,因为有更多的工具可以帮助生成软件。不好意思,这两种想法都不是2015年才有的,从1995年,甚至1985年,这两种看法就存在了。30年来,泡沫起了一轮又一轮,破了一轮又一轮,自动化工具也确实出了一个又一个,更多的平台也被建立起来,确实某种程度人,一些人可以“不需要写程序”,也能*开始*进行互联网创业。但是,几十年来程序员的需求始终是上升的,符合需求,能写出可用代码的程序员从来没好招聘过,这个职业一直处于一种古怪到近乎疯狂的供不应求阶段。回头来看,就算是2008年危机的大崩溃时刻,全世界范围内,程序员好招聘也只持续了半年。美国H1b签证只有2008年没用满,之后每一年都要抽签才能获得,无数中国和印度的程序员急盼签证。

  “不需要写程序就可以进行互联网创业”,这个倒是某种意义上是实现了。不过并不是有自动生成软件的工具,而是各种应用平台发展起来了。比如,一个专心内容创业的人,用微信公众帐号就可以开始,一行程序都不用写。但是不要忘记,这些平台背后,仍然是无数程序员的工作成果。就算是用微信公众平台开始了创业,如果规模发展的大一点,终究还是要写一些程序的,要么是自己的App/社区,要么是HTML5做的各种活动,或者是用微信SDK接口做的各种自动化功能。总之,早晚你还是要写点程序的。如果换个角度看,像微信公众平台这类应用,只不过是把过去没有写程序能力的人拉了上来可以有个开始,等其中的强者被筛选出来之后,他们又回到要雇程序员的境地。这么一看,这些平台不仅没有减少程序员的职位,反而扩大了需求。如果没有公众平台,可能很多创业者压根到不了需要程序员支持这一天,也赚不到钱去养活一个程序员,现在,他们中的成功者终于可以活到这一天,加入竞聘程序员的行列了…

  这个世界对程序员的需求几十年没降低,按照我的观点,甚至未来几十年也不会降低,薪酬也只会持续上升。各种社交平台上,也会见到各种恶毒嘲笑讽刺程序员的人和段子(基本来自传统行业,他们大概觉得自己一辈子也不需要好好的和程序员打交道吧),这些人显然是不相信我这个看法的。无论相信不相信,眼前的情况就是这样的。为什么程序员会这么难招聘,背后的原因是什么?要回答这个问题,我一般会推荐对方看一篇文章,叫做《软件正在吞噬整个世界》,这是2011年美国著名风投Andreessen Horowitz创始人Marc Andreessen写的文章。今天看来,这篇文章的意义显然被低估了,Andreessen写过很多文章,但这无疑是最重要的一篇,也是对未来的指向最清晰的一篇。但别说2011年,就算是今天,也很少有人真正理解它的重要性。这篇文章并不长,看完我这篇,推荐找来再读一遍,相信你会有新感受。

  我一直非常推崇这篇文章的看法和远见,但是,我觉得他用的“吞噬”(Eating)这个词并不好,它没有能精确体现真实情况,我更愿意使用的词是“定义”(defining)。“软件定义现实世界”,这算是我发明的一个新词。我这篇文章要写的,就是关于软件是何如定义现实世界的。

  今年3月份的时候,我在杭州和一个朋友聊天,我们叫她夕总,是做传统行业的。她很惊讶程序员为什么这么难招聘。我给她大致描述了越来越多的行业开始使用软件来替代传统人力劳动的状况。她恍然大悟的说:“啊,我知道了,我家小区过去是个老大爷负责收停车费,现在变成了完全自动刷卡进入。所以,很多个老大爷被软件替代了,软件又需要程序员来开发和维护?” 这个例子找的非常准确,从一个具体的案例来看,就是这样的。她敏锐的抓住了现实世界最基层的情况。我也继续用这个例子做为背景说下去。

  当我们用一套停车场管理系统,替代了停车场管理员(那个老大爷)之后,整件事情改变了什么?它并不仅仅是节约了一个老大爷的人力成本这么简单,仅仅节约人力成本的价值并不大,因为基层体力劳动的人力成本是相当有限的,节约20个老大爷的工资,也未必能比得上一个程序员的工资支出。

  比节约一个人的人力成本更重要的是,我们用软件来规范了停车场的行为,即所谓“定义”。在使用软件之前,停车场管理员是有很大权利的,很多人都知道,给停车场管理员塞一包烟,他可能就会少收你20块钱停车费。甚至很多停车场管理员会直接把停车费塞到自己口袋里面,如果你没要停车发票的话。停车场的运营是没办法监督这种行为,要监督,就需要付出巨大的人力,甚至冒很大风险。有了软件系统之后,一切都不一样了。不再需要去监督这种往自己口袋里面塞钱的行为了,只要软件没有能被他们找到的漏洞,一切都变成了非常规范的行为。开车来的车主进入停车场的时候取卡,系统拍下车牌照,出停车场的时候自动计时收费,付钱之后停车场出口才打开,车才能离开。这个过程可以完全没有人力参与,就算是保留那个停车场老大爷的职位来做应急工作,他的行为也是严格被软件规范的。不交钱,停车场出口不打开,车就没法离开停车场,这是一条被明确定义了的基本规则,除非暴力去破坏停车场设施,否则,一切都是被软件管理的,人改变不了什么。从此,整个过程中不会再有钱的损耗,停车场运营方会获得更多收益。这些收益中的一部分,就变成了软件公司的利润,软件公司利润的一部分,变成了程序员工资。

  这就是软件企业为何有巨大盈利,程序员工资为什么这么高的原因。仅从这个例子看,软件没有创造新的价值,但是在若干传统行业中,软件夺回了一部分人本来不应该拿到的钱,把这些钱重新变成了利润,程序员分享了这部分利润。在这个停车场的例子中,按道理说,停车场管理员的收入只应该是一份工资,不包括偷偷塞到口袋里面的停车费,但是如果没有软件,这种行为是没法阻止的,一定会有很大一笔钱流到不应该获得它们的人手里。另外一方面看,在车主这边,他们的行为也被定义了。过去很多人是愿意接受10块钱买一包烟,省20块钱停车费这种设定的。但在软件管理之下,这种利益交换没机会发生了。在这个停车场的案例中,参与业务的两方行为都被软件重新规范和定义了。

  整个过程可以这样看:在软件企业的帮助下,现实世界的资金流向被重新分配了。这就是“软件定义现实世界”。软件重新定义了社会规则,定义了人的行为。当然,目前软件还只是体现了业务人员的意愿,在这个阶段,更确切的说法是:软件帮助人们重新定义社会规则。

  这只是个开始。我们站的高一点看这个已经被软件接管了的停车场。你会发现,关于它的细节都被隐藏了,你只知道它存在着接口(Interface)。所谓接口,就是对资源的一种抽象,我们知道它提供什么,比如在这里例子中,可能是停车场有多少空车位,已经停有多少车,每天有多少收益,停车场的位置在哪…等等,具体的细节,被装进了一个黑箱子里面,我们不再关心它。比如,一个软件管理的停车场还有没有看车老大爷,这就算细节,在这种视角下,我们不再关心这个人是否存在,也不关心他在做什么,因为已经用软件定义好了他的行为,这时候我们只关心提供结果的接口即可。

  在软件世界中,知道了接口,就可以使用这一份资源。从此,我们把这个停车场可以看作软件世界里存在的一个单元(Unit),刚才说了,它的现实状况已经被装进黑箱子屏蔽掉了。如果你只有一个这样的单元,它只能用来规范基本行为,但如果你在相邻街道再有一个这样的“停车场单元”,这时候就能开始有一些新的变化了。比如,停车场单元A已经几乎停满了,但停车场单元B还空着一半车位,这时候就可以通过软件来调整资源,让车主尽量往停车场B停。具体手段有很多,比如通过智能手机发送一条消息,告诉正在开来的车主,停车场A要排队10分钟,停车场B排队1分钟就可进入。自然可以分流一部分人到停车场B。甚至是把停车场B的停车价格降价10%,吸引更多人前往。这些实时的,根据资源剩余情况的动态配置,利用传统手段是不可能做到的。一方面是传统手段没法快速反馈信息,另外一方面,传统方式的审批决策流程过长,要降价总要有个负责人批准一下吧?从而让实时的动态调整变得不可能。但在一个被软件定义的世界里面,是可以做到的。在这种模式下,如果我们再屏蔽掉具体的引导办法(降价,排队时常通知之类),甚至可以把A和B两个停车单元合并成一个看,即,在软件层面上,我们有了一个更大的停车场单元。

  再继续下去,如果有更多的资源具有了接口,他们之间还可以发生什么交互?比如,两个停车场旁边有两个规模和品质相似的餐馆A和餐馆B,它们也具有了接口,软件世界里面,我们抽象出餐馆单元A和B,知道它们的座位有多少空余,知道今天厨房有什么材料,知道价格…那么,停车单元A报告自己已经满了的时候,这时候餐馆B是不是愿意暂时降价10%来吸引更多客源?如果餐馆B通过降价,成功把自己空余的资源卖掉了,他是否愿意分享一部分利润给停车场,以及分享一部分利润给帮助进行资源配置的软件运营方?

  这些都是会在未来发生的事情。越来越多的现实世界资源通过一个接口,接入软件世界,成为一个抽象的单元,它们会直接发生相互的作用,这就是我们多年所说的“智能化”。所有的这一切,最终都需要软件实现。把一个现实资源抽象成接口这件事,在软件行业称之为“虚拟化”,一个60年代软件行业就使用的概念。通常这个词被用于云计算行业,云计算产业在真正的物理计算机上虚拟出了计算机、路由器、内存…把这些资源弹性分配给需要的用户使用。但实际上,现实世界的一切都是可以通过这种方式被虚拟化的。这就是未来被软件定义的现实世界。对于这样的世界,如果找一个更容易理解的例子,最适合的是游戏。未来的一切都像即时战略游戏所表现的那样,如果你玩过星际争霸,大概会记得拿鼠标点一下,派出一个SCV去采矿,用鼠标点一下工厂,坦克就开始被生产出来。在这个过程中,操作者只需要知道点鼠标下达指令,之后收获指令的结果。点一下鼠标,几分钟之后得到一辆坦克,至于工厂里面具体如何生产一辆坦克,SCV如何获得矿石,这些细节被屏蔽掉,不用在关心。将来现实世界,传统行业的一切都会变成这样,甚至连下达指令的(玩游戏)的这个操作者早晚也会被软件替代。

  我并不是在写科幻,在今天,很多行业已经实现了类似的效果。比如航空业,这个行业里面很多部分已经是高度虚拟化的了,他们已经可以用一个指挥系统调动各种地勤和支持资源去完成航空行业运转的各种流程。当然,他们也需要好多程序员来开发和维护这个系统…

  说到这里,推荐一部非常符合这个主题的动画片,叫做《夏日大作战》,这部2009年的动画用图形化和更易懂的方式描述了这种未来的场景,非常好看。这是2010年,当时还在九城工作的布布推荐我的,我们都非常喜欢它,也一致认为这就是未来。(布布这个人也在笑来关于比特币的文章里面出现过,他跟笑来说不要挖矿,要花钱去买比特币…是一个非常传奇的家伙)

  我们再站高一点,看之前描述的场景。现在我们有了若干的资源单元,他们分布在不同的行业,这些单元已经被软件定义好了,我们看作是黑箱。在软件之下,又定义了无数具体工作人员的行为。刚才的例子里面,除了停车场管理员,还有厨师,服务员…沿着这个思路继续想,还会有给餐馆进货,供应原材料的供应商,维修停车场设施的公司…所有这些,会会被虚拟化成软件世界中的一个单元。然后是各种被提供服务的人(所谓用户),他们有接收信息的方式,大到计算机,小到智能手机,或者各种嵌入式系统,比如特斯拉电动车驾驶舱里面的那块大屏幕…一个使用手机的用户,或者一辆特斯拉,同样都可以被抽象成一个带有接口的资源单元。所有资源单元的行为,都是被软件定义的,他们之间的交互方式和可能产生的结果,同样是被软件定义和调配的。这其中的每一层,每一部分,都需要大量程序员的工作。越来越多的现实资源被虚拟化,也就产生了更多的交互和更多的可能性,这些一样需要程序员去实现。今天,人类社会被虚拟化成软件的资源还只有极少的部分,我没有具体统计的数字,但大家只要想想自己每天的现实生活所需所用,至少能有个大概的感知,恐怕被虚拟化的资源连1%都不到。未来的空间有多大?几乎是无限量的大。

  现实世界能被虚拟化到什么程度呢,我之前几次推荐过科幻《雪崩》里面描述了未来的世界只剩下三种职业:娱乐业、程序员和Pizza快递员。这本写于90年代初的,早年看起来非常震撼,今天看起来…觉得他还不够极端。因为现在我们已经确知了,Pizza快递员的工作会被无人机改变,娱乐业会被VR/AR改变。最后干脆现实世界只剩下了程序员这一种职业…软件并没有吞噬掉现实世界,而是重新定义了现实世界的所有资源。

  所以,今天一切关于软件/互联网泡沫的看法都是过时的。现实世界的虚拟化已经快到了相当的程度,我们真的需要大量的程序员,未来仍然需要,有多少都不够用。因为程序员职业缺口太大了,早就不是有钱就能招聘到的了,甚至一个程序员因为公司要打卡,就会选择另外一家企业,因为他们可选择的余地实在太大了。很多企业远远没意识到问题的严重性,而聪明的企业,已经在忙着做“企业技术文化”工作了。如果你不是BAT,又不是一个很酷的新公司,程序员们根本对你没有兴趣,到这个境地,花别人一倍的钱也未必能雇到人,所以就需要做技术文化工作,去宣传我们也是很酷的,我们也是能改变世界的…从而不至于在这种竞争中落后。

  最近一段时间,我周围很多其他行业的朋友都跑来问我,是不是他们应该学写一点程序。我通常都回答,只要你有兴趣,学的下去,那就当然应该。就算不能成为职业程序员,在这个软件定义一切的行业里面,理解程序如何产生,理解程序员如何工作,那就一定会有一份更好的职业机会等着你。为什么不学呢?

  以上这些,就是难以雇到程序员这种状况产生的基本面,因为这个职业缺口确实太大了,未来这种职业缺口不仅不会减少,毫无疑问还会继续扩大下去,甚至可以夸张一点的说,人类世界现代化的速度,很大程度被程序员数量不够制约…这个话题会是一个系列,下面还有好几篇,关于程序员、关于创业、关于工程…敬请关注。

  顺便再推荐阅读我年初写的文章 “人类的未来注定灰暗”,链接我放在文末 ,这篇文章同样是说这个话题,只是更科幻一点。

  如果你读完这篇文章对程序员这个职业发生了兴趣,无论是想学一点,还是想理解他们多一点,推荐订阅漫画公众号《神秘的程序员们》。这部漫画是我和西乔多年经验的总结,等你以此为乐,能理解每一期漫画里面包含的几层梗和彩蛋的时候,对这个行业的理解就已经非常深了。不可错过,扫码关注。

  对了,这应该是我今年年底最后一篇文章了。所以在此提前祝各位朋友,各位读者圣诞快乐,新年快乐。感谢大家2015年的关注,就算我更新这么少也没退订…真是太感动了。谢谢大家。

  本文来自霍炬的微信公共帐号“歪理邪说”,用微信添加 wxieshuo 公众号,即可订阅。转载必须保留作者、公共帐号信息,必须与本文严格一致,不得修改/替换/增减本文包含的任何文字和图片,不得擅自增加小标题、引语、摘要等。除特别声明和单独授权,本公众号一切内容禁止包括但不限于转载、摘编的任何应用和衍生。

  以电为例是最极好的。电力化是人类技术水平的巨大进步。你想到的,想不到的,几乎各行各业的效率都被电气化带来了巨大的提高。当电力变成一种基础设施后,这个世界越发离不开电,但是,电力行业却不再是当年那个最火热的行业,也不再能给这个行业的雇员数倍于平均值的高薪水。是的,微软、谷歌真的用了很多电,但我们不会再觉得微软、谷歌是电力行业的巨头。题主指的计算机行业的热潮其实也渐渐以计算机为起点迁移开来了。热潮最初是肖克利半导体实验室,然后是仙童半导体,因特尔,然后惠普,IBM,然后微软,然后谷歌,然后脸谱。“计算机行业”最酷的公司从物理学家变成了哈佛的辍学生,从关注领域晶体管、半导体变成了社交网络。从微软开始,这条产业线上的王者就不算名副其实的“计算机行业”了。

  一个行业火不火的关键是什么?是重要性吗?从来不是。三十年前的中国,在油粮站有个饭碗是让人艳羡的工作。三百年前的中国,贩盐是无本万利的关系国家“核心利益”的行业。但现在都不是了。尽管盐、油和粮依然有无可替代的重要性,但都不再是什么珍贵的资源了。它们的作用变成一种廉价普及的基础服务。它们不再是被少部分人因为垄断资源或技术壁垒控制的珍稀资源了。

  最开始,电力作为一种新兴技术是被少部分人掌握的技术资源。这些人开的公司都叫电气公司。后来电本身不再重要,重要的变成了以电为基础的衍生技术。电气公司变成了,发电站(真正的电力公司)、照明公司、电话电报公司等等。

  “计算机行业”也一样。依赖计算机、软件、互联网的行业会越来越多,我们能想到的每一样物品都可以通电,我们能想到的每一样物品也能连接计算和网络。

  但是它们会在计算和网络构成基础设施后演化成新的行业。以计算和网络为基础的衍生技术的新行业。

  技术产业的兴亡衰替是亘古不变的规律。妄图坐在浪头就不下的人都在做春秋大梦。

  三是,这个行业虽然不会一直火下去,但计算机科学会在相当长(超过我们有生之年的长度里)都是一个极好的专业。

  人类历史上其实有很多学科都名噪一时,但是能像数学、物理学一样保持长久的生命力、能吸引一代又一代最杰出的头脑的学科实在凤毛麟角。尽管历史还很短,但我相信计算机科学会加入数学物理的俱乐部,吸引一代又一代杰出的年轻人。

  数学家和物理学家大约自牛顿时代开始起分道扬镳。近代科学体系逐渐建立,物理学成为基础科学的内核和新技术的理论基础。在这个时间点上,有非常多的物理背景学生在进入化学、生物领域后有出色贡献;反之则不然,化学、生物背景的学生进入物理领域很困难。从历史来看,物理学的边界在不断拓展,在吞噬化学、生物学的知识边界。在技术更新的时候,也是物理学家在研究热功当量、内燃机原理(后来交给了新学科Mechanical Engineering的人),物理学家在研究晶体管(后来交给了新学科Electrical Engineering的人),物理学作为基础科学的核心学科也一直站在技术创新的最前沿。

  我观测到计算机科学已经开始发挥着类似的作用了。计算机科学背景的学生可以进入很多领域,在无论是化学、生物、医药等基层科学还是软件、机械、航空航天等工程科学都有特别的竞争力。计算机科学的知识体系都是有价值可移植的。我见过很多计算机科学背景的科学家在进入其他领域也有突出的表现。我简单罗列一下,计算神经学、计算生物学、化学模拟、材料模拟、药物模拟等等等等。甚至在物理领域,计算机科学背景的科学家也显示出特别的竞争力。(当然,从物理进入计算机科学的人也不遑多让,比如姚期智,物理学本科博士,再进入计算机科学领域拿到博士学位,最后获得图灵奖。)如果有一天,一位计算机科学背景出身的科学家获得诺贝尔物理学奖,我不会觉得很奇怪。而且,计算机科学也会像物理学一样,站在技术的最前沿,贡献基础理论(比如计算方法、机器学习),也贡献技术发明(比如计算机视觉、自然语言处理。自动驾驶)。我相信在计算机视觉、人机交互等领域成熟之后,部分比较独立的领域也会脱出计算机科学冠以某种Engineering的名字,比如Intelligence Engineering. 就像曾经脱出物理的那些Engineering.

  物理学/计算机科学与数学的关系也很类似,它们原本都与数学是一体的,它们都在依靠数学模型解决各种基础的问题。这两个学科极具竞争力的知识体系都很方便进入基础科学和工程科学。当然,也都容易进入领域。你可以想一想领域有多少数学、物理学、计算机科学背景的人。

  所有把计算机科学读成怎么写软件的人,只把计算机科学当成普通的热门专业的人,那你们就错了。计算机科学和曾经热过的生物或通讯都很不一样。我都想说,你们误解了计算机科学真正的优雅和力量。

  是的,大多数读CS的同学都进入软件工程行业了,但这是历史进程的问题。这不是说计算机科学就是教会学生写软件码代码。现在还是Software Engineering的浪潮罢了。而浪潮必将落下。

  但计算机科学是可以造起新浪潮的学科,这不AI-Driven的时代正在来临。后面?当然还会有机会的。;)

  所以说,真正能历久弥新、坚如磐石的是计算机科学,而不是“计算机行业”(更不是写APP写网站的码农)。

  今时今日,你问我支不支持年轻人学计算机科学,我是支持的。它能完成时代浪潮赋予的使命,也有经得起时间检验的生命力。

  还有一个夏天的世界,留给喜欢Summer的你:summer-clover(个人公众号)。

  很多人投身/转入CS行业的想法是:现在CS大势这么好,以我弱逼一般的学习能力和渣渣技术水平,能否几年后借着东风混到一个德不配位的高薪?

  对于后一种人,计算机行业会一直火下去;对于前一种人,CS会恰好在他们毕业的那一年迎来史上最残酷的严冬。

  本答案不针对程序员群体及软件行业,仅探讨近年来软件行业收入虚高、计算机专业报考大火、培训班热、各行业盲目转行IT等现象是否会退烧。

  我从电路转到电磁,又转到机电,一路上都有同学同事转行去搞软工(我不习惯说搞计算机)。

  这让我想起了:八十年代,最火的专业是英语,分配的工作不是政府机关就是大学高中,其他专业分配的工作不满意,转行首选英语,毕竟和国际接轨是大趋势。九十年代,最火的专业是营销、国贸,那年头倒爷遍地,随便倒点啥都能发财,要是学了专业的,岂不是要上天?新世纪头十年,最火的专业是石油、能源,普通一本的石油大学分数直逼中游985,家家户户都在买车或者准备买车,国际油价蹭蹭上涨,能源才是未来。

  能源、石业的危机,软件行业也有。能源行业的危机是什么?说白了,人才饱和。有人说计算机行业一直在发展,那么石业就没有发展吗?中国的汽车保有量一直在高速上涨,原油进口量在不断增加,但是,人才就是饱和了。一个人学软件挣了点小钱,他可能会指导三姑六婆家的孩子去报计算机专业或者上培训班,所以软件人才的膨胀,是呈指数进行的,而赚钱的软件企业远没有那么多,这些企业也不可能个个带动三个新企业入行,人才饱和必然会发生,只是时间早晚而已,世纪之交的互联网泡沫破灭还历历在目,前车之鉴,后事之师。

  营销、国贸专业的危机,软件行业也有。营销、国贸的危机是什么?按我的理解,叫技能下沉。现在市面上的营销、运营、销售人员多吗?多,但是其中营销专业毕业的多吗?恐怕比例就不是这么乐观了,技能型的东西如果被简化到人人都能快速学会,那么必然没有人会以此为专业。随着计算机科学的发展,一方面,编程语言不断简化,粗略掌握一门编程语言需要的时间越来越短,另一方面,新算法的鲁棒性越来越好,需要的专职运营和维护人员越来越少。以后会出现人人都能编程,但是只会编程会失业的情况,可以说,上面搞算法和设计语言的程序员,总有一天会革了广大低端码农的命。

  英语专业的危机,软件行业同样有。英语专业的危机是什么?我觉得吧,应该是行业融合。早年会英语的人很少,上至外宾来访、出国考查,下至进口产品,英文书信,都需要英语专业的人,然而,随着各行各业的发展,更专业的英语需求出现了,专业人员自学英语或者本专业转行做专业英语翻译工作成为主流,试问,英语专业的毕业生英语再好,能有能力为几个不同专业方向的待发论文进行润色吗?不可能的。同理,各行各业的信息化智能化,需要的是对应专业的编程能力,而不是编程的专业,未来,既没有其他专业能力,又没有算法、系统层面技能,只会熟练编程的人,只有一条出路——教别人编程,就像现在新东方做的那样。

  综上,软件行业会火下去,这是时代的潮流,但是软件专业作为一个专业或一门技能,其供求关系,在不久的将来,定然会回归理性。