Tagged: peter.yuhangpeng@gmail.com
- This topic has 1 reply, 1 voice, and was last updated 9 months, 1 week ago by
Peter Peng.
- AuthorPosts
- March 7, 2024 at 2:58 pm #3650
Jensen Huang, CEO of Nvidia, argues that we should stop saying kids should learn to code.
He argues the rise of AI means we can replace programming languages with human language prompts thus enabling everyone to be a programmer.
AI will kill coding.pic.twitter.com/SxK9twhEby
— Dare Obasanjo🐀 (@Carnage4Life) February 24, 2024
- July 15, 2024 at 6:25 pm #5030
之前写的一篇文章,贴上来了
最近看到很多网红、大 V 都在劝各位当爸妈的不要让自己的小孩再学习编程了,理由也很直接,就是现在 AI 发展的如火如荼,将来的编程工作大概率会被 AI 取代,学习编程没有任何的意义。站在风口浪尖的 NVIDIA CEO 也说,我们的工作就是让大家不用再去学习编程,不用再去学习诸如 C++,Java 一类的编程语言。
我想说上面这些人要不就是有自己的利益取向,要不就是不懂编程。我们不能根据 AI 发展的好坏来决定你自己或者你的小孩是否要学习编程,为什么?我们慢慢讲。
首先,我们先要搞清楚什么是编程,编程并不是简单地对计算机输入指令。一段程序的实现,一个软件的上线背后其实包括着各种各样的人为行动。就拿做一个软件项目为例,这个软件项目从发起到完成大概会有下面这些步骤:
- 我们首先是需要弄清楚需求,也就是了解这个项目是要做什么
- 我们会根据需求来做一些规划,包括但不仅限于选择合适的技术、规划项目完成的时间、做一些风险评估(比如没能按时完成该怎么办)以及所需要的资源
- 然后我们会根据上面的情况来进行软件设计,这里有包括整体架构的设计、代码框架的设计、系统设计、算法和数据结构的选择等等
- 等上面这些都差不多弄清楚了后,我们才开始写程序来实现我们前面计划好的东西
这四个步骤其实是一个有机整体,缺了任何一个环节都会对最后的产品造成影响,而很多人会认为说这里面只有第 4 步是编程,这其实是有误解的。就好像素描,你得先确定你要画什么,然后你需要构思,还要构图,等这些都做完了后,你才开始作画,作画并不代表素描的全部,这和实现程序不是编程的全部是一样的道理。
那是不是说 AI 就可以完全替代第 4 步了呢?也不是,AI 通过代码生成、自动补全等功能确实可以让这一步骤变得更加友好,但是它不能完全替代你去做这一步骤,因为一个软件项目是极其复杂的,它的复杂很大程度在于后期的维护和拓展。假使说 AI 有一天变得非常牛逼,你把你的想法和设计告诉它,它分分钟就能把代码生成出来,你扔到线上就能运行,那么日后有新的需求进来了,AI 能继续帮你更改吗?你突然发现你线上的程序的 CPU、内存或其他资源消耗过高,AI 能继续帮你优化吗?有一天你的网站被 DDOS 或黑客袭击,AI 能帮你化解吗?很明显,上述这些问题都不是 AI 能解决的,因为这些问题的背后都有着无穷无尽的可能,这些问题都需要结合实际情况来分析。如果上面这些问题 AI 都能帮你解决,那我也有理由相信 AI 可以帮你自动生成一个比 Linux 更好的操作系统、写出一本比莎士比亚文集更美的作品、精准预测股市楼市债市、精准预测未来。。。如果有一天这些都实现了,编不编程显然已经不重要了,人类社会存在不存在都是个问题。
由此可见,AI 只能做一些简单的代码生成,并且还是撒手掌柜,做完还需要你给它擦屁股,不然代码放到线上出现了故障,你就没辙,你最终还是得去看去弄懂这些 AI 生成的代码,不然问题解决不了,那这比自己写好在哪呢?并且,我相信每一个学习编程的人,都希望自己能够通过学习编程来写出长期稳定且可维护的软件,而不是写一个连 AI 都知道怎么写的软件。
其次,学习编程的一个很重要的目的是训练人的思维方式。可以看到,编程其实就是帮助我们把我们脑袋里面的想法落地,它告诉我们,我们的想法哪些是可以实现的,哪些现阶段是不能实现的,我们通过学习编程,来改善并优化我们脑子里的想法,让这些想法贴近现实,最终可以被实现。编程之所以有价值,就是编程背后的这个思维方式比较接地气,每个人都有自己的想法,每个人都可以通过学习编程来让自己的想法落地,创作自己的作品,以至于改变人们的生活方式,改变这个世界,这和数学、物理这样的理论学科有着明显的不同。
要学习这个思维方式,就需要去学习计算机相关的各种知识,比如操作系统、网络、算法和数据结构以及设计模式等等,这些知识会使我们的想法更有逻辑,想问题更加的严谨,而不是天马行空的瞎猜瞎试。你可能会觉得这些东西不属于编程的范畴,但是你在编程的过程中无疑例外都会或多或少涉及到这方面的知识,你的思维框架也会因为学习了这些东西而变得有所不同,考虑问题更加的全面,写出来的程序更加的稳定,写程序的效率也会提升。其实编程改变我们的还远不止这些,就拿 Debug(错误排查)为例,我们需要学习如何定位问题,如何以代价最小的方式来修复线上故障,如何找出问题的根源,提出好的方案从流程上规避类似的问题。这些东西看似和编程没有关系,但是哪一步脱离的了程序?
编程教给我们的是一个思维框架,或是思维方式,使用 AI 没法替代这个思维方式,更没法让这个思维方式贬值。AI 有可能降低编程的门槛,让人们更容易地学习编程,但是它没可能替我们思考,更没可能帮我们创新。
另外,编程就是一个兴趣爱好,是人类探索世界的一个工具。奥数、画画、弹琴以及唱歌也是兴趣爱好,如果说编程会被 AI 取代,孩子从小最好不要接触,那是不是说前面的这些兴趣爱好孩子也从小最好也不要接触?对于奥数这种有着标准答案的科目,可能都不需要 AI,普通计算机都能替代,美术和音乐就更不用说了,人弄出来的东西总有瑕疵,那比得了机器弄出来的东西。按照最开始说的 AI 替代理论,你会发现在 AI 下面,现在孩子上的一切兴趣班,发展的兴趣特长都没有任何的价值。很多家长可能会说,这些东西能提升孩子的智力,能让孩子发现事物的美,让孩子拥有解决问题的能力,那难道说学习编程就不能提升这方面的能力?我们前面也说了,编程的世界很大,可探索的东西很多,孩子完全可以从编程中获得各种能力。
其实很多东西都是人类探索世界、感知世界、到最后理解世界的一个工具。就拿画画来说,最早可以追溯到人类起源的阶段,距今几万年前,从最早在墙壁上作画,然后在各种器具(诸如青铜器、铁器、瓷器)上作画,后面在的纸上作画,现在直接在电脑上作画,不光这些,相机的出现也极大地改变了人们作画的方式。按道理来说,有了电脑,有了相机,我们完全可以不需要传统的作画方式,可现实是怎么样的呢?现在的手工画不但没有消亡,而且变成了一门学科,一个专业,里面种类繁多,有素描、水彩画、毛笔画、油画、彩铅、抽象画等等,其中每一类又可以往下去拓展,比如说素描可以分为写实和写生,这还没完,甚至很多很古老的作画方式都被保留下来了,比如说涂鸦画就是在墙壁上作画,景德镇之所以出名是因为它的瓷器,而瓷器上精致的画才是重点。不管你用的是什么样的作画方式,你其实都是在探索和感知这个世界的美,作画只是一个媒介,一个工具,而这个过程中你的体验才是与你真正有价值的,除了画画,我们还可以通过其他方式来感知这个世界的美,比如音乐,殊途同归。
在编程的过程中,我们可以感受到这个世界的奇妙,感受到这个世界的丰富多彩,这就很有价值。AI 可以替代我们去做事情,但是永远也替代不了我们去感受这个世界。
还有,AI 说到底也是程序。很多人反复强调 AI 会替代编程,AI 会替代人来写程序,但是忘记了 AI 本身也是一段程序,也是一个软件,也是一个产品。如果大家都不用编程了,AI 程序谁来写?AI 自己吗?这不自相矛盾吗?既然 AI 也是程序,AI 也是产品,那么编程领域的知识也可以用来创建 AI,比如需求分析、软件设计、操作系统、网络、数据结构和算法、部署以及线上维护,AI 产品的实现和稳定运行离开的了这些东西吗?很显然,AI 一样要依赖于这些编程与计算机领域的基础知识。由此我们也可以得出,学习编程其实就是学习并了解 AI 的一个好方式,AI 发展的越好,我们就越应该学习编程。
并且我还相信,AI 提供了一个筛选机制,筛选掉那些只会 copy paste,只会模仿,没有思考,不知进取的程序员,而剩下的真正懂编程的程序员就会变的更有价值,编程以及计算机世界也将在 AI 的加持下变得绚丽多彩,让我们拭目以待。
- AuthorPosts
- You must be logged in to reply to this topic.