在上个世纪 90 年代,我幼时所理解的软件是一段神秘的程序,又或者是一张不起眼的软盘,随着年龄渐长,它逐渐变成了光盘,互联网的出现,它又变成了一段可以在网络上传输的内容,但自我成为专业的软件开发人员这 几十年,无论软件的载体和形态如何变化,唯一不变的是软件的生产方式,具备专业知识的软件开发人员,通过敲入一个一个字母钩织器了庞大的软件帝国
Low-Code 这个概念是 2014年 Forrester 首次提出来的,在随后若干年里被广泛传播,至今差不多也快 10年了,我一直对新技术和新概念通常有个 10年定律的概念,就是任何一项如果可能对未来产生革命性的技术或者理念,在进入发展期之前通常有 10年左右的时间会一直处于不温不火的局面。当然这不是一种定律,只是基于对过往事务发展规律的一种观察,这种观察本身也具有时代局限性,参考工业革命初期,从机器纺织代替人工纺织的历程,其发展的时间就要长得多,如果非要就这一现象来寻找定律的话。
我认为人类科技的发展让技术创新的成熟周期变得越来越短,而并行发展的各类新技术又会催生出新的概念和新的方向,这种共同作用的周期从过去几万年到如今可能只需要几年的时间,参考人类社会的发展史,这种加速趋势是显著存在的。
那么回到 Low-Code,我们现在或许可以成为无代码,在聊无代码之前,我想先回顾下我之前曾经思考过的一个问题。
从汇编到高级语言,下一步是什么?
是更高级的语言么?从 Java 被发明到现在,从编译语言到脚本语言,到像 TypeScript 这样的超脚本语言,从形式上来说基本都依然属于高级语言的范畴,只是相对最初的高级语言,编程的门槛在逐步降低,如果把高级语言比作工具,那么就是对掌握这门工具的要求越来越低了,有的人可能会觉得门槛降低似乎不是好事,因为会加剧竞争之类的,但是在我看来正是因为工具的使用门槛降低,人们才有机会用更多的时间去思考如何有效利用这些工具打造能够改变我们生活的产品。
用一些大厂的话来说,写代码的要有业务 sense,做开发的要懂业务之类的,其实这并非大厂对软件工人的特有要求,而是编程这项技术的发展所带来的必然性。
这种必然性所呈现的是我们所理解的编程工作在未来或者就是眼前在技术上的要求会越来越低,我们所属住的一些岗位未来可能消失。
就这一点我可以给大家解释下为什么现在的科技大厂对员工的非专业能力要求会很高,例如 985/211 的学历要求,35 红线的年龄要求,初次之外还有过往经历要求项目有亮点公司有背景等等。
是真的从事所招聘岗位的工作需要这么高的要求么?
自然不是,而是因为大厂的基础设施在经过这么多年发展之后趋于完善,同时整个软件开发生态在开源加持下也今非昔比,同样是开发一个商品 Detail 页,现在对技术的要求比过去要低的多了,这种开发要求和门槛的降低是依靠开发系统的复杂度上升来实现的,过去你可能要懂很多手工活才能完成工作,而如今却只需要在成熟的平台上拧螺丝就可以了,而离开的对技术的要求,人聪不聪明,是否年轻,身体好不好,记得我几年前写过一篇讲韭菜的文章, 道理还是那个道理,只是现在割韭菜的人也开始挑挑拣拣了。
所以回答我自己思考过的问题,高级语言的下一步应该是什么?
或许 Low-Code/No-Code 就是解法,对高级语言的进一步抽象已经无法再降低编程门槛了,反而会增加复杂度,例如 TypeScript Kotlin Flutter 等等并没有减少我们对下游高级语言的依赖,如果你要好好完成工作你依然得掌握 JavaScript Java Object-C 等等,所以我对类似的超语言并不看好,这些超语言没有解决核心问题,就是以更高的抽象层次来降低下游语言的编程门槛。
那么从这个角度看,高级语言的未来应该还是回归人类的自然语言编程。
NLP 编程技术奇点
前几年有个理论叫“奇点理论”,说的是纯人类智能的终结,人类和机器结合智能的开启,我对奇点的理解是随着多条并行的技术线路的持续发展,人类的科技革命通常存在某个交汇点,这个交汇点就是多种技术路线和环境变化的有机融合,当融合成功后,人类社会会开启新一轮技术革命,产业,生活都会发生极大的变化。
在人类的历史上这样的奇点曾经多次出现,例如大航海时代、文艺复兴、秦的统一、计算机的出现、互联网时代等等
自 2019年机器学习首次提出大模型概念到 2023年 ChatGPT 引爆全球,大模型的发展速度非常惊人,其中固然有机器学习长期的技术沉淀,但机器学习从实验室走向企业走向大众所花费的时间还是远超人们的预期,NLP 领域通用人工智能的出现,对于整个软件工业来说是一个非常重要的技术奇点。
这个技术奇点对未来的影响是目前无法准确评估的,但是如果发挥你的想象力,未来任何一家规模的企业都能获得匹配自身的数字系统,作为企业家你可以雇佣世界上任何一个人为你工作,通过广泛的分布的数字服务,你可以获得真实有效的雇佣体验,而作为个体,你可以不止为一家企业服务,你可以按照自身的需求为不同的组织企业提供服务,你可以参加非营利组织寻求兴趣和自我价值,也可以为商业机构工作获取报酬来改善生活
实现这样一个充满理想的远景目标离不开 AI,使用基于 AI 的 低代码或者无代码数字研发系统,软件研发成本降极大的降低,这件事在 AI 画图上已经被佐证了,人工画师(昂贵,有脾气)AI 画师(便宜好用不傲娇)
通用人工智能的出现对于解放人类创造力而言,让人们第一次看到了曙光。
当我们还在担心人工智能可能会抢走你的工作的时候,你不防回想下人生过去的记忆力,有多少次想成为一个那样或者这样的人?那些梦想和理想是不是在日复一日的工作中,在为生计崩波中消磨殆尽。
对于我而言,我梦想自己能成为一个经济学、历史研究爱好者,我还喜欢旅游、摄影,但最终我成了一个码农,值得庆幸的是,我对技术依然抱有很大的热情和热爱让我不至于单纯的只是应付工作,但我希望自己有生之年依然能做些我自己想做的其他事情,而不是等到我退休之后。
人工智能的发展带来的就业危机,是我们对这件事情的负面看法,这种看法在工业革命初期也出现过,手工被机器所替代,当时的人们也如当下一样恐慌,但事实呢,是现在的人口远比当年更多,但并没有造成大量的人口失业,因为工业革命带来了生产力解放,让人们有时间进行更具创造力的活动,创造力带来的创新又构建了新的社会组成,新的组织,新的知识带来的新的就业。
所以保持个人竞争力的从来都是你的创造力,而创造力的内核则是那些从未放弃的梦想和理想,因为只有梦想和理想才会产生兴趣驱动,才能保持你的创造活力。
软件工业革命
软件工业发展至今,虽然软件生产力得到了极大的提升,但是庞大的数字社会所需要的软件和数字应用依然依赖一小部分人的工作,平台经济的商业模式其实是软件生产力低下带来的一个副产物,即利用有限的软件生产力来打造一些标准化的平台尽可能为更多的人服务从而降低软件生产成本。
而我们的软件生产力提升缓慢的一个重要原因是整个软件工业中存在大量的不确定性是由人类来完成的,例如产品文档的编写,代码的编写,产品的测试,需求的调查等等,我们发明了非常多的工具来优化这些单点的流程,但对于整个软件工业来说,整个工业流程中如何打通工具与工具、人与人之间存在的信息和技能壁垒都必须依赖一些突破性的技术,而这些没有比 AI 更好的解决方案了。
我一直认为 AI 和人类是一个互补的关系,所谓的具有人类意识的 AI 只不过是人类的一种科学幻想,因为如果 AI = 人,那么他就是人,不是 AI,仅仅通过机器来实现人这是比上帝更不切实际的幻想。也是人类对自身认知不充分的到的结论。
因此 AI 和 人类将长期共存,彼此互补来构建社会,对于 AI 而言,或者说当下的 AI,他擅长的是快速学习存量知识,同时 AI 作为数字应用的顶端,作为人类和数字世界的连接是最好的选择。
我相信在接下来的 5 - 10年,AI 会成为软件工业核心的部分,当 AI 加入到整个软件工业里,软件研发的参与门槛将极大的降低,软件开发从业者的数量将极具膨胀,而同时能够让专业工程师和普通人进行协作的软件工业载体非无代码研发平台莫属。
未来 90% 的数字应用将在无代码平台上开发完成,只有 10% 的场景会继续由具备特定专业知识的工程师手工打造,而目前这一比例是反过来的。
而无代码研发对于软件工业的革命会解放当下人类的对于数字世界的想象和创造力,这种创造力势必颠覆当下我们现在所熟知的各种经济模式。
如果你问我如何应对这样的世界变化,我想说
捡回你的初心,不要失去你的理想和梦想,保持你的创造力,这是你唯一能胜过 AI 的能力
最后
整理了一套《前端大厂面试宝典》,包含了HTML、CSS、JavaScript、HTTP、TCP协议、浏览器、VUE、React、数据结构和算法,一共201道面试题,并对每个问题作出了回答和解析。
有需要的小伙伴,可以点击文末卡片领取这份文档,无偿分享
部分文档展示:
文章篇幅有限,后面的内容就不一一展示了
有需要的小伙伴,可以点下方卡片免费领取