paint-brush
现在(和未来)的 GPT-3 培训程序员经过@mcsee
3,298 讀數
3,298 讀數

现在(和未来)的 GPT-3 培训程序员

经过 Maximiliano Contieri2022/06/27
Read on Terminal Reader
Read this story w/o Javascript

太長; 讀書

当前的市场正在寻找程序员使用流行的语言来堆砖。这些专业人员接受过生命周期非常短的特定工具的培训,然后就过时了。到 2021 年,已经有许多人工智能和机器学习的替代品能够执行低级编程和算法任务。我们必须专注于形成这些概念,以便专业人员可以轻松地从一种技术迁移到另一种技术(也是偶然的,因此很快就会过时)。人工智能的威胁仍然与自动化和过时职业的威胁相同。

People Mentioned

Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - 现在(和未来)的 GPT-3 培训程序员
Maximiliano Contieri HackerNoon profile picture

我用西班牙语写了一篇论文,并要求“其他人”重写它


去年,我用西班牙语写了一篇关于程序员未来的论文。


TL;DR:我没有手动翻译我的论文,而是决定用GPT-3完全重写它。


同样, 《卫报》GPT-3何时处于内测阶段。


当我要求翻译这篇文章时,它认为标题不够好。

所以它把它改成了现在和未来

😱可怕,不是吗?


让我们继续。


所以这是 GPT-3 重写的原始论文:


论文

// 将其翻译成英文并转换为技术文章:

概括

当前市场正在寻找程序员使用他们流行的语言来堆砖(1)。这些专业人员接受过生命周期非常短的特定工具的培训,然后就过时了。


目前有替代方案可以使用智能人进行计算机开发,这些人能够做出自己的决定并参与创作过程。


未来的程序员必须是优秀的和声明性的(2)。了解算法和复杂性以及专业知识的专业人员

介绍

世界上的大多数开发人员都在对旧系统进行更改,或者不得不使用复杂的预先存在的库或框架,他们几乎无法控制且几乎没有机会进行修改。 (3)


在当今的软件行业,几乎不可能找到从头开始开发的需要,完全是空白页。


程序员时代的特定寿命与流行的语言一起。这段时间通常不到十年,因此行业将未经过十年培训的专业人士视为过时。 (4)


在过去的几十年里,它们像所谓的灵丹妙药(5)一样流行,语言如 Visual Basic、C++、Java、Php、Perl、Javascript、Ruby、Python 和 GoLang。

其中一些已经停止使用,为新时尚留下了空间。 (6)


一般概念(Frederick Brooks 称之为必不可少的(7))在我们的第一个学术阶段得到了更好的吸收。我们必须专注于形成这些概念,以便专业人员可以轻松地从一种技术(布鲁克斯称之为偶然)迁移到另一种技术(也是偶然的,因此很快就过时了)。

威胁

到 2021 年,人工智能和机器学习的替代品已经很多,能够执行低级编程和算法任务 (8) (9)。

现代虚拟机(那些解释我们编程的高级语言并且存在于例如网络浏览器中的虚拟机)为我们优化了代码。 (10)


随着技术的进步,将不再需要低级程序员,就像今天没有人在寻找图书馆员一样(11)。类似于其他可自动化和过时的职业。 (12)


我们的职业仍然基于教授低级命令式编程,就好像我们正面临 1960 年代或 1970 年代的问题,当时专门的硬件是打孔卡和开放式磁带机。


我们教育我们的学生进行荒谬和过时的算法优化,非常接近机器语言,而远离我们在计算机解决方案中代表的问题的实体建模。


我们训练专业人员了解计算机的工作原理,并降低自己用计算机语言说话的能力,形成低层次的心智模型,并尝试以图灵机处理的算法方式进行推理


然而,今天我们可以开发具有多层抽象的语义模型,因为我们接近声明性心理模型,同时远离机器的可计算抽象。最具声明性的编程语言允许我们对模型进行推理和推断规则。针对这种趋势,我们的学生根据 1 和 0 编写指令。


摩尔定律 (14) 告诉我们硬件的变化速度及其处理能力的指数增长。在软件方面,我们受到几十年前的现实和培训师的惯性的线性限制。与马尔萨斯经济理论(15)类比,我们需要赶上硬件曲线,才能在机器为我们做之前释放我们所有的潜力。


基于 60 年代和 70 年代处理器和存储的时间限制,缺乏对现实的抽象和理解是一种惯性思维的症状。这些限制今天仅限于非常特定的领域,并且不能代表我们今天作为软件工程师在大多数工作中必须解决的问题。 (16)

替代方案

我们需要培养通才,而不是理论家。了解软件工程的基础和基础的人,可以适应基于当前工具的意外实现,也可以适应我们今天还不知道的未来工具。


软件设计、生命周期模型、团队合作和构建共享理论 (17)、持续集成和部署或架构等概念比学习最大限度地减少 CPU 使用率、使用 React、Vue 框架或 Keta 库更重要.


“很难做出预测,尤其是关于未来的预测”。这句话出自伟大的尼尔斯·玻尔,告诉我们在尝试预测未来时应该小心谨慎。

套用 2004 年图灵奖 (18) Alan Key 的话,他说:“预测未来的最好方法是发明它”。


我们不确定机器自动化的道路会是什么,但我们可以预测,我们行业中最具创造性和工程性的部分应该是自动化之前最后倒下的堡垒之一。


下一代软件开发人员将不得不将他们的技能集中在设计、对现实世界建模以及创建与问题域一起发展的抽象,以避免构建过时和遗留软件 (19)。


这种战略方法不仅限于发展职业。在数据科学中也存在类似的问题:数据科学家专注于优化现有算法,而不是培训通才型专业人员,他们能够通过一系列解决方案和良好的标准来了解我们国家的学术和商业问题,以确定在每种情况下选择哪个。他们应该接受培训以模拟实际问题并评估不同的可能解决方案。


数据科学专业人士有各种各样的工具来调整他们的模型。我们距离找到第二个能够用通用解决方案解决特定问题的“超级算法”(20)还很远。我们未来的专业人员拥有唯一可以合理解决各种特定问题的通用计算机:他们的聪明才智。


我们的责任是用真正的问题来喂养和刺激这些大脑,而不是用计算机更有效地解决(已经在 2020 年)的玩具解决方案。


矛盾的是,通过要求他们对机器执行低级优化来浪费我们的大脑是优化我们最昂贵的资源的最糟糕的方法。


从历史上看,我们一直优先开发非常具体的理论工具。这在科学中是非常普遍和可取的,因为理论进步通常先于具体实施和使用几十年。


然而,在软件开发中,发现和发现大多是在学术界之前的私营部门。我们的专业人员必须接受超越偶然流行技术和语言的方法和概念的培训。这就产生了市场之间的紧张关系,市场希望“工具专家”在完成其 5 年或 10 年的时尚周期时将其丢弃。


我们的专业人员不应该是一次性的或可回收的。我们必须对他们进行技术培训,他们必须不断更新自己,就像医学、物理学或生物技术等其他职业一样。

我们需要教什么?

除了构建和团队合作等“软”技能(因为软件来自集体活动)(17),我们必须教授设计和原型技术来验证我们的高级解决方案。


至于软件,必须教授解决方案设计,关注我们模型的行为,并套用我们今天使用的大多数算法的历史作者 Donald Knuth (21),避免因为我们想玩游戏而过早优化机器比我们统治得好得多。

机会

对于任何具有良好学术水平的国家(例如阿根廷)来说,培养人才都是一种可行的选择。


投资培训优秀的软件工程师是一项战略决策,也是一个起飞的机会,已经被爱沙尼亚、爱尔兰、以色列和印度等许多其他国家利用。 Sadosky 基金会目前正朝着这个方向努力。 (22)


在阿根廷,我们拥有优秀的教师、良好的英语水平、无与伦比的与美国和欧洲对话的时区,以及与最发达国家兼容的文化。我们需要优先考虑信息技术,并在其中培训智能和声明性工程师,而不是机械化程序员和低级优化人员。

我们应该教我们的工程师什么?

我们的专业人员必须具备编程、算法、复杂性和数据库的基本知识。


最重要的是,他们必须学会基于持续集成和持续部署模型进行设计,通过自动化测试,使用敏捷技术,如测试驱动开发。 (23)


生成的软件必须是声明性的并基于所需的行为(并在自动化功能测试中指定);我们必须停止思考基于数据类型和文件和字符串操作的 60 年代和 70 年代的主流范式,而专注于高级模型,这些模型伴随着我们想要表示的现实世界任何方面的模拟来解决问题一定的问题。 (24)


基于行为的设计技术与时尚的偶然技术无关,这使得 30 年前受过这些概念培训的工程师即使在今天也能够做出具体的发展。


不幸的是,这种情况并没有被那些主宰一些流行语言的程序员所复制,这些语言几乎没有用处,这使得他们在劳动力市场上找不到好的选择。矛盾的是,充分就业的行业会因为无法适应而抛弃这些专业人士。 (25)


目前,这种变化更加令人眩晕。除非我们聪明而博大精深,并且接受过适当的培训,否则技术的持续时间要少得多,过时会困扰着我们。

未来的工作

这是一篇观点文章。作为支持当前论文的未来工作,我们应该进行定量研究,包括员工流动率(25)、按年龄划分的每项工作的平均时间和完成的研究等数据。

为此,我们必须在多学科方法下使用与社会科学相关的技术。

结论

未来已经到来。我们不太了解程序员的工作在 5 年或 10 年后会是什么样子,但我们有强烈的迹象表明,这与编写基于数据结构的算法无关。我们必须培训能够快速理解现实生活中的问题并知道如何构建具有非常小的概念飞跃的模拟器的专业人员,以便他们能够随着我们今天正在解决的问题而发展。

致谢

本文的部分想法源于布宜诺斯艾利斯大学精确科学学院计算机科学学位软件工程课程的教学工作。

  1. 语言
  2. 声明式编程
  3. 旧代码
  4. 过时的程序员
  5. 没有银弹
  6. 时尚语言
  7. 没有银弹
  8. 深度编码器
  9. 增强编码
  10. 处理虚拟机
  11. 过时的图书馆员
  12. 阿根廷工作的未来
  13. 图灵机
  14. 摩尔定律
  15. 马尔萨斯增长模型
  16. 商业软件
  17. 理论建设
  18. 图灵奖
  19. 继承的软件
  20. 通用人工智能
  21. Knuth - 计算编程的艺术
  22. 萨多斯基基金会
  23. 测试驱动开发
  24. 对象思维
  25. 死语言
  26. 程序员流失率

翻译准确而优美。


我用 Grammarly 和 Hemmingway 应用程序检查过,只发现了一些语法错误。


举个例子:

Trabajo Futuro(未来工作西班牙语)

Este es un artículo de opinión。 Como trabajo futuro para apoyar la presente tesis deberíamos realizar un trabajo cuantitativo incluyendo cifras de rotación de empleados (25), tiempo promedio en cada trabajo según la edad y los estudios realizados 等 Para ello debemos utilizar técnicas relacionadas unfoquelas多学科。



在 GPT-3 中翻译为:


这是一篇观点文章。作为支持当前论文的未来工作,我们应该进行定量研究,包括员工流动率(25)、每个工作的平均时间(根据年龄和所进行的研究等)。为此,我们必须使用与社会科学相关的技术从多学科的角度。



虽然谷歌翻译产生:


未来的工作

这是一篇观点文章。作为支持本论文的未来工作,我们应该进行量化工作,包括员工流动率(25)、按年龄和所进行的研究的每项工作的平均时间等。为此,我们必须使用与社会科学相关的技术多学科方法。

模型校准

我使用了温度为 0(随机性)和最大长度为 2000 个标记的 text-davinci-002模型

GPT-3 意见

你对这篇文章有什么看法?


我认为这篇文章对编程的未来以及程序员适应变化的需求提出了一些有效的观点。我同意该行业正在朝着更自动化的解决方案发展,这最终将导致对程序员的需求减少。但是,我认为总是需要能够理解和解决复杂问题的程序员。


😱(又吓到了!!)

元结论

我肯定会继续使用 GPT-3 编写技术文章来改进它们。