当前位置: 首页 > news >正文

人工智能时代如何对待编程

有人想学程序设计,我想跟他说这个时代编程没用,软件已经快被淘汰了。但是忽然想到一点理由。

大语言模型在编程领域的能力迅速提高,所写出的程序质量也迅速提高。从某种意义上来看,中大型项目中大语言模型的编程能力已经超越了人类。在我们这个时代,人们必定会质疑是否应该继续学习编程技术。

如果编程对于我们来说是一种工作的需要,那么我认为几乎没有必要学习,除非我们有需要制作非常大型的项目,其规模大到大语言模型无法处理。

对于工作者来说,在最短的时间内写出合格的代码是工作的目标。那么在这种情况下,学习编程是一种浪费资源、精力与时间的行为。

然而在我看来,编程是具有另外一种力量的。编程蕴含着有用的思想。当然这个说法不够准确,更准确的说法是:程序设计蕴含着有用的思想。下面的4个例子也许能支持我的观点。

1

我们知道在程序设计中,程序员总是倾向于一些逻辑封装成一个模块。这种做法能够极大的提高程序设计的灵活性,代码复用性。我认为这就是一种思想的体现。我们可以通过一个例子来体会这种思想。

比如一个程序包含着大量的数学运算,然后程序设计者观察到,其中存在着大量的步骤需要将一个数平方,然后再传递给下一个模块。同时程序设计者观察到,这些平方操作在未来可能会变成立方操作,甚至是4次方等等。

那么他有可能会将这个平方操作封装成一个函数。然后再把这个函数嵌入到原来使用平方操作的地方。这样做当然会引入几个好处。

  • 当以后需要修改平方操作为其他操作时,只需要将函数修改即可。
  • 如果未来需要将平方操作改为其他更复杂的数学运算,那么只需要保证输入与输出不改变,则函数体可以任意调整。提高了程序的灵活性。

这里面隐含了什么思想呢?

  • 对相似本质的敏感。程序员必须要能够敏锐地注意到平方操作在程序中频繁出现,非常独立,不受影响。
  • 远见。程序员。必须要预见到未来这个平方操作可能会被其他操作所取代。

在我看来这两种思想非常重要。对相似本质事物的敏感能让我们从纷繁的现象中注意到事物的本质。

在编程中养成的远见则有利于我们在工作的过程中,不仅注意到某个操作的当下的使用方式和用途,还会注意到其未来可能发生的变化,于是习惯于做好准备。

2

另外一个例子是,程序员在调试程序的过程中,如果发生了错误,那么他们通常会使用一种断点测试法。他们会让程序在某一个点停下来,然后从内存中抽取一些变量进行观察,检查这些变量的值是否符合预期。

  • 如果一个程序包含大量的过程,那么程序员通常会将这些过程分成两半,先检查其中一半的。
  • 如果这一半的输出符合预期,那么说明错误很可能隐藏在另一半。对于另一半,则又将其分为两半,再执行相同的检查。

这也隐含一种有力量的思想。我把它称之为分治思想。

拥有这种思想的人,在面对复杂的困难时,可能更倾向于将复杂的事物分成小的部分,然后逐个解决。

他们能够缩小问题的规模,并在解决了问题之后,又能回到原来问题的视野而不被局部困难所困扰。这也是一种弹性的视野。

3

我想提出的第3种思想,隐含在下面的过程中。这特别体现在一些非常复杂的过程。我们设想有以下的场景。

在两个设备之间需要通信。然而最底层的芯片上的接口只能够支持一次发送一个比特(信息量的最小单位)。而通常需要发送的数据包含上百万个比特。

如果程序员要直接使用芯片上的接口对这些数据进行发送,那么工作量显然是巨大的。因为通常实际情况下要处理数据流量不能过大发出去的数据要检查是否正确收到等等问题。他们需要处理每一个比特。

程序员通常不会这么做。他们会使用分层的办法。

  • 首先写一个第1层程序模块,这个模块非常简单,但是能控制芯片连续发送10个比特并检查是否正确发送。
  • 然后在这个第1层模块的基础上编写另一个模块,这个第2层模块能够一次性调用上面的模块10次,发送10个组,每个组包含10个比特,并且保证这10个组是按顺序发送的。
  • 然后在第2层模块的基础上编写第3层模块,这个模块能够将要发送的数据分割成一个一个的组,然后传输给第2层的模块。同时,它能够控制发出去的组,不会造成太大的数据流量,以便防止网络塞车。

我们看到

  • 第2层模块对于第1层模块做了什么事并不关心,他只知道第1层模块可以把10个比特都发出去。第2层模块只用关心怎么样把数据按顺序传出去就行了。
  • 第3层模块对于第2层模块做了什么并不关心,他只知道第2层模块可以将10个组发出去。第3个模块需要知道如何控制数据流量不要过大就行了。

从上面的例子可以看出,这也蕴含这一种非常有力量的思想。这种思想把一个非常复杂的过程,分成1层1层的。每一层都只需要关心他们所需要关心的工作,然后不同的层连接起来,就能够完成非常复杂的工作。而不用担心每一层的工作过于复杂。

4

当然,程序设计中还有非常多的有力量的思想。

比如封装的思想。

将一些数据和这些数据对应的操作装在一起变成一个包,然后让这个包自己管理自己的数据。

这类似于社会中将不同的事务分成不同的部门。每一个部门只需要知道如何使用他们的合法权力处理他们要处理的人和事即可。

而领导者只需要站在高的位置控制这些部门,就能够完成非常复杂的协作。

当然,并不是只有程序设计才能训练这些思想。然后呢,一个熟练的程序员一定会在不断的练习中,不知不觉的强化上面的思想。不管这些思想是否真的有用,我都认为经历这些思想的洗礼,是一种美妙的过程。

这些程序设计的思想让我们以不同的眼光看待事物,让我们以不同的视角注意问题。所以我认为作为一个学生,虽然人工智能已经完成了从自然语言向代码的翻译,就像人工智能完成了从中文到英文的翻译一样,但是学习程序设计和学习英文都是一样有必要的。

因为在学习这些的过程中,我们的思想会受到影响,而这是一个美丽的过程。

http://www.jsqmd.com/news/554646/

相关文章:

  • Nginx配置虚拟主机
  • Prometheus企业级监控架构设计:3种高可用模式与90%告警噪音降低实战
  • OFA-Image-Caption在AIGC工作流中的应用:为AI生成图片自动配文
  • 基于GIS的宠物综合服务平台
  • 签名计算效率工具:xhshow实现小红书API请求处理提速90%的技术原理揭秘
  • 2026年佛山高企认定服务优质的机构盘点,深科信名列前茅 - myqiye
  • 中国象棋AlphaZero:从零开始的AI象棋大师培养指南 [特殊字符]
  • 终极ESP32 Arduino开发环境搭建指南:3分钟完成配置的完整教程
  • setup-php 故障排除手册:常见问题解决方案与调试技巧
  • 分享浙江BWT倍世商用净水器介绍,如何选择 - 工业品网
  • Unpaywall浏览器扩展:5分钟学会免费获取学术文献的终极指南
  • 25. K 个一组翻转链表
  • 3分钟掌握Magika:AI驱动的文件类型检测终极指南
  • Arduino与单片机技术入门及实践指南
  • BGE M3-Embedding:揭秘统一多语言、多功能、多粒度检索的‘三合一’模型
  • 分析浙江BWT倍世家用净水器,价格费用如何及选购要点 - 工业品牌热点
  • 2026年食品/土壤检测仪器推广:垂直渠道深度解析与市场展望 - 品牌推荐大师
  • EEVDF调度器完全调优指南:从lag公式推导到place_entity()参数配置
  • usearch的代码注释规范:提高代码可读性的实践
  • STM32G030驱动无刷电机:从寄存器配置到PWM波形生成的保姆级避坑指南
  • 基于MATLAB的单闭环直流调速系统设计探索
  • lite-avatar形象库实战教程:用50+职业数字人打造垂直领域AI对话助手
  • INMS: Memory Sharing for Large Language Model based Agents 论文笔记
  • InternLM2-Chat-1.8B在复杂网络问题诊断中的辅助应用
  • 显卡性能调优:从系统瓶颈到高效GPU资源分配的完整指南
  • bilibili-api用户认证详解:SESSDATA、BILI_JCT、BUVID3等参数获取全攻略
  • 内存故障排查终极指南:Memtest86+从入门到精通
  • GPU显存暴涨300%却查不到泄漏点?Cuvil IR可视化调试器首次公开:3分钟定位Python模型编译期内存幻影引用
  • BERT实践指南:从理论到应用的自然语言处理技术
  • VS2022 Fortran 集成IMSL库实战指南