Vibe Coding(氛围编程)

幽灵 人工智能 443

讨论

你是否支持Vibe Coding(氛围编程)?

回复

共1条回复 我来回复
  • 幽灵的头像
    幽灵
    很想离开这个世界,但有放心不下的人; 太多遗憾和误会,不过统统接受; 一无是处,却在试着改变。
    评论

    以前的程序员要去啃《算法导论》这种书,现在vibe coding时代有必要吗,还是了解各种算法本身跟原理就够了

    Gemini

    结论非常明确:在 Vibe Coding 时代,完全没有必要像过去那样去逐页死啃《算法导论》(CLRS)这种学术巨著了;但“了解算法图谱、建立复杂度直觉、能够识别数据结构特性”不仅依然必要,甚至比过去更加决定你的上限。

    这背后的本质,是程序员的角色发生了根本性重塑——你从“写代码的打字员”,变成了“审查代码的总编辑与架构师”。

    一、 算法能力发生了怎样的“撕裂”?
    AI 彻底改变了算法在工程中的交付方式。我们可以把算法能力拆成两部分来看:

    旧时代:[算法直觉/选型] ──> [手写底层实现/数学证明] ──> [调优与排错] (全靠人脑)

    Vibe Coding时代:[算法直觉/选型] ──> (AI自动生成实现) ──> [人脑审阅/复杂度识别/边缘审查]

    维度
    旧时代(手写时代)
    Vibe Coding 时代
    状态变化
    手写能力
    熟练手写红黑树、手写快排、手写 DP 状态转移方程
    让 AI 几秒内输出无错实现
    彻底降维/被替换
    数学证明
    证明算法的时间复杂度、推导公式
    了解平均与最坏情况即可
    大幅弱化(除非搞底层研发)
    算法图谱与选型
    知道用什么数据结构解决什么问题
    精确告诉 AI 选用什么结构与策略
    极其关键
    复杂度敏锐度
    在写代码时顺手优化
    识别 AI 代码中隐蔽的 $O(N^2)$ 性能坑
    权重大幅上升
    二、 《算法导论》里,哪些可以扔?哪些是核心资产?
    1. 彻底可以扔掉的部分(除非你去搞 C++ 编译器或底层引擎开发):
    严密的数学归纳法证明(比如用主定理一步步推导递归复杂度)。
    复杂的死记硬背(比如手写红黑树的旋转细节、斐波那契堆的合并逻辑)。
    为了应付 LeetCode 强行啃下的奇技淫巧(比如过度的位运算技巧)。
    2. 依然是“核心资产”的部分(决定你指挥 AI 的水平):
    大 $O$ 表示法与复杂度感知:对 $O(1)$、$O(\log N)$、$O(N)$、$O(N \log N)$、$O(N^2)$ 的数据量级有极度敏感的直觉。
    常用数据结构的特性图谱:

    什么时候用哈希表($O(1)$ 查找但无序、耗内存)?
    什么时候用树/图(层级与关系拓扑)?
    什么时候用跳表/B+树(范围查询、磁盘友好)?
    什么时候用概率型数据结构(如布隆过滤器,用极小内存解决海量去重问题)?
    核心算法范式:分治、双指针、滑动窗口、贪心、图的广度/深度优先遍历(BFS/DFS)、动态规划的核心逻辑。
    三、 为什么 Vibe Coding 时代反倒更怕“算法白痴”?
    很多人误以为“既然 AI 能写代码,我就完全不用学算法了”。这种想法在生产环境里极其危险,主要原因有三点:

    1. 垃圾提问导致垃圾架构(Garbage in, Garbage out)
    AI 是极其“顺从”的。如果你不具备算法图谱:

    盲目提问:“帮我写个函数,找出用户列表中距离最近的两个人。”
    AI 的默认实现:给出一个直观的双重循环($O(N^2)$ 复杂度)。数据量是 100 时跑得飞快,一旦用户数达到 10 万,系统直接卡死爆内存。
    懂算法的做法:“用 R-Tree 或 H3 空间索引/KD-Tree,将查找复杂度降到 $O(\log N)$。”你的一句话,就能指引 AI 走向正确的架构。
    2. 审查 AI 代码中的“隐蔽性能坑”
    在 Vibe Coding 中,AI 经常会写出语义正确但性能极其拉垮的代码。

    例如,AI 在一个 $O(N)$ 的循环内部,无意识地调用了一个依赖数组遍历查找的函数(隐含 $O(N)$),整个逻辑瞬间退化为 $O(N^2)$。如果审稿人没有复杂度感知,这段代码就会顺理成章地合并进主干,变成线上定时炸弹。

    3. 极佳的工程权衡(Trade-off)掌控
    工程的本质是权衡(以空间换时间,或以精度换速度)。

    比如面对海量数据的去重与计数,普通程序员只知道用 Set(内存爆炸);懂算法的程序员会命令 AI:“这里不需要 100% 精确,用 HyperLogLog 来做基数统计”,瞬间将内存占用从几 GB 降低到几 KB。这种战略眼光是 AI 无法替你做的。

    四、 2026 年最适宜的算法学习策略
    不要把《算法导论》当教材从头读到尾。推荐采用“概念地图 + AI 交互验证”的轻量化高效路径:

    建立算法全景图:去理解各类数据结构和算法是为了解决什么场景下的什么痛点而发明的(比如:为什么有了链表还需要跳表?为什么有了二叉树还需要红黑树?)。
    把 AI 当作“算法讲师与代码审查员”:

    看到不熟悉的算法,直接问 AI:“请用最通俗的语言解释 XX 算法的底层逻辑、最适合解决什么场景的问题、以及它的时间/空间复杂度是多少?”
    拿一段 AI 生成的代码问它:“分析这段代码的渐进复杂度,是否存在隐蔽的 $O(N^2)$ 性能瓶颈?如果有,如何重构?”
    注重“数据结构与硬件特性”的结合:理解 CPU 缓存亲和性(如连续内存数组与链表对 Cache Miss 的影响),这种高阶感知在现代性能调优中比单纯解算法题有用得多。
    一句话总结:你不需要当一个能手写算法的“计算器”,但你必须做一个懂算法局限与特性的“调度员”。

    2026年8月19日 上午12:59 0条评论
分享本页
返回顶部