专栏首页java一日一条传统的程序员将会被淘汰

传统的程序员将会被淘汰

要成为当今软件开发中受人尊敬的专业人士,你需要掌握各种技能,而且达到高水平的专业级别。最起码,你需要能够把你的英语解决方案翻译成软件实现。不仅技术上要正确,在业务上也得可行。因此,对业务有一个深刻的理解总是没有坏处的。这使得你可以有效地收集和谈判客户的需求,并确保软件能够经过时间的考验。企业希望软件是一个长期的投资,能够在几年甚至几十年之后依然物尽其用。很少有希望软件只存活几个星期的。如果真的有,那可真是一个糟糕的投资。

对软件开发的熟练要求放宽了

在美国,对软件开发人员的需求一直在增长,但对技能熟练程度的要求却在降低。计算机编程退步到了寻找正确的软件库然后将它们串接起来得程度。那么你如何解释软件或平台作为服务的迅速崛起?是的,有时你是需要弄清楚哪些组件装配在一起才最适合你的特定问题,而且,当找不到这样的组件时,你必须自己动手创建。但是,现在的问题是,很多时候,该软件已经存在。在这种情况下,你的工作就是无聊重复的顺序:选择库,联合库,按照需求测试。

但是先等等!你可能会认为,编程还囊括了很多合同规定的内容。当然,我们可以构建一个已经构建过的结构,但它们还需要个性化,才能适应特定的业务需求。这无疑需要一定程度技术和智慧的,对吧?而对于这种说法,我承认。是的,业务需求常常是非常多样和特殊的,然而现在却在开始渐渐地变得大同小异。

因此,选择组件来满足业务需求成为了自动化的主要目标。既然有这么多潜在的组合,那么那些永远不需要睡觉、吃饭和休息的员工才是最完美的员工。人工辅助软件开发的时代正在到来。也就是说,计算机将执行大部分的开发步骤,而人类只需要协助它们即可。

在这个新的时代,人工智能研究人员和测试人员将占据统治地位。人工智能研究人员负责想出大致的思路。他们将确定需要解决哪些问题,即通过给定的输入描述期望的输出。然后,测试人员编写断言这个问题确实被解决的测试。也就是说,验证正确的输出是由给定的输入确定的。此时的计算机负责将给定的输入转换为所需的输出。

遗传编程

你可能会觉得自动化的软件开发是一个奇思妙想,甚至觉得这是不可能的。但是遗传编程告诉我们nothing is impossible。软件会产生变异,改变它们的指令,努力顺利发展以变得更适合。在每个突变后,它们将自行评估它们是否正趋向于期望的输出。这里对于合适的评估是由测试提供的。而且是大量的测试。这些测试都封装了经过时间、空间和功能性制约的业务逻辑。突变越合适,通过的测试越多。这是值得重申的是,我们不应该关心生成实现的细节。事实上,生成多个符合要求的解决方案是完全合理的。要减少解决方案只需要增加更多限制问题就可以了。

软件开发人员的传统角色将会被淘汰。他们很快会被重新定位到设计、开发和维护测试。即,计算机的程序设计将变得不必要,因为它们自己就能编程。这种范式将对软件行业产生翻天覆地的影响。改变业务需求,直接改变测试,而这会触发软件自动化的进化。修改现有代码,以满足新兴需求的压力将一去不复返。计算机会做好这件事:因为它不会有重新开始的顾虑。它也不关心可维护性,并且最后一定更兼容不断变化的业务需求。

本文分享自微信公众号 - java一日一条(mjx_java)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-03-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 测试代码时你会犯的 11 个错误

    我遇到的大多数开发人员都不怎么热衷于测试。有些会去做测试,但大多数都不测试,不愿意测试,或者勉而为之。我喜欢测试,并且比起编写新的代码,愉快地花更多的时间在测试...

    哲洛不闹
  • 编写更好的 Java 单元测试的 7 个技巧

    测试是开发的一个非常重要的方面,可以在很大程度上决定一个应用程序的命运。良好的测试可以在早期捕获导致应用程序崩溃的问题,但较差的测试往往总是导致故障和停机。

    哲洛不闹
  • 用一张图片,黑客就能黑掉你的电脑

    中国有句老话:“你有张良计,我有过墙梯。”在如今,网络安全环境越来越被人们所重视,黑客们也在想更高的招数来入侵你的电脑。

    哲洛不闹
  • 测试金字塔实战 | 洞见

    这是一篇非常漫长并且艰深的文章的节选(点击文末阅读原文查看全文),它解释了为什么我们需要测试,以及如何对软件进行测试的问题。好消息是,这篇文章提供的信息经得起时...

    ThoughtWorks
  • JavaScript 测试教程 part 1:用 Jest 进行单元测试[每日前端夜话0xE7]

    有多种不同种类的测试,我会首先解释其中的一部分。首先,我将介绍单元测试的基础知识,即测试应用程序的每个部分并检查它们是否适合使用。为此我们将使用 Faceboo...

    疯狂的技术宅
  • 掌握体系化知识,从手工测试轻松转岗自动化或测试开发

    不得不说,随着行业的竞争加剧,互联网产品迭代速度越来越快,QA 与测试工程师都需要在越来越短的测试周期内充分保证质量。

    IDO老徐
  • 银行核心项目之测试阶段

    最近有小伙伴留言说「想了解核心系统建设中,冒烟、SIT、UAT、回归测试的重点,如何设计测试案例,或相关的资料推荐等」。

    测试开发社区
  • 【腾讯 TMQ 】移动 APP 自动化测试框架对比

    移动APP的UI自动化测试长久以来一直是一个难点,难点在于UI的”变”,变化导致自动化用例的大量维护。 从分层测试的角度,自动化测试应该逐层进行。 最大量实现自...

    腾讯移动品质中心TMQ
  • 移动APP自动化测试框架对比

    简介 移动APP的UI自动化测试长久以来一直是一个难点,难点在于UI的”变”, 变化导致自动化用例的大量维护。从分层测试的角度,自动化测试应该逐层进行。最大量实...

    腾讯移动品质中心TMQ
  • 如何组建测试团队(一)

    张树臣

扫码关注云+社区

领取腾讯云代金券