AI足以胜任普通人的编程老师
2023-04-11任亚飞
任亚飞
最近火爆全网的类ChatGPT应用包括新必应和文心一言等,除了可以陪你聊天互动外,对撰写邮件、论文、脚本,制定商业提案,创作诗歌、故事等文案类工作也很在行。其实它们还有一项基本技能那就是能高速写代码也能帮程序员检查程序错误。很多和ChatGPT“聊过天”的程序员们纷纷感叹“只有你想不到,没有ChatGPT办不成的。”那么ChatGPT们能在编程方面对大多数不会编程的人有帮助吗?
革命型编程教学老师
当我向ChatGPT提出:“帮我写个打飞机的小游戏吧。”结果令我很吃惊,不到一分钟就用Python给我生成了这个游戏。
作为一个编程小白面对一串代码当然没法下手,于是我又问“我要怎么运行这个游戏呢?”它的回答是:先下载Python编辑器,创建项目,复制粘贴代码,编译保存,打开运行。每一步都很详细地介绍出来,还能对某个有疑问的步骤继续提问。同样的问题在新必应和文心一言中也获得了较好的反馈,新必应给出的程序需要载入背景和飞机图片,面对黑色的游戏运行框完全不懂编程的人继续提问也能获得解答。这对于编程“小白”来说真的是福音,完全就是一个智能老师。
接着我又让ChatGPT幫我处理文本数据,我的想法是把这个txt文件转换为3列的Excel表格。
需求如下:用Python代码实现txt文本转换为Excel表格,文本的格式是xxx————xxx————xxx。
描述得越具体它给出的答案就越准确,就跟你在生活中跟人提问一样。从结果上看,它给出的答案很准确,还解释了语句和函数的功能,只需要把文件名修改一下就能跑起来,最后它还不忘了提醒你要安装pandas库。在此基础上,我接着提问:如果不用第三方的pandas库能否实现?
它推荐我使用标准库中的CSV模块配合openpyxl库来实现,代码差不多,还贴心地在关键代码处给了注释。但是我不知道openpyxl是个什么库,我接着问它:openpyxl要怎么导入。
ChatGPT告诉我使用“pipinstallopenpyxl”命令安装库,在代码中使用“importopenpyxl”语句导入openpyxl库。
我根据提示把代码复制到编辑器,安装好openpyxl,修改了文件名,程序没有报错和预期的一样得到了正确结果。
作为程序员在ChatGPT出现之前想要完成任务,首先需要搜索知道任务可以使用pandas或openpyxl库,接下来还要翻看这两个库的说明文档和实例,这个过程中肯定要经过多次搜索和筛选,从其他程序员留下的各种内容中找到答案。而ChatGPT直接给了你一个确定的答案。
不过,如果你真的是零基础什么都不懂的小白,给你一串完成的代码也不会运行,遇到报错没法定位或者debug时,还是很难完成目标的。这就好比一个开手动挡的老司机去开自动挡会非常轻松,如果你驾照都没有就想直接上手自动挡还是非常危险的。所以ChatGPT只是大幅度降低了编程使用的门槛,但门槛还是存在的,至少需要学习基础的Python知识,这样才能知道编程能够帮助我们完成哪些需求。不需要会写代码但需要理解代码的大意,这样遇到问题时才知道怎么向ChatGPT提问。
例如,我用新必应找到了1960年至今的金价,让它帮我画了一张历史金价的折线图,用给出的Python代码画出图形后我觉得坐标轴的说明文字用中文比较好,就自己修改了代码中的文本部分。再次运行发现中文显示成了方块,再次询问后才知道需要再填两行代码解决中文字体和负号的显示问题(虽然其实没有用到负号,但负号也会显示成方块)。快速而完美地解决了问题。
利用ChatGPT帮助学习
作为初学者,我们怎么利用ChatGPT来学习编程?如果我可以重新选择我的第一门编程语言,我会从一种可以让我轻松进入代码世界的语言开始。这非常重要,因为没人想在学习时经常遇到难以克服的困难并感到深深的沮丧!你的第一门语言应该可以帮助你轻松学习核心编程概念,无论你是抱着怎样的目的学习编程,这些概念都是必不可少的。如今大多数人认为JavaScript和Python是编程入门的好选择。如果必须在它们之间做出选择,我肯定会选择Python,因为它的简单性和多功能性(仅代表个人意见)。选了一门应用广泛的编程语言,一旦你在一种编程语言方面打下了坚实的基础,就可以根据兴趣继续学习其他语言,并逐步建立你自己的主流框架。
作为初学者,我们总不能随时随地问老师问题,并获得满意的解答。而现在不必担心了,可以尽情社恐,跟着ChatGPT这个老师,最低级的代码问题我们随便问。对于ChatGPT来说,问题没有高低之分,因为机器人它不会对我们提问的水平做出评价。
比如:我们忘记了如何将两个字典合并。ChatGPT不会嫌弃使用操作符“|”这种操作低级,还会很贴心地列出四种方式。
ChatGPT老师也可以帮助我们进行更好的在线学习。
比如,我们正在学习一个编程讲座的视频,但是跟着视频学习运行的代码却遇到了错误。我们不必盲目地在百度中搜索各种解决方案,完全可以让ChatGPT帮助我们直接分析整个代码脚本,看看问题出在哪里。你还能让ChatGPT根据你的要求把代码完善升级,它给出替代解决方案更完美。
你也可以對ChatGPT提出各种要求,不用有任何顾忌,它会让你的好奇心随心所欲地自由发挥。
在经过一段时间的编程学习后,还可以利用ChatGPT老师来巩固并提升学习成果。比如提出一个能让我们保持动力检验能力的综合项目,提供有关如何实现任务的详细步骤。这样我们就可以知道复杂应用需要的实践步骤。如果自己亲自开发一个项目,也可以使用ChatGPT来审查代码,并且还可以为我们优化代码的可读性、代码效率,还可以要求它来帮忙调试代码。实在不行,我们也可以让ChatGPT编写整个脚本来执行任务并从它给的解决方案中进行学习和理解。
编程思维价值何在?
虽然我们开始进入自动编程时代的大门,但这不代表作为个人就可以不用再学编程了。相反,编程思维和正确地学习编程变得更加重要了。无论是数学、物理等学科知识,还是编程、机器人以及钢琴、舞蹈等非学科知识,这些学科的内容都是我们在成长过程当中的学习载体,通过这些载体不断帮助我们去发展思维、习得能力。“正如计算器发明之后人类没有放弃学习算数,电脑和输入法发明之后人类没有放弃练习写字。”这是因为人们在建构知识的过程中,并不是只积累了知识本身,而是在这个过程中锻炼了我们的思维方法与能力,这个能力是我们永远不可分割的一部分。未来,自动编程可以让普通人也可以编写一些程序,但如何架构一个程序、如何对任务有结构地描述将成为一个程序员越来越重要的能力,编程思维能力的训练会变得更重要,编程思维与解决问题的能力会越来越被重视。
ChatGPT会彻底改变编程与软件行业,但它一定是程序员的辅助者而非替代者。在这个技术变革的时期,我们更要学习编程,成为新技术的主导者而不是牺牲者。
我们认为,ChatGPT将对不同人群有着不同的影响,对普通人来说,ChatGPT的影响是多方面的。比如:个人助理:ChatGPT可以作为一个个人助理,回答各种问题,提供日常生活中的实用信息和建议。
学习和教育:ChatGPT可以为学生提供辅助教学工具,帮助他们在学习过程中更好地理解知识和掌握技能。
心理健康:ChatGPT可以为那些需要帮助的人提供心理支持和慰藉,为他们提供安慰和建议。
社交互动:ChatGPT可以作为一种社交工具,帮助人们在社交网络上进行更加自然的交流。
语言学习:ChatGPT可以作为一种语言学习工具,为人们提供了解不同语言和文化的机会。
当然,随着ChatGPT和其他大型语言模型的发展,也存在一些潜在的问题和风险,如个人隐私和数据安全问题、信息误导和虚假信息问题等。因此,在使用ChatGPT时需要注意这些问题并采取必要的预防措施。
对于他们来说,ChatGPT的出现对程序员的影响更加迫切和实际。首先,ChatGPT可以帮助程序员更加轻松地与机器人和其他智能设备进行交互。传统的交互方式需要使用特殊的语言或者输入指令,而使用ChatGPT可以直接使用自然语言与智能设备进行交互,从而更加方便。这使得程序员可以更加有效地开发智能应用程序,因为他们可以使用自然语言与智能设备进行交互。ChatGPT可以让程序员更加灵活地与机器人沟通,从而更快地了解项目的需求,提高项目的满意度。
其次,ChatGPT可以帮助程序员更好地理解自然语言处理的概念和技术。这种模型可以生成自然语言,因此程序员可以使用ChatGPT来学习自然语言处理的各种技术和方法。此外,ChatGPT可以为程序员提供一个直观的学习环境,让他们更好地理解自然语言处理的原理和应用。这可以帮助程序员更好地开发自然语言处理应用程序。
最后,ChatGPT可以提高程序员的工作效率。程序员可以使用ChatGPT来生成文本,回答问题。这可以帮助他们更快地完成工作,减少输入时间。此外,ChatGPT可以帮助程序员更好地理解客户需求和反馈,从而更好地满足客户需求。ChatGPT可以为程序员提供一个高效的工具,让他们更好地完成工作任务。随着ChatGPT技术的不断发展和成熟,它成为语言处理的API接口,直接作为各种应用、硬件和游戏的组成部分。
ChatGPT的出现为各种人群提供了更多的机会和挑战。我们需要不断学习新的技术和方法,以应对ChatGPT带来的变化。如果能更好地利用ChatGPT完成工作里的任务,将大幅提高你的工作效率,这也将为你的提升提供更多的机会。