AI时代的程序员修养:AI 会写代码,但你要知道程序是什么
《AI时代的程序员修养》这个专栏,不打算把重点放在“哪个 AI 工具更会补全代码”。工具会变,模型会变,但程序运行的基本规律没有变。写代码的人还是得看得懂系统怎么拆、问题怎么描述、生成出来的东西该怎么验收。本文是第一篇,先从一句老话讲起:程序 = 算法 + 数据结构。这句话几十年前就写在教科书里,但在 AI 编程时代反而更重要。因为 AI 很擅长“把一句话变成一段代码”,但如果你没有把问题变成算法和数据结构,它生成的往往只是表面能跑的代码。那句老话一点也没过时很多人第一次听到“程序 = 算法 + 数据结构”,是在大学课堂、C 语言教材,或者 Pascal 时代的老书里。这句话听起来很朴素,甚至有点老派。现在我们写的是 Web 服务、移动应用、推荐系统、数据平台、Agent 工具链,好像已经离“算法题”和“链表树图”很远了。但只要把一个真实系统拆开,就会发现这句话还在底层撑着。一个订单系统,算法不是排序题,而是价格计算、库存扣减、优惠叠加、风控判断、状态迁移。数据结构不是手写红黑树,而是订单表、状态机、索引、事件日志、缓存 key、消息体。一个搜索系统,算法不是教科书里的二分查找,而是召回、过滤、排序、融合、去重、分页。数据结构不是抽象的数组和树,而是倒排索引、向量索引、文档结构、特征字段、评分结果。一个 AI Agent,算法不是“让模型想一想”,而是任务拆解、工具选择、失败重试、上下文裁剪、结果校验。数据结构也不是模型内部的 token,而是消息队列、工具 schema、执行记录、状态快照、可恢复的中间结果。所以“程序 = 算法 + 数据结构”不是在说程序员必须天天刷题。它说的是:程序不是一堆语句,而是数据如何被组织,规则如何作用在数据上。AI 可以帮你写语句,但它不能替你决定系统里的数据应该长什么样。先把这些老本行捡回来只说“算法和数据结构很重要”,基本等于没说。对已经工作、又开始大量使用 AI 编程的人来说,下面这些东西值得重新过一遍。不是为了回去刷题,而是为了在看到需求时,脑子里能自然浮现出合适的结构。知识点工程里常见的样子不懂时 AI 容易写错什么数组 / 动态数组分页结果、批处理缓冲区、时间序列点位频繁头部插入删除,隐藏 O(n) 移动成本哈希表去重、缓存、索引、按 ID 聚合key 设计不稳定,内存无限增长,忽略冲突和过期栈表达式解析、递归展开、调用链、撤销操作递归无深度保护,异常路径无法回滚队列 / 优先队列任务调度、消息消费、限速、延迟重试FIFO 和优先级混用,重试任务插回错误位置树评论、组织架构、权限继承、路由匹配全树递归查询,深层节点性能和栈深度失控图依赖分析、工作流、推荐关系、服务调用链不检测环,拓扑顺序错误,级联调用不可控堆Top K、超时管理、定时任务、排行榜近似维护全量排序代替局部选择,复杂度从 O(n log k) 变成 O(n log n)布隆过滤器黑名单、缓存穿透防护、大规模去重预判把“可能存在”当成“一定存在”,误判语义搞错LRU / LFU本地缓存、热点数据、连接池淘汰只会用 dict,不会限制容量,也不会维护访问顺序倒排索引搜索、标签筛选、日志检索每次请求全量扫描文本,再用字符串 contains 过滤状态机订单、任务、审批、支付、部署流水线状态随便改,没有迁移约束,没有非法状态保护这里暂时没有展开红黑树、B+ 树、跳表、LSM Tree 这些更偏底层实现的内容。它们当然重要,但第一步先把“会不会建模”这件事说清楚。等到后面讲数据库和高并发时,再谈 B+ 树为什么影响索引,LSM Tree 为什么影响写入和 compaction,跳表为什么常见于有序内存结构。放到 AI 编程里,重点不是手写一个完美的堆。重点是看到“取最近 5 分钟内延迟最高的 100 个请求”时,马上意识到不能让 AI 简单写sort(all_requests)。数据流可能很大,更合适的做法是流式处理,维护一个大小为 100 的最小堆;每来一个请求只和堆顶

相关新闻

电商卖家都在用的ai洗稿技巧:3分钟生成高转化产品描述

电商卖家都在用的ai洗稿技巧:3分钟生成高转化产品描述

电商卖家都在用的ai洗稿技巧:3分钟生成高转化产品描述 大部分电商卖家的产品其实不差,差的是那张"嘴"。 你去看同行卖得好的链接,产品未必比你好,但描述写得能让人"隔着屏幕就想下单"。反观自己的链接&#x…

2026/7/11 16:00:09阅读更多 →
TLA2518与PIC18LF24J50的硬件协同设计与优化

TLA2518与PIC18LF24J50的硬件协同设计与优化

1. TLA2518与PIC18LF24J50的硬件协同设计在工业测量和嵌入式系统中,模拟信号到数字信号的可靠转换是数据采集的关键环节。TLA2518作为TI推出的12位精度SAR型ADC芯片,与Microchip的PIC18LF24J50单片机组合,能够构建高性价比的混合信号处理系统…

2026/7/11 16:00:09阅读更多 →
如何在5分钟内轻松下载B站大会员4K视频和充电专属内容?

如何在5分钟内轻松下载B站大会员4K视频和充电专属内容?

如何在5分钟内轻松下载B站大会员4K视频和充电专属内容? 【免费下载链接】bilibili-downloader B站视频下载,支持下载大会员清晰度4K,持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 你是否曾遇到过这样…

2026/7/11 16:00:09阅读更多 →
AI 辅助开源项目运营:从 Issue 管理到社区增长的系统化方法

AI 辅助开源项目运营:从 Issue 管理到社区增长的系统化方法

AI 辅助开源项目运营:从 Issue 管理到社区增长的系统化方法 一、开源项目最容易失败的地方,不是「代码写得不好」,而是「没有人用、没有人贡献、也没有人维护」 开源项目的运营,和产品的运营有很多相似之处:都需要明确…

2026/7/11 16:55:17阅读更多 →
MySQL安装教程:图文教程从零开始,手把手教你搭建稳定高效的数据库环境

MySQL安装教程:图文教程从零开始,手把手教你搭建稳定高效的数据库环境

一、Linux安装MySQL规范 1.1 MySQL安装方式 推荐方式:二进制安装(tar 包解压即用) 其他方式:源码编译、Yum、RPM(不展开) 1.2 MySQL 运行用户 使用虚拟用户 mysql:mysql,仅用于进程运行&#xf…

2026/7/11 16:55:17阅读更多 →
MCP3551 22位Δ-Σ ADC与PIC18微控制器的精密测量应用

MCP3551 22位Δ-Σ ADC与PIC18微控制器的精密测量应用

1. 从模拟到数字的信号转换基础在电子测量和控制系统中,我们经常需要将现实世界中的模拟信号(如温度、压力、光强等)转换为数字信号进行处理。这种转换的核心器件就是模数转换器(ADC)。MCP3551是一款22位Δ-Σ型ADC,具有极低噪声和…

2026/7/11 16:55:17阅读更多 →
LLM 抽象层怎么设计?让 AI 应用不被某一个模型厂商绑定

LLM 抽象层怎么设计?让 AI 应用不被某一个模型厂商绑定

上一篇文章讨论了 AI 应用的配置系统。 配置系统解决的是一个问题: 项目运行时应该使用哪个模型、哪个 API Key、哪个服务地址、哪个超时时间。 但配置系统本身并不负责调用模型。 当配置准备好以后,AI 应用马上会遇到下一个问题: 业务代码应…

2026/7/11 16:55:17阅读更多 →
OPC DCOM 跨域/工作组连接:5个防火墙与安全策略配置要点

OPC DCOM 跨域/工作组连接:5个防火墙与安全策略配置要点

OPC DCOM跨域连接实战:防火墙与安全策略的黄金法则 在工业自动化系统中,OPC(OLE for Process Control)作为数据交换的标准协议,其稳定性和安全性直接影响生产系统的可靠运行。而当OPC采用DCOM(分布式组件对…

2026/7/11 16:55:17阅读更多 →
Tokio Console 诊断工具实战:从 Task 火焰图到 Waker 统计的性能瓶颈定位

Tokio Console 诊断工具实战:从 Task 火焰图到 Waker 统计的性能瓶颈定位

Tokio Console 诊断工具实战:从 Task 火焰图到 Waker 统计的性能瓶颈定位 一、异步代码的盲区:为什么 flamegraph 看不懂 Tokio 程序 传统性能分析工具(perf、flamegraph)在分析 Tokio 异步程序时,常常产生令人困惑的结…

2026/7/11 16:50:15阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/10 12:10:00阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/11 15:18:12阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/11 15:11:32阅读更多 →
Premiere Pro 2025安装失败原因与AGSIS验证绕过指南

Premiere Pro 2025安装失败原因与AGSIS验证绕过指南

1. 为什么2025版PR安装比以往更“磨人”?——从弹窗警告到路径陷阱的真实处境 Premiere Pro 2025版不是简单的一次版本迭代,它是一道分水岭。我从去年底开始帮影视工作室、高校剪辑实验室和自由职业者部署2025环境,累计处理了137台设备&#…

2026/7/11 0:03:43阅读更多 →
5款实用macOS系统优化工具:让你的Mac运行更流畅更高效

5款实用macOS系统优化工具:让你的Mac运行更流畅更高效

5款实用macOS系统优化工具:让你的Mac运行更流畅更高效 【免费下载链接】open-source-mac-os-apps 🚀 Awesome list of open source applications for macOS. https://t.me/s/opensourcemacosapps 项目地址: https://gitcode.com/gh_mirrors/op/open-so…

2026/7/11 0:03:43阅读更多 →
5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南

5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南

5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南 【免费下载链接】comfyui_controlnet_aux ComfyUIs ControlNet Auxiliary Preprocessors 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 想要让AI图像生成真正听从你的指挥吗&…

2026/7/11 0:03:43阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/11 16:20:28阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/10 22:20:33阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/10 17:29:22阅读更多 →