当前位置: 首页 > 科技观察

为什么你招聘不到程序员,以及软件如何定义现实世界

时间:2023-03-14 08:02:47 科技观察

为什么你不能雇用程序员,以及软件如何定义现实世界的程序员。2015年程序员的工资涨幅我没有确切的数字,但是我知道2015年,一个有3到4年工作经验的年轻程序员在北京和上海都能拿到工资。薪水已经接近盛大创新院2010年给我的薪水了。要知道,2010年盛大为了成立创新院,开出了业内最高的薪水,而我有8年的工作经验那时。这还是5年前的事,今天,一个3年工作经验的程序员的薪水已经达到了这个水平。在中国,大概只有北上广三地能和房地产相提并论的增长速度就是程序员的工资了。许多人根本不相信这一点,不仅是这个行业之外的人,就连这个行业内的人都觉得不可思议。但是大家不得不面对的一个事实是:当你需要程序员的时候,你会发现根本招不到程序员。那种“万事俱备,只缺一个程序员”可不是开玩笑的,我认识的项目不计其数,只缺一个程序员也是事实。然而,他们就是找不到急需的程序员。也有很多人认为,几年后会很容易招到程序员,现在只是泡沫期。甚至有人认为,几年后我们将不再需要程序员,因为有更多的工具可以帮助生成软件。不好意思,这两个想法在2015年都不存在,从1995年就有了,甚至1985年就有了。这30年,泡沫冒出又冒出一轮又一轮,自动化工具相继问世,平台越来越多成立。你需要写一个程序”,就可以*开始*开始互联网业务了。然而,几十年来对程序员的需求一直在上升,能写出可用代码的程序员从来都不是好招的。回过头来看,甚至2008年金融危机的那一刻,全球程序员的招聘只持续了半年时间,美国H1b签证直到2008年才完全使用,每年都必须抽签才能获得,中印程序员数不胜数签证心切,“不用写程序也能创业”,这在某种意义上其实是实现了。但是,目前还没有自动生成软件的工具,但是开发了各种应用平台。比如一个专注于内容创业的人,一行程序都不需要写,就可以从一个微信公众号做起。但不要忘记,这些平台的背后,依然是无数程序员辛勤劳动的成果。即使你是用微信公众平台创业的,如果开发规模更大,还是需要写一些程序,要么是自己的app/社区,要么是各种活动用HTML5,要么用微信SDK接口。各种自动化功能。简而言之,迟早你还是要写一些程序。如果换个角度看,像微信公众平台这样的应用,只是把过去没有编程能力的人拉起来,让他们有个起步。筛选出强者后,再回去招聘程序员。情况。这样看,这些平台非但没有减少程序员的岗位,反而扩大了需求。如果没有公共平台,很多创业者可能根本就不需要程序员的支持,也赚不到钱养活一个程序员。现在,他们中的那些成功者,终于可以活到今天,加入到争相程序员的行列中了……这个世界对程序员的需求几十年都没有减少过。按照我的观点,未来几十年也不会减少,工资只会继续上涨。在各种社交平台上,你还会看到各种恶毒嘲笑和讽刺程序员的人和笑话(基本上都是传统行业的,他们大概认为自己一辈子都不需要和程序员好好打交道),这些人显然不要相信我这个观点。信不信由你,这正是发生的事情。为什么程序员这么难招,背后的原因是什么?要回答这个问题,我通常会推荐对方阅读一篇名为《软件正在吞噬整个世界》的文章,这篇文章是美国著名风险投资公司安德森霍洛维茨基金的创始人马克安德森在2011年写的。今天,这篇文章的意义显然被低估了。安德森写过很多文章,但这无疑是最重要的一篇,也是对未来方向最明确的一篇。但别说是2011年,就算是今天,也很少有人真正了解它的重要性。这篇文章不长。看完我的文章,我建议你找到它再读一遍。相信你会有新的感受。我一直很欣赏这篇文章的观点和眼光,但我觉得他用的“吃”这个词不好,不能准确反映真实情况,而我更喜欢用的词是“定义”(defining)。“软件定义现实世界”,这是我发明的新名词。这篇文章我想写的是软件如何定义现实世界。今年三月份,我在杭州和一个朋友聊天。我们叫她习老师,她是从事传统行业的。她很惊讶为什么程序员这么难招。我给她大致描述了越来越多的行业开始用软件代替传统手工劳动的情况。她恍然大悟:“啊,我知道了,以前我们小区是一个老人负责收停车费,现在是全自动刷卡,所以很多老人都被软件代替了,软件需要程序员来开发、维护吗?”这个例子很准确,从一个具体的案例来看,是这样的。她敏锐地把握住了现实世界最基本的情况。我也继续使用这个例子作为背景。图片:以前是这样的图片:以后会是这样的...当我们用停车场管理系统代替了停车场管理员(老人),整个事情发生了什么变化?不仅仅是节省一个老人的人工成本那么简单。节省人工成本的价值并不大,因为基层体力劳动的人工成本相当有限,节省20个老人的工资可能比不上一个程序员的工资。比节省一个人的人工成本更重要的是,我们用软件来规范停车场的行为,也就是所谓的“定义”。在使用该软件之前,停车场管理员拥有很大的权力。很多人都知道,如果你给停车场管理员一包烟,他可能会少收你20元的停车费。甚至很多停车场管理员都会把停车费直接收入囊中,如果你不索要停车收据的话。这种行为在停车场运营中是没有办法监管的。监管需要付出巨大的人力,甚至要冒很大的风险。有了软件系统,一切都不一样了。这种把钱塞进自己口袋的行为,已经没有必要再监管了。只要软件没有他们能找到的漏洞,一切都变成了非常规范的行为。当车主驾车进入停车场时,取出卡片,系统对车牌进行拍照。当他离开停车场时,他会自动计时收费。缴费后,停车场的出口就会打开,车子就可以离开了。这个过程可以完全没有人的参与。即使停车场管理员的职位是为紧急工作预留的,他的行为也受到软件的严格监管。如果不交钱,停车场的出口不开,车子是不能出停车场的。这是一个明确定义的基本规则。除非暴力破坏停车场设施,否则一切都由软件管理,不能被人改变。什么。从此,整个过程不会有任何资金损失,停车场经营者将获得更多的收益。这些利润一部分变成了软件公司的利润,软件公司的一部分利润变成了程序员的工资。这就是软件公司利润丰厚的原因,也是程序员薪水如此之高的原因。仅从这个例子来说,软件并没有创造新的价值,但是在几个传统行业,软件把一些人本不该收的钱收回来了,把钱变回了利润,而这部分利润是程序员分享的。以这个停车场为例,按理说停车场管理员的收入应该只是薪水,不包括偷偷塞进口袋的停车费,但没有软件,这种行为是无法制止的。肯定会有很多钱流向不值得的人。另一方面,在车主这边,他们的行为也被定义了。过去,很多人都愿意接受10块钱买一包烟,省20块停车费的设定。但是在软件管理下,这种利益交换是没有机会发生的。以这个停车场为例,业务双方的行为都被软件重新规范和定义了。整个过程是这样看的:在软件公司的帮助下,现实世界的资金流向被重新分配。这就是“软件定义现实”。软件重新定义了社会规则并定义了人类行为。当然,目前软件只是体现了业务人员的意愿。现阶段,更准确的说法是软件帮助人们重新定义社会规则。这仅仅是个开始。我们站得高一点,看看已经被软件接管的停车场。你会发现关于它的细节是隐藏的,你只知道有一个接口(Interface)。所谓接口,就是对资源的抽象。我们知道它提供了什么。比如这个例子,可能是停车场有多少空车位,停了多少车,每天有多少收入,停车场在哪里……等等,具体细节被装进了一个黑盒子,我们不再关心它了。比如一个软件管理的停车场是否还有看老人一眼,就是一个细节。从这个角度来说,我们不再关心这个人是否存在,或者他在做什么,因为它已经被软件定义了。他的行为,此时我们只关心提供结果的接口。在软件世界里,一旦你知道了界面,你就可以使用这个资源。从此以后,我们就可以把这个停车场看成是软件世界中的一个单元了。正如我刚才所说,它的现实已经被放入黑匣子中并被屏蔽。如果你只有这些单位中的一个,它只能用来规范基本行为,但如果你在邻近的街道上有另一个这样的“停车单位”,这时一些新的变化就可以开始了。例如,A停车场快满了,但B停车场还有一半空着。这时可以通过软件调整资源,让车主尽量停在B停车场。具体的手段有很多,比如通过智能手机发信息,告诉开车的车主A停车场要排队10分钟,B停车场排队1分钟就可以进入。自然可以把一部分人分流到B停车场,甚至把B停车场的停车价格降低10%,吸引更多的人。这些基于剩余资源的实时、动态配置使用传统方式是不可能实现的。一方面,传统方法无法快速反馈信息。另一方面,传统方式的审批和决策流程过长。要降价,总得有个负责人批吧?这使得实时动态调整成为不可能。但在软件定义的世界中,这是可以做到的。在这种模式下,如果我们屏蔽掉具体的引导方式(降价、排队频繁通知等),我们甚至可以把A、B两个停车单元合二为一,也就是在软件层面,我们有一个更大的A停车场单位。展望未来,如果有更多的接口资源,它们之间会发生什么交互?例如,两个停车场旁边有两家规模和质量差不多的餐厅A和B,它们也有接口。厨房里有什么材料,知道价格……那么,当A停车位报满时,B餐厅是否愿意临时降价10%以吸引更多顾客?如果B餐厅通过降价成功出售其闲置资源,他是否愿意将部分利润分给停车场和帮助资源配置的软件运营商?这些都是未来会发生的事情。现实世界中越来越多的资源通过接口连接到软件世界,成为一个抽象的单元。他们将直接互动。这就是我们多年来所说的“智能”。所有这一切最终都需要软件实现。把一个真实的资源抽象成一个接口,在软件界被称为“虚拟化”,这个概念在1960年代的软件界使用。通常这个术语用在云计算行业,将真实物理计算机上的计算机、路由器和内存虚拟化……并将这些资源弹性分配给需要它们的用户。但实际上,现实世界中的一切都可以通过这种方式虚拟化。这就是未来由软件定义的真实世界。对于这样的世界,如果要找一个更容易理解的例子,最合适的就是游戏。未来的一切就像是即时战略游戏的表现。如果你玩过星际争霸,你可能还记得点击鼠标发送一个SCV到我的矿场,用鼠标点击工厂,坦克就会开始生产。在这个过程中,操作者只需要知道如何点击鼠标发出指令,然后得到指令的结果。点击鼠标,几分钟后你就会得到一辆坦克。至于工厂怎么生产坦克,SCV怎么获取矿石,这些细节都被屏蔽了,不用关心。未来的现实世界,传统行业的一切都会变成这样,就连下指令(玩游戏)的操作员迟早要被软件取代。我不是在写科幻小说,今天很多行业都取得了类似的效果。比如航空业,这个行业的很多部分已经高度虚拟化了。他们已经可以使用指挥系统调动各种地面和支持资源来完成航空业的各种流程。当然,他们也需要大量的程序员来开发和维护这个系统。。。说到这里,我推荐一部很符合这个主题的动画片,叫做《夏日大作战》,这部2009年的动画片描述的很形象,也比较通俗易懂way这种未来的景象非常美好。这是2010年还在九城工作的布布向我推荐的,我们都很喜欢它,并认为这就是未来。(布布也出现在小来关于比特币的文章里,他告诉小来不要挖矿,要花钱买比特币……他是一个很传奇的家伙)图片:夏日大战站直看前面描述的场景。现在我们有很多资源单元,分布在不同的行业。这些单元已经由软件定义,我们将它们视为黑盒子。在软件下,定义了无数特定工人的行为。刚才的例子,除了停车场管理员,还有厨师和服务员……沿着这个思路继续往下想,还会有为餐厅进货的供应商,供应原材料的公司,维护停车场设施......所有这些都将被视为虚拟化成为软件世界中的一个单元。然后就是为各种各样的人(所谓的用户)提供服务。他们有接收信息的方式,从电脑到智能手机,或者各种嵌入式系统,比如特斯拉电动汽车驾驶舱里的大块头。屏幕……一个用户用手机,或者特斯拉,也可以抽象成一个有接口的资源单元。所有资源单元的行为都是由软件定义的,它们之间的交互方式和可能的结果也是由软件定义和部署的。每一层,每一部分,都需要大量的程序员工作。越来越多的真实资源被虚拟化,从而产生更多的交互,更多的可能性,这也需要程序员去实现。今天,只有极小部分的人类社会被虚拟化为软件资源。我没有具体的统计数据,但是如果你想想你在日常生活中需要什么,你至少可以有一个大概的认知。恐怕会被虚拟化。不到1%的资源。未来空间有多大?几乎无限大。现实世界可以虚拟到什么程度?之前推荐过好几次科幻小说?,里面描述未来世界只剩下三种职业:娱乐业、程序员和披萨外卖员。这部写于90年代初的小说,早年看起来很震撼,但今天看来……我觉得他还不够偏激。因为现在我们可以肯定地知道,披萨快递员的工作将被无人机改变,娱乐业将被VR/AR改变。到头来,现实世界只剩下程序员这个职业了……软件并没有吞噬现实世界,而是重新定义了现实世界中的一切资源。图片:AvalancheCover所以,你今天对软件/互联网泡沫的所有看法都已经过时了。现实世界的虚拟化已经达到一定程度。我们确实需要大量的程序员,以后还是需要的。没有足够的程序员。因为程序员的职业差距太大了,现在用钱招不到了。即使是程序员,也会因为公司要签到而选择另一家公司,因为他们的选择太多了。很多企业还远没有意识到问题的严重性,聪明的企业已经忙于“企业技术文化”的工作。如果你不是BAT,你不是很酷的新公司,程序员根本就对你不感兴趣。在这种情况下,你可能无法以两倍于别人的价格雇人,所以你需要做技术和文化工作来宣传我们也很酷,我们也有能力改变世界……所以以免在这场比赛中落伍。最近身边很多其他行业的朋友都来问我要不要学着写个小程序。我一般会回答,只要你有兴趣,能继续学习,当然应该。即使你不能成为一名专业的程序员,在这个软件定义一切的行业里,如果你了解了程序是如何产生的,了解了程序员是如何工作的,那么一定会有更好的职业机会在等着你。为什么不学呢?以上就是程序员难招的情况的基本情况,因为这个职业差距确实太大了。这种职业差距在未来不仅不会减少,而且无疑还会继续扩大,甚至可以被夸大。换句话说,人类世界现代化的速度很大程度上是因为程序员数量不足而制约的……