「吴恩达CS230」AI辅助编码时代下的新型生产力与职业发展
内容概述
概述
Andrew Ng在CS230课程中梳理了AI辅助编码工具(如Copilot、Gemini CLI等)对编程和开发者职业发展的深远影响。他强调:AI正在极大改变编程方式,个体生产力显著提升,快速原型和创新变得前所未有的高效。新一代开发者不仅要精通AI工具,更要打牢计算机基础。随着工作要求变化,纯靠传统编程经验难以满足行业需求,精通AI辅助和新技术的工程师成为企业核心。课程鼓励所有人跨专业提升AI能力,迎接更高生产力与创新的未来。
主题梳理
一、AI辅助编码革新编程模式与生产力边界
Andrew Ng开篇对AI辅助编码的普及现象做了现场调研,大部分学生已日常使用Copilot、Gemini CLI等工具。他坦言,“现在再也不希望手动编码”,AI辅助让开发体验颠覆性地提升。
编程工作可区分为“快速原型开发”和“生产级软件开发”。对原型阶段,AI辅助最大幅度提升了实验效率——学生和开发者可以大胆尝试各种想法,通过沙盒环境快速决策,而无需过分担心大规模系统的安全性、可靠性和可扩展性。
比如学生咖啡馆偶遇手动写代码人士都让他略感“时空倒错”——这反映出AI辅助模式已成为行业主流。
但对生产级别软件,Andrew Ng警示AI工具潜在风险:如自动化工具错误擦除数据库记录等。他和团队普遍采取“有策略的谨慎”——生产环境下更强调代码审查和工具甄别。
快速原型“失败率高”不应被视为负担。Andrew Ng坦言:“只要原型成本足够低,就算做20个只成1个也值得”。这是现代创新节奏的常态和优势。
二、AI加速创新与反馈迭代循环
在构建AI与软件应用时,“你永远无法100%预测结果”。机器学习成果不仅取决于代码,还深受数据影响。真实世界数据有奇妙变量,必须通过实践应用才能洞察——如语音识别中遇到意外的口音、噪音、说话习惯等。
因此,原型开发与用户测试的速度决定了团队对数据和需求的响应能力。现代开发讲究“快速构建-快速用户反馈-快速修正”的高效循环。
“快速行动,打破常规”固然被争议,但他主张“快速且负责任”更适宜AI开发。只有足够快,才能及时发现漏洞、调整方向并控制风险。
具备高原创性和迭代能力的团队,最终往往也是实际责任感最强的团队,因为他们通过不断输出,掌握了迭代的主动权,更易及时修正问题,实现创新突破。
三、AI辅助与编程基础的协同新范式
“不要学编程”已成最糟糕职业建议——AI让编程门槛降低,应吸引更多人进入,而不是减少。回溯历史,每当工具进步、编程更易,学习人群总会扩大(从COBOL到IDE到AI辅助)。
Andrew Ng点出现象矛盾:美国CS毕业生失业率上升,但企业却招不到会AI和深度学习的新人才。关键问题在于课程老化,人才技能未更新。传统“没有AI能力”的开发者需求骤减。
他以招聘为例,现在不会雇用只会纯手动编码的工程师,也不会选择对AI毫无了解但经验丰富者。相反,倾向选择精通AI的年轻开发者,即使只有一两年经验也能脱颖而出。
但最顶级的开发者,往往是“有深厚CS基础+熟练AI工具”的结合。这种“双修”能力让他们能像艺术家一样,精准驾驭AI创作和控制编码细节,输出质量远超只靠prompt的用户。
四、面向未来的跨界融合与AI职业新动能
Andrew Ng鼓励所有专业的学生都应学AI和编程。未来AI与编程门槛将会更低,教育、气候科学、工程甚至人文领域的生产力都极大提升。
现代企业青睐的技能组合是“具备AI技术栈+创新能力+跨界项目经验”。仅靠过时技能,无视AI趋势,已难以立足。企业招聘标准也在调整,有些尚未建立起深度AI面试体系,需要业界和高校共同推动能力评价更新。
非技术专业也可借助AI成为“创造者”,为社会提供独特价值。课程鼓励大家不仅是AI的消费者,更应主动创造,用AI工具赋能自身领域创新。
五、AI领域现阶段的核心技能体系与新兴工具
当下生成式AI领域,除了会用AI辅助编码,还需掌握一系列新兴技术,如RAG(检索增强生成)、向量数据库、多模态大模型、模型安全护栏(Guardrails)、知识图谱与LLM集成、模型评估与微调、agentic workflows(代理型工作流)等。
面试和实际开发中,企业更看重“会用AI工具+掌握新型AI技术栈”的候选人。这是高生产力团队和个人的明显特征,决定了创新速度与能力上限。
框架与心智模型(Framework & Mindset)
1. 快速原型—负责任创新模式
开发者应在AI辅助下,最大化快速原型能力,广泛试验各类创新方案,降低失败的心理与成本压力。这要求团队建立高效的反馈循与实践机制。
在安全、可控沙盒中,支持开发者“大胆试错”,以安全、非生产环境推进实验项目。主张团队可以以极低成本尝试20种方案,哪怕只有一两种能落地,也价值巨大。
速度是发现数据异常、用户需求和潜在技术瓶颈的第一步。与其战战兢兢慢慢来,不如在安全框架下“行动迅速并负责任”地推进创新,这样能更早发现和纠正错误,实现产品快速成长。
创业型和创新型团队尤应培养这样的节奏,将批量实验和快速淘汰机制作为产品开发主流方法,极大提升整体创新产出。
2. AI新时代下的技能升级与择业观
只掌握传统编程技能将被淘汰,精通AI辅助编码及新兴工具(如RAG、向量数据库、多模态LLM等)才是竞争力核心。“双修”能力(AI工具+计算机基础)成为价值最高人才标配。
新技能更新极快,企业招聘偏好已根本变化。但高端岗位对深入理解生成式AI、深度学习底层原理的复合型人才仍有极大渴求。
鼓励同学跨界学习、拓展视野,不仅在技术圈内卷,更要服务于教育、气候、工程等多行业,发挥更广泛社会价值。
3. 以“创造者”视角重新定义未来
Andrew Ng期望每个学生都成为“创造者”,不仅做AI工具的使用者,更要主动用AI进行创新与赋能。AI工具发展越快,创造者的能力和生产力就越大。
鼓励大家打破本专业壁垒,把AI辅助应用扩展到任意领域。教育、气候、机械工程等,懂AI和编程者将拥有最快创新节奏。
主张终身学习和主动分享的心态,帮助身边所有人进入AI与智能工具领域,实现更普惠的成长和社会价值最大化。
基本信息
Title: Stanford CS230 | Autumn 2025 | Lecture 1: Introduction to Deep Learning
Author: Andrew Ng, Kian Katanforoosh
URL: YouTube
内容实录:AI领域的趋势与洞察
这门课的好处之一是,Kian和我可以偶尔与大家分享我们在更广阔的世界里看到的一些东西。嘿,顺便问一下,你们中有多少人使用专门的AI辅助编码工具,比如Copilot、Cursor、Gemini CLI、Codex或者Windsurf?太棒了,几乎是所有人,但不是全部。有意思。
是的,编程领域发生的最激动人心的事情之一就是AI辅助编码。我个人觉得,我希望自己再也不用回到手动编码的时代了。这很有趣,我经常在周末去咖啡馆工作。几周前,我坐在一家咖啡馆里,旁边坐着一个正在手动编码的人,这看起来太奇怪了。我便问他(当然是以一种尊重的方式):“你在做什么?”原来他在做另一所大学的作业,要求手动编码。
我发现一个令人兴奋的事情是,个体程序员的生产力比以往任何时候都要高得多。我想和大家分享一下我的观察。我发现,在我所做的软件工作中,我可能会将其分为两类:一是构建快速粗糙的原型(quick and dirty prototypes),看看某个想法是否可行;二是有时我需要编写生产级别、企业级别的、健壮可靠且可扩展的软件。我发现,AI辅助编码在构建快速粗糙原型方面带来的改变是最大的。
而对于生产级别的软件,我的一个合作者今天早上就给我发了一条Slack消息说,他用的某个自动化编程工具(我就不说是哪个了)出了一个数据库迁移错误,把所有的数据库记录都清空了——幸运的是,这只是一个有五个用户的测试应用。但这种事确实发生了。所以我发现,对于生产级软件,我使用这些自动化工具时会更加小心。
然而,对于构建快速粗糙的原型,只要你不是以一种不负责任的方式发布软件,这些原型的依赖关系要少得多。你不需要与旧有的数据基础设施集成。接下来我要说的话可能听起来有点不该说,但我还是要说:我发现,当我运行代码时,人们常常担心软件的安全性、可靠性或保密性。我经常对我的团队说,如果你正在构建一个只在你自己的笔记本电脑上运行,并且不使用任何敏感信息的原型,那么除非你打算恶意攻击自己的电脑,否则安全要求可以降低。因此我发现,在构建快速粗糙原型时,拥有一个可以让你在其中快速操作的沙盒环境,意味着你可以更快地做出许多决策,而不用过多担心可扩展性、安全性或可靠性——只要这个沙盒环境能确保这些东西不会泄露出去,或造成安全漏洞。这正是让我们能够行动得更快的部分原因。
我发现,由于原型制作的速度加快了,只要你能以负责任的方式去追求创新想法,我的团队会越来越多地尝试20件事,然后看哪一件能成功。我知道很多团队在抱怨,许多概念验证(proof of concepts)项目最终都未能投入生产。你尝试了一些东西,但它行不通。有些团队对此感到焦虑。我其实有不同的看法。我认为,如果一个概念验证的成本足够低,那么就算你需要做20个才能找到那一两个真正有效的东西,又有什么关系呢?
在这门课中你会听到,无论是在构建机器学习应用还是很多软件应用时,你通常都不知道结果会怎样。这有一个特定的原因:机器学习算法的输出,既取决于你写的代码,也取决于你用来训练的数据。虽然你百分之百控制代码,但你通常并不真正知道,这个世界给你的那些奇妙而古怪的数据里到底有什么。
例如,我在多家公司、多种背景下都曾深入研究过语音识别。即使是现在,当我做语音识别时,我有时仍然会感到惊讶,比如,“哦,这份数据里带有某种口音的人比我想象的要多”,或者“人们说话的速度不知何故变快了”,或者“天哪,当人们在车里使用时,背景噪音真大”。即使我多次从事语音识别工作,最近一个应用中,背景中说话人的数量也让我感到惊讶。他们先跟我们说话,然后又去跟另一个人说话,再回来跟我们说,这让我们很困惑。
我发现,世界给我们的数据常常是奇妙而古怪的。只有通过构建一个系统,你才能开始发现数据中的这些东西,从而取得进展。对于很多软件应用也是如此,除了机器学习应用之外,我最终需要发现的很多东西是:用户到底想要什么?我百分之百控制我的代码,我可以写任何我想要的代码。但我无法控制你的用户会对你的系统作何反应。我发现,我们快速构建粗糙原型的能力,既能帮助我们发现数据中的内容,也能让我们接触用户看看他们是否喜欢,这使我们能够驱动比以往任何时候都更快的反馈循环,从而帮助我们构建越来越有价值的软件。
我知道,“快速行动,打破常规”(move fast and break things)这句口号名声不太好,因为它确实打破了东西。我发现有些团队从中得出的结论是,我们不应该行动得快。但我认为这是个错误。我通常对我的团队说的是:“快速行动并负责任”(move fast and be responsible)。尽管有各种关于AI导致人类灭绝风险或者其他在我看来有些奇怪的炒作,但我发现,当团队行动得非常快时,我们就能以一种负责任的方式实施、测试,并更快地发现问题并解决它们。我发现,我所知道的许多最负责任的团队,那些能够真正快速把事情做成的团队,往往是行动最快的团队之一。因为正是这种执行速度,让你最终能够实现它,弄清楚你的数据里有什么,弄清楚你的用户想要什么,这也是找出潜在问题并确保它们不会真正发生的最佳方式。
我假设这门课里的每个人都会编程。如果你还没学过编程,你可能暂时还不想上这门课。但我发现,有些人,包括非常高层的商业领袖,建议别人不要学编程,理由是AI会把它自动化。我想和大家分享这一点,不是因为我认为你需要学编程,而是因为我希望你们能帮我把这个信息传播出去:去告诉你们在其他院系的所有朋友,“不要学编程”这个建议,我们回头看时,会发现这是有史以来最糟糕的职业建议之一。
原因是,当编程变得更容易时,应该有更多的人去做,而不是更少。当人类从打孔卡片转向键盘和终端时,编程变得更容易了,于是更多的人学习了编程。当我们从汇编语言转向当时现代的编程语言时,编程变得更容易了,更多的人学习了编程。我回头查了关于COBOL——一种非常老派的编程语言——被发明时的文章,当时真的有人说:“哇,现在我们有了COBOL编程语言,编程太简单了,谁还需要程序员呢?”显然,事实恰恰相反。从文本编辑器到集成开发环境(IDE),再到AI辅助编码,随着编程变得越来越容易,应该有更多的人去学习编程。
另一件我看到的事情是,我知道最近计算机科学毕业生的失业率有所上升,比过去十年都要高。我知道这对正在学习计算机科学的人来说,引起了一些忧虑。我想分享一下我的看法。
事实是,我在硅谷内外看到的情况是,我们根本找不到足够多具备这些技能的人。我知道很多大企业愿意招聘一千名具备生成式AI、深度学习和机器学习技能的人,但他们很难找到这样的人才。相反,仍然有一些大学的课程设置自2002年以来,也就是生成式AI兴起之前,就没怎么变过。所以我确实看到,许多新的计算机科学毕业生,不是斯坦福的,而是来自全国各地的,正在为找工作而挣扎。因为不幸的是,那种旧的、没有AI赋能的技能组合,需求已经没那么大了。
就我个人而言,今天我不会雇佣一个不知道如何使用AI辅助编码的软件工程师。这完全没有道理。就像我不会雇佣一个还在用打孔卡片而不是键盘和终端的人一样。我认为,当世界从打孔卡片进化到键盘和终端时,打孔卡片的工作岗位还存在了一段时间,但最终它们都消失了,因为这不再有意义。所以今天,手动编码的工作仍然存在,可能在一些非常底层的、AI不擅长的专业领域。事实证明AI在某些类型的GPU编程上表现不佳。在一些细分领域,手动编码仍然是有意义的。
几个月前,我曾连续面试了两位工程师。一位还没有大学毕业,但对生成式AI编码非常精通。我与这位候选人交谈,他知道如何使用AI,能快速构建程序。紧接着,我面试了另一位有十年全栈工程师经验的人,但他的技能组合和2002年时完全一样,没有尝试过任何AI辅助编码。他有十年经验,技能很好。但对我来说,选择非常明确:我选了那位即将毕业的大学毕业生,而不是那个有十年经验的人。所以,我认为确保你掌握这些新技能至关重要。我看到的是,企业在填补拥有这些新技能的人才缺口方面存在巨大困难。但对2022年那种软件工程、全栈工程技能组合的需求,已经不复存在了。
我还发现,计算机科学的基础知识(CS fundamentals)真的非常重要。所以除了上面提到的,虽然我雇佣了一个应届大学毕业生而不是一个有十年经验的人,但这个故事还有另一部分:我所认识的最好的程序员也不是应届毕业生。我无意冒犯即将从斯坦福毕业的同学们。我所认识的最好的程序员,是那些既精通AI辅助编码,又深刻理解计算机科学基础的人。
让我用一个简短的故事来说明这一点。当我教授一门在线课程时,我的团队想生成一些像这样的背景图片作为装饰。当我在做这个名为“Generative AI for Everyone”的课程时,我与一位懂艺术史的合作者Tommy Nelson一起工作。我的合作者了解艺术的语言,他知道艺术流派、灵感来源、调色板,所以他可以用艺术的语言来提示Midjourney这样的AI图像生成工具。因此,他能生成像这样漂亮的图片。相比之下,我不懂艺术史,我希望我懂。所以我能做的就是去Midjourney,输入:“请为我制作漂亮的机器人图片”。我永远无法像我的合作者Tommy那样,对生成过程有那么好的控制力。这就是为什么我们用了他所有的图片,而一张我的都没用。
我在计算机科学领域也看到了同样的情况。未来最重要的技能之一,就是理解计算机是如何工作的,理解生成式AI、深度学习和机器学习是如何工作的,这样你才能用AI的语言,用这些工具的语言,准确地告诉计算机你想要什么,然后让计算机为你完成。一个只学会了提示LLM,却不理解计算机或AI真正工作原理的人,与一个能够分析问题,然后通过AI辅助编码告诉计算机如何执行下一步的人之间,表现上存在着巨大的差异。这就是为什么我认为计算机科学基础知识非常有价值。计算机科学基础、机器学习基础、深度学习基础——我和我的团队每天都在运用这些知识来做出相当重要的决策。我希望你们能从这门课以及斯坦福的许多其他课程中获得这些。
我真心希望你们能去告诉校园里所有院系的朋友们,鼓励他们成为一个创造者(builder)。因为我看到的另一件事是,对于计算机科学专业人士来说,使用AI辅助编码、掌握计算机科学基础、创造酷炫的东西,这很明确。但对于其他非计算机科学或非AI的学科,我发现,那些懂得如何构建软件的教育专业人士、气候科学家或机械工程师,他们的生产力更高,能完成更多的工作。而现在,进入AI和编程领域的门槛是我们一生中最低的。所以,坦白说,这是一个很好的时机——我希望每一位斯坦福学生都能学会用AI辅助来构建软件。我希望你们能去帮助你们在校园各处的朋友们也掌握这些技能。
问: 我听到很多业界人士说,他们宁愿雇佣一个有十年经验、只了解如何应用生成式AI(比如只是用来编码)的人,也不愿雇佣一个对深度学习、机器学习和生成式AI有深刻基础理解的应届本科生,仅仅因为前者有更多的项目经验。您也看到了这种趋势吗?
答: 好的。让我来给生产力排个序,分成四个等级。我这么说,是带着对每个人的极大尊重的,谈论生产力并不是对任何人或其工作的不敬。我认为,生产力最低的是既没有经验也不懂AI的人。之上一个等级是,比如说,有十年经验但不了解AI的人。再往上,我宁愿选择一个了解AI的应届大学毕业生。但生产力最高的,是既有十年经验,又非常精通AI的人。所以,在这两个因素之间,真正驾驭AI非常重要,但经验也很重要。我所认识的最好的开发者,他们交付代码的速度是两三年前都无法想象的,他们都是经验非常丰富的开发者,并且同时非常精通如何使用最新的AI技术。
关于就业市场,还有一点。我发现很多雇主还没有弄清楚如何进行恰当的招聘。坦白说,如果一个公司里没有人懂生成式AI,他们甚至不知道该如何正确地进行面试。这也是我们需要解决的一个问题。