知名的技术布道者Tim O'Reilly最近在接受采访时提到了一个观点,他认为程序员的黄金时代已经过去了。理由是编程能力变成了一种通用技能要求,就像会读书写字一样。所以工作不好找了。但是Matthew MacDonald有不同的看法。
里奥·冯· 克伦兹(Leo von Klenze)的“雅典卫城” 给人留下了深刻的印象[Wiki Commons]
现如今,你似乎只需要关注一下Twitter或者异常TEDx 演讲就可以给自己安个未来主义者的头衔。但是,帮助大家学习技术的传奇公司O'Reilly Media的创始人Tim O'Reilly不是那种专家。他对计算的趋势深思熟虑,对开源非常拥护(在开源被认为很酷之前很久就如此了),大家都信得过他。
所以,当Tim O'Reilly最近对软件行业的未来发表评论时,职业的开发人员都注意到了这一点。他的原话是这样的:“我认为过去几十年的黄金时代已经过去了,那种当一名程序员就能找到工作的日子已经过去了。编程现在更像是会读书能写字。你必须具备这样的能力。”
听起来很合逻辑。实际上,您可能已经听说过其他版本的“今天的精英编码技能是明天的基本能力”的论点。但这真的反映了软件行业的未来吗?不会写代码相当于没文化?
人人都要会写代码,就像人人要会读写一样。你很难质疑这个目标。哪怕你不打算自己写软件,理解代码是怎么工作的也很有价值。甚至不是程序员也可以运用所需的基本技能去开发网站,从大量数据中得出结论,或者对简单任务进行自动化。一天当中谁没有在Google、Facebook或者YouTube算法的温暖怀抱里面糖果那么一会儿?不管是不是程序员,当周围的机器正在重塑我们的生活时,了解其工作方式也能够为我们带来宝贵的观察角度。
其实,说编码能力(当然,这种能力最终会从近乎神奇的力量演变成常规的人类实践)是这种新型的读写能力的一部分的想法并不新鲜。但是,我们有理由对此表示怀疑。毕竟,仅仅在十年前,我们还一直在寻求科学素养,为的是向普通公民提供决策所需的知识,让他们有能力选择出能够在快速发展的世界里面规划出一条康庄大道道路的领导人。但是,实现科学素养的承诺并没有真正兑现。现如今,从计算机(量子力学)到疫苗(遗传学)再到GPS(广义相对论),普通人严重依赖于他们自己不了解或者不相信的现代科学。如果科学素养是一个从来都没有实现的目标的话,那我们凭什么对编程素养可以有更高的期望?
编程扫盲运动的支持者认为,读书写字一开始也是被当作专门技能的,而且花费了多年时间才从学者传播到普通大众。(如果说你在1620年的时候曾经做出预测,在数百年之内,哪怕是最没有抱负的人也能够写出一篇语法上表达连贯的Facebook帖子,那你会被看作是一个疯狂的梦想家。)但是,学写作跟成为作家之间是有差距的。学科学与成为科学家之间也是有距离的。知道代码的基本轮廓跟学习自己开发复杂系统之间一样也是有差距的。
我们在为提高编程素养方面所做的努力太少了,这不足以让未来的程序员做好准备。实际上,我们经常让菜鸟远离编程艺术,把他们误导进狭小的,充满局限性的沙箱。在过去,这些沙箱是Excel宏,如果需要,还可以利用Visual Basic和Access。现在则是Power App。变得越多,越是万变不离其宗——如果你想成为一名专业的程序员,还是不能按照标准的教育路径走。现代教育降低了编码素养的门槛。但这并没有改变对职业程序员的含义。码农值多少钱?
Tim O'Reilly点评的另一部分就有点微妙。简而言之,如果大家的编码能力都提高了的话,会不会威胁到程序员在劳动力当中的特权地位?
至少过去的二十年来,大家就一直在宣称写代码这件事情已经商品化了。今天的一些程序员应该还记得,有人会告诉他们要学点效力更持久的东西,比方说数学,因为大家写程序的技能差距会越来越小。
但是我要唱反调——没有时间线的预测实际上根本就不算预测。今天,我们的程序员比过去任何时候都要多,而且还有大量的海外人才渴望来填补我们的IT需求。按理说程序员并不短缺。但是,熟练的程序员依然缺乏。事实证明,这种短缺的局面出奇的久。哪怕我们已经扩大了传统教育(更深入地推进STEM学科)和非传统教育(基于项目的代码训练营出现爆发式增长),熟练的开发人员短缺的情况仍然没有改变。目前的估计是,编程人才的短缺在未来几年只会加剧。
你很容易会认定熟练程序员的鸿沟反映的是对新兴技术(如机器学习和大数据分析)缺乏专业知识。虽然这些领域的开发人员的需求量确实很大,但这似乎并不是短缺的根源。相反,现在我们缺少的是熟练的中级开发人员。那些掌握了编码的基础知识,但同时也了解高效团队合作、协作等软技能的人。熟练的中级开发人员可以将编程技能与难以量化的技能(比方说具备分析大型系统、调试现实问题、管理项目以及与利益相关者沟通的能力)相结合起来。
将来,刚刚学出来的编码人员也许在找工作时会遇到困难(视当地就业市场和他们的技能组合而定)。但是经验丰富的开发人员在数十年内都会是宝贵的资源。哪怕AI驱动的代码生成工具似乎前途无量,但那也取代不了可以在芯片现实与现实世界之间遨游的专家。
那编程仅能会不会有朝一日会变得太过普遍,以至于程序员失去定价能力呢?或许吧,但是今天还没有这种迹象。一个更加明显的障碍是,任何抱着轻松赚钱的目的从事编程的人,可能在获得成功所需的经验之前就已经心力交瘁。一个新的黄金时代的到来
Tim O'Reilly的话暗示了编程技能不再是职业发展的障碍。但是,如果说计算的黄金时代不在于轻松赚钱和工作保障呢?如果我们失去的东西实际上并没有我们在半个世纪的软件开发当中所获得的东西那么重要呢?
这些年来,编码的复杂性已经骤然提高。但是与此同时,我们可以依靠的资源也十分的丰富——可以发现错误的IDE,可以在几秒钟内完成编译的计算硬件,可以自动完成诸如验证输入和排序列表之类繁琐工作的框架。曾几何时,寻找信息对于程序员来说依然是个难题,而像Windows API这种主题的一本信得过的书会在办公室里传来传去,直到整本书都被翻烂了。
现如今,有了免费教程,YouTube课程,Twitch编码直播以及StackOverflow,编码的进入障碍已经荡然无存。相对于一堵晦涩知识组成的高墙令人生畏,新进入者现在面对的是热情邀请自己,并渴望分享有关开源项目工作的专家社区。如果从实现自己想法的顺畅程度来衡量的话,那这个就是黄金时代。对于把个人的想法转变成软件项目并与全世界分享而言,史上从来没有像现在这样容易过。
我们不知道这个黄金时代什么时候会结束,但有一件事可以肯定。那就是王国的大门依然敞开着。
译者:boxi。
36氪编译组出品