0°

ChatGPT时代程序员生存指南,这四步很关键

  这是最近AI圈新晋嘴炮哥,Stability AI首席执行官伊玛德·莫斯塔克又一惊人言论。

  此话一出,立刻引得一众科技圈大佬吐槽,直指大错特错。

  ChatGPT的出现催生出一批代码生成工具,AI取代人类话题已久,但对“程序员饭碗不保”这种观点,反对之声并不少见。

  最近,IEEE Spectrum发布了一篇GPT时代程序员生存指南。

  文章从四个方面,表述在大模型为核心的编码时代,程序员如何不被替代,并认为现在还无法做到代码100%靠AI生成,具备编程素养的人类程序员依然很重要。

  接下来,就来具体看看这篇文章的主要观点。

  基础是一切

  尽管现在已经有很多基于AI的编码助手,可以帮助完成生成代码。

  但编程的基本原则和前提仍然是理解。

  Python软件基金会研究员、软件公司Explosion联合创始人兼CEO伊内斯·蒙塔尼(Ines Montani)说:

  AI本质上是大模型的统计输出,程序员的工作不仅仅是编写多少行的代码这么简单。

  当前,程序员仍然需要具备最基础的“阅读、理解”自己和他人代码的能力。

  比如,通过对代码进行分析和调试的能力,以及对问题解决和算法设计的理解,才能将所编写的代码融入到更大的系统中。

  此外,事实证明,良好的软件工程实践比以前更有价值,包括规划系统设计和软件架构。

  “人类编码员仍然必须弄清楚一段代码的结构、组织代码的正确抽象以及不同界面的要求”,MIT计算机科学和人工智能实验室副总监兼首席运营官Armando Solar-Lezama说道。

  通过理解问题、拆解问题、设计算法以及实施和测试解决方案,人类编程人员能够提供独特的洞察力和创造性解决方案,而这些是AI无法完全取代的。

  找到适合的工具

  现在已经有大量工具被应用到编程领域,包括GitHub Copilot、ChatGPT、Bard等,但每个工具交互方式都有差异。

  例如,GitHub Copilot和其他AI编码助手可以增强编程过程,提供代码建议。

  而ChatGPT、Bard这类则更像是一个对话式AI程序员,可以用来回答关于API的问题或生成代码片段。

  此前GitHub曾采访了500名开发人员,其中92%的人表示在工作和私人时间都使用AI编码工具。

  AI是一个发展迅速的领域,保持开放的态度,持续尝试使用不同的AI工具。

  同时,要考虑适当的使用场景。生成式AI可以为学习新的编程语言或框架提供快捷途径,也可以更快地启动小型项目并创建原型。

  而想要让对话式AI程序员发挥作用,就需要清楚了解“如何与AI沟通”。

  提到沟通,这就涉及提示工程。

  学会与AI沟通

  对话式AI程序员,就像一个具备丰富知识但经验不多的实习生,需要引导。

  OpenAI创始人Sam Altman就直接表示:

  能够出色编写Prompt跟AI对话,是一项高级技能。

  让AI从头开始编写整个程序,不仅无法最大程度发挥AI的能力,还可能获得一些不相关的回复。

  这就需要将一个问题分解为多个步骤,并逐个解决每个步骤以解决整个问题的分而治之策略。

  进一步拆解需求,让AI为每个任务编写特定的函数。

  因此,了解AI和机器学习的基本概念,学习LLM工作原理及其优势和局限性也是很有必要的。

  现在已经有很多关于“提示工程”的教程,之前DeepLearning.ai创始人吴恩达与OpenAI开发者Iza Fulford联手推出ChatGPT提示工程。

  另外,“ChatGPT提示工程”课程的讲师之一“Iza Fulford”,此前还编撰了OpenAI Cookbook(官方手册)。

  手册讲述了大量GPT相关的使用案例,能帮助快速上手并掌握GPT模型的开发与应用。

  关于模型和机器学习基础知识的内容,可以看看Jay Alammar的Illustrated Transformer。

  独立思考和批判思维

  相关数据显示,目前GitHub平台上的所有代码,有41%都是在使用CoPilot辅助下生成的。

  用大模型生成代码,效率很高,但也有一些问题。

  首先,大模型会产生不准确、错误的代码。另外,也可能生成包含漏洞的代码。

  此前,加拿大魁北克大学的四位研究人员就发现,ChatGPT生成的代码往往存在严重的安全问题,而且它不会主动提醒用户这些问题,只有在用户询问时才会承认自己的错误。

  其次,就是隐私问题。程序员在开发过程中输入的代码,平台是否会非法获取。

  虽然现在一些代码工具公司,比如Tabnine承诺企业版会严格保密业主隐私,但这一问题仍然不能忽视。

  因此,在使用由大模型生成的代码时,我们需要保持批判性思维,仔细检查和验证结果,并对其进行评估。

  每一个新的技术突破和重大的范式转变都带来了一系列新的可能性,人工智能也不例外。

  比如,2010年云计算的兴起,人们担心传统IT可能不再重要,但实际情况却完全不同。

  事实上对云技术相关职位的需求大幅增加,如云计算专家、云架构师和云工程师等。

  程序员需要将AI作为一种工具,将其纳入他们的工作流程,并认识到这些工具的机遇和局限性,同时依靠自己的编码能力来保持活力。

  IEEE认为,现在就说程序员将被替代,还为时尚早。

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论