传统的程序员将会被淘汰
要成为当今软件开发中受人尊敬的专业人士,你需要掌握各种技能,而且达到高水平的专业级别。最起码,你需要能够把你的英语解决方案翻译成软件实现。不仅技术上要正确,在业务上也得可行。因此,对业务有一个深刻的理解总是没有坏处的。这使得你可以有效地收集和谈判客户的需求,并确保软件能够经过时间的考验。企业希望软件是一个长期的投资,能够在几年甚至几十年之后依然物尽其用。很少有希望软件只存活几个星期的。如果真的有,那可真是一个糟糕的投资。
对软件开发的熟练要求放宽了
在美国,对软件开发人员的需求一直在增长,但对技能熟练程度的要求却在降低。计算机编程退步到了寻找正确的软件库然后将它们串接起来得程度。那么你如何解释软件或平台作为服务的迅速崛起?是的,有时你是需要弄清楚哪些组件装配在一起才最适合你的特定问题,而且,当找不到这样的组件时,你必须自己动手创建。但是,现在的问题是,很多时候,该软件已经存在。在这种情况下,你的工作就是无聊重复的顺序:选择库,联合库,按照需求测试。
但是先等等!你可能会认为,编程还囊括了很多合同规定的内容。当然,我们可以构建一个已经构建过的结构,但它们还需要个性化,才能适应特定的业务需求。这无疑需要一定程度技术和智慧的,对吧?而对于这种说法,我承认。是的,业务需求常常是非常多样和特殊的,然而现在却在开始渐渐地变得大同小异。
因此,选择组件来满足业务需求成为了自动化的主要目标。既然有这么多潜在的组合,那么那些永远不需要睡觉、吃饭和休息的员工才是最完美的员工。人工辅助软件开发的时代正在到来。也就是说,计算机将执行大部分的开发步骤,而人类只需要协助它们即可。
在这个新的时代,人工智能研究人员和测试人员将占据统治地位。人工智能研究人员负责想出大致的思路。他们将确定需要解决哪些问题,即通过给定的输入描述期望的输出。然后,测试人员编写断言这个问题确实被解决的测试。也就是说,验证正确的输出是由给定的输入确定的。此时的计算机负责将给定的输入转换为所需的输出。
遗传编程
你可能会觉得自动化的软件开发是一个奇思妙想,甚至觉得这是不可能的。但是遗传编程告诉我们 nothing is impossible。软件会产生变异,改变它们的指令,努力顺利发展以变得更适合。在每个突变后,它们将自行评估它们是否正趋向于期望的输出。这里对于合适的评估是由测试提供的。而且是大量的测试。这些测试都封装了经过时间、空间和功能性制约的业务逻辑。突变越合适,通过的测试越多。这是值得重申的是,我们不应该关心生成实现的细节。事实上,生成多个符合要求的解决方案是完全合理的。要减少解决方案只需要增加更多限制问题就可以了。
软件开发人员的传统角色将会被淘汰。他们很快会被重新定位到设计、开发和维护测试。即,计算机的程序设计将变得不必要,因为它们自己就能编程。这种范式将对软件行业产生翻天覆地的影响。改变业务需求,直接改变测试,而这会触发软件自动化的进化。修改现有代码,以满足新兴需求的压力将一去不复返。计算机会做好这件事:因为它不会有重新开始的顾虑。它也不关心可维护性,并且最后一定更兼容不断变化的业务需求。
说了这么多,我决定把将来的重心放到测试上,以应对将来软件行业的变化。那么,你呢?
本文文字及图片出自 www.codeceo.com
你也许感兴趣的:
- 【外评】电脑从哪里获取时间?
- 【外评】为什么 Stack Overflow 正在消失?
- Android 全力押注 Rust,Linux 却在原地踏步?谷歌:用 Rust 重写固件太简单了!
- 【外评】哪些开源项目被广泛使用,但仅由少数人维护?
- 【外评】好的重构与不好的重构
- C 语言老将从中作梗,Rust for Linux 项目内讧升级!核心维护者愤然离职:不受尊重、热情被消耗光
- 【外评】代码审查反模式
- 我受够了维护 AI 生成的代码
- 【外评】Linux 桌面市场份额升至 4.45
- 【外评】作为全栈开发人员如何跟上 AI/ML 的发展?
你对本文的反应是: