Skip to the content.

:robot: C++ 开发者与人工智能

随着能够自信地编写代码的模型出现,许多初学者提出了一个合理的问题:现在还值得进入这个行业吗?这是一个诚实的问题,用”没事,一切都会和以前一样”来敷衍它是不对的。让我们看看实际上发生了什么。

简短的回答是:工程师仍然是需要的,但门槛已经变了。下面解释为什么。

:dna: AI 只会重现它被训练过的东西

模型是在海量已经写好的代码上训练出来的,就其本质而言,它输出的是这些数据中最常见的东西。对于人类已经解决过成千上万次的任务,它表现得非常出色:解析 JSON、搭建一个 HTTP 服务器、为一个容易理解的函数编写测试。

它的局限性正是从同一个根源生长出来的:

:warning: 为什么在 C++ 中犯错的代价更高

在有托管内存的语言里,错误代码通常会立刻大声地崩溃。在 C++ 中并非如此。

结论很简单:你只能接受你有能力验证的代码。而要验证 C++ 代码,你对 C++ 的了解必须不亚于手写代码时。可以帮忙的工具——sanitizers、静态分析器、模糊测试——都在语言工具包一文中有介绍。

:bulb: 开发的瓶颈不是打字速度

这是最重要的一点。工程师的工作从来都不只是敲字符。它包括:

这些任务没有一项可以委托给模型——不是因为它”不够聪明”,而是因为这些是关于人、钱和责任的问题。如果应用程序伤害了用户,承担责任的是公司和具体的工程师,而不是工具。在软件需要认证的领域——医疗、航空电子、汽车(见编码标准与合规要求)——这已经不是哲学,而是字面意义上的要求:结果上要有人签字。

还有一个早在神经网络之前就为人所知的观察:读别人的代码比写自己的代码更难。当代码越来越多、而且写得越来越快时,瓶颈就不再是编写,而是理解和评审。这是工程师的工作,而且它的工作量更可能是增加的。

:chart_with_upwards_trend: 真正在改变的东西

说什么都没发生是不诚实的。确实有变化,而且现在就已经能看到:

由此得出的实用结论:应该投资于基本功——内存模型、对象生命周期、多线程、架构、调试。所有这些让你能够判断一个方案是否正确的东西。而这正是路线图所讲的内容。

:hourglass: 给正在学习者的一个陷阱

对初学者来说,AI 最严重的风险不是”抢走工作”,而是妨碍你学会

技能是从与问题的搏斗中生长出来的:你尝试、你犯错、你弄明白为什么,然后脑子里就留下了对正在发生的事情的一个心智模型。如果一遇到困难就立刻去问助手,问题是解决了,可心智模型没有。这样练习一年之后你会发现,你根本没有办法去检验助手的答案。

该怎么办:

:handshake: 如何用得有价值

还有三条最好始终记住的规则:验证生成的内容、遵守公司关于把代码发送到外部服务的政策、记住许可风险。更多内容见 AI 工具一节。

:telescope: 没有人知道的事

老实说:这个职业十年后会是什么样子,没有人知道——本路线图的作者不知道,模型本身的作者也不知道。任何人如果自信地预言”所有人都会被取代”或者”什么都不会变”,都是在把一厢情愿当成事实。

可以有把握地说的是:对那些理解系统如何运作、并能为结果负责的人的需求,到目前为止一点也没有消失。开发中的工具一直在变——汇编、编译器、IDE、自动补全、互联网搜索。每一次都有人说”现在任何人都能编程了”,而每一次工作反而更多而不是更少,因为开发变便宜之后又开辟出了新的问题。这一轮或许会有所不同——但迄今为止,还没有理由去赌深厚的知识会突然贬值。


回到主页