谈古法编程

现在关于编程的学习路径,人们常常众说纷纭。

有人认为,现在 AI Coding 如此发达,编程语言在很大程度上已经不是门槛了,你只需要对 AI 表述你的需求,使用恰当的 prompt 作为规范,那么总是会有不错的结果——那不仅比作为初学者的你写得好得多,而且效率高得多!如果结果不好,那么大概率是这个模型令人遗憾。

也有人认为,不对,使用 AI 间接生成代码而不是自己去推敲——也就是现在涌现的新名词古法编程(Hand-Coding)——会导致知识与经验的断层,对于一门定义规范严谨的学科来说,从长远看来是不可持续的。

这里,我就讲对于初学者,我的看法和意见。


以 Java 为例。

虽然许多人现在唱衰 Java,认为学习它对于目前的就业是非常没有前途的,但那仅仅是局限于职业场景,而且是对于初级工程师的范围。但是毫无疑问,这是一门生态非常完善的语言,逻辑定义也非常自洽。那么为什么不建议呢?因为 Java 实际上是一门很年轻的语言,它诞生刚刚 31 年,而绝大多数有经验的工程师也恰好是这个年纪上下,也就是说,有大量的人才擅长于使用这一门语言,这在任何职业场景中对于初级新人来说都是不友好的。但是这与它的自身特质并没有什么关系。

有人说,AI 是相当擅长写项目和代码的。当然!这是因为大量的程序员贡献了他们的开源成果,而代码本身就是有逻辑结构严格组织的,因此是易于 AI 学习的。那么,AI 几分钟内就能生成的项目,是否意味着计算机新人已经毫无用处——公司为什么要招聘效率不高的新人,而不去使用全知全能的 AI 呢?

首先,一个项目开发是非常长的周期。需要经过不断的开会讨论、需求调研整改、评审评估,这并不是很快能够搞定的。个人开发者几分钟内生成的 javascripts 网站代码、一个 demo 的完整项目,在真正的社会考验中是非常脆弱的。因为在社会环境中,公司开发一个项目最终的目的就是面向客户发售,获取利润,此外没有任何意义。面对用户的需求,这个项目的优势在哪里?安全性如何?稳定性如何?如何支持高并发?为什么选择你的而不是别人的?每一个问题都需要往底下深入研究和讨论,而这是那些小玩具所很难实现的,因为全权由 AI 生成的代码,大多数情况下我们是无从把握的,我们并不清楚完整的架构、具体的实现细节、而那庞大的生产量也令这些的审查有时候难以进行。如果 AI 真的如此发达,那么小公司如今很多情况下可以不必购买互联网公司提供的平台和其他服务,毕竟 AI 的成本远远低于每年购买这些软件的钱——我干嘛不自研呢?——可以试试,但是总是会搞得一团混乱的。代码是为目的服务的,而不是为了其本身而服务的。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注