AI 时代,学习编码依旧至关重要?

当前,人工智能技术正以前所未有的速度渗透到各个领域,深刻地改变着我们的工作与生活。

特别是在软件开发行业,AI编程助手如GitHub Copilot、AlphaCode,以及各类无代码/低代码平台的崛起,似乎预示着编程的门槛正在迅速降低,程序员们纷纷拥抱人工智能来提升生产力,传统程序员的角色也面临着被弱化的风险。

这一趋势引发了一个广泛且深刻的讨论:

“在AI如此强大的今天,我们还有必要学习编码吗?”

“随着越来越多的学生开始使用 ChatGPT 和 GitHub Copilot 等 AI 编码辅助工具,计算机教师应该如何调整他们的课程?”

“在人工智能教育应用飞速发展的今天,学校的编程教育应该学些什么?如何去应对?”

Anthropic 首席执行官 Dario Amodel 表示,未来代码将完全由 AI 生成,他预测 AI 将在六个月内生成高达 90% 的代码。

这促使 Replit 创始人兼首席执行官 Amjad Masad 给出建议:“我不再认为你应该学习编程了。”

AI和无代码工具显著提升了软件开发的效率,使得非专业人士也能参与到应用创造中,这无疑是技术的巨大进步。

然而,这种进步是否就意味着传统编码技能的价值正在消退?

在自留地君看来,并非如此。

掌握编码能力使我们能够更深入地理解软件是如何运作的,数据是如何流动和处理的,算法的逻辑和效率是如何影响结果的。

这种深层理解有助于我们做出更明智的技术选型决策,更有效地利用工具,并能预见潜在的问题和风险。

在关键时刻,具备阅读、修改、优化甚至重构代码的能力,意味着拥有解决问题的最终控制权,而不是完全受制于外部工具或服务的“黑箱”。

于此同时,我们应该意识到,编程不仅仅是写代码,编程的过程本身就是一种严谨的逻辑思维训练。从理解需求、分析问题,到设计算法、编写代码,再到调试纠错、优化性能,每一个环节都要求清晰的思路和严密的逻辑。

苹果公司创始人史蒂夫·乔布斯曾说过一句广为流传的话:“每个人都应该学习如何编程,因为它教会你如何思考。”

在AI时代,他的这句名言似乎显得尤为深刻。

本质上,编程正在从专业技能转变为一种技术素养。

就像现代商务人士需要会做PPT而不必成为平面设计师一样,未来职场人需要会修改代码片段而不必成为专业工程师。

这种能力将成为区分”技术消费者”和”技术创造者”的关键界限。代码生成可以因生成式人工智能而自动化,思维不能自动化。

AI可以成为强大的执行工具,但驱动这些工具、使其发挥最大效能的,依然是人类的思考能力。

思维自动化会毁了人的思维,会在未来难以培养真正的程序员。

当思考过程被AI替代,我们可能只停留在问题表面,失去了深度学习和自主创新的机会。

习惯性地规避主动思考,将认知负担转移给外部工具,长期以往可能削弱个体独立分析和解决问题的能力。

不仅如此,我们也必须充分地意识到,人工智能生成代码和网站,无代码/低代码平台极大地降低了应用开发的门槛,使得不懂编程的业务人员也能快速搭建简单的应用程序。

虽然它们可以用来创建简单的应用程序或网站,但它们不适合构建复杂的系统或解决独特的问题。

人工智能生成编程和无代码工具有其局限性,这些工具并非万能,其固有的局限性决定了它们在许多场景下无法替代传统的编程开发。

其输出基于预先确定的输入(例如,模板和模块),这可能会限制创造力和创新。

相比之下,编码允许开发人员根据特定需求创建定制的解决方案。通过编码,开发人员可以完全控制开发过程,并可以尝试新的想法和概念。

因此,从这个意义上说,人工智能时代的到来,并非宣告了编程技能的黄昏,反而对其提出了更高层次、更综合性的要求。

编程不再仅仅是“写代码”这一单一动作,它升华为一种理解、设计、创造和与智能系统高效协作的核心语言。

它赋予我们洞察技术本质的能力,锻炼我们解决复杂问题的逻辑思维,并帮助我们在日益智能化的世界中保持主动和清醒。

人工智能是这个时代最伟大的技术浪潮之一,它带来了效率的飞跃,也带来了认知的挑战。

技术进步越快,对高技能的需求也变化得越快。

虽然人工智能可以增强学习,但它无法取代我们学习编程时获得的技能和态度。

此外,理解代码比以往任何时候都更加重要,这样我们才能评估和修改人工智能工具的成果。我们应当积极拥抱AI,利用其强大的能力。但与此同时,我们更不应放弃思考的深度、创造的乐趣以及对技术本质的探索。

学习编码,正是AI时代赋予我们每一个人的,用以理解世界、驾驭未来、保持个体主动性与核心竞争力的关键钥匙。我们坚信计算思维和编程仍然是科技世界中必不可少的技能。事实上,学习编程现在比以往任何时候都更加重要。

不过,我们必须看到,在几乎所有程序员都在依赖 Github 编程的时代,在人工智能可以快速生成代码的大背景下,中小学的编程教学必须要做出改变,

从编程”语法记忆”转向”计算思维培养”。毕竟,编程最大的难点不是编程语言本身,而是让学生“把自己头脑中的想法转换成编程的逻辑”。

传统笔试被过程性评估替代。编程教学中的评估将重点考察学生的“debug过程”而非最终结果,评价中可能会更多地引入用注释/文档说明算法意图之类的“代码可解释性”评分。

当前快速崛起的人机协同编程实践,催生学校编程教学中构建”AI-人类”协作的人机协同教学框架。

Photo by Johnnie Walker