代码从来不是软件开发的难点?
最近一篇题为《“Code was never the hard part” is an insult to all programmers》的文章在 Hacker News 上引起了不少讨论。它主要讲是 AI Coding 之后越来越常听到的一句话Code was never the hard part——代码从来都不是软件开发里最难的部分。现在 LLM 已经能快速生成大量代码于是软件开发的难点似乎很自然地落到了理解用户、确认需求、决定做什么以及最后把产品交付出去。这些事情一点都不简单。但是按照这个逻辑把 Coding 描述成一种一直都很简单、接近机械劳动的工作就有点奇怪了。被低估的编码难度如果写代码一直很容易那过去几十年的很多事情都很难解释。为什么程序员长期是高需求职业为什么公司愿意花高薪招优秀开发者为什么技术招聘里会有算法题、系统设计和一轮又一轮技术面试甚至还出现了“10x Programmer”“Rockstar Developer”这样的词用来形容那些明显比普通开发者更强的人。软件行业也花了几十年研究怎么把代码写好。《计算机程序设计艺术》《计算机程序的构造和解释》《程序员修炼之道》《代码整洁之道》这些书能流传这么久本身就说明编程里有大量需要长期训练的东西。从数据结构、算法和抽象到并发、性能、内存管理、可读性和可维护性这些都发生在具体实现里。一个需求已经明确并不代表接下来只剩下把它翻译成某种编程语言。还有一个更直接的问题如果 Coding 真有那么简单为什么软件到今天还有这么多 Bug一个功能能跑起来只完成了很小一部分工作。边界条件、状态组合、并发、资源管理、异常处理、长期维护最后都会落到具体代码里。很多工程问题只有真正开始实现以后才会冒出来甚至实现过程本身就在不断改变我们对问题的理解。“做什么”也没有那么独立“写什么比怎么写更难”也是 AI Coding 之后很流行的一种判断。毕竟理解用户、找到需求、判断优先级确实很重要。但如果把这句话继续往下推就会出现一些挺有意思的问题。如果决定做什么始终比实现难得多公司为什么没有用类似招聘顶尖工程师的强度筛选产品经理、市场研究和用户研究人员销售提前向客户承诺了一个新功能开发团队是不是也该觉得轻松一些因为最困难的需求发现已经有人做完了现实里的开发往往没有这么简单。“客户想要这个功能”和“这个功能应该怎么进入现有系统”之间还隔着大量判断。它会不会和现有能力冲突数据模型要不要改会不会留下新的技术债以后由谁维护一次看起来很小的需求真正落到系统里可能会牵动很多已有设计。如果实现成本真的低到几乎可以忽略一个需求完全可以一次做五个、十个版本让用户自己选。但大多数团队不会这么干。每多一个版本就会多一份测试、维护和后续演进的成本。所以需求很重要怎么实现同样重要。两件事在真实开发里往往混在一起很难切成两个完全独立的阶段。不存在“典型程序员”讨论软件开发时还有一个很容易掉进去的坑先想象一个“典型程序员”再用他的工作状态代表整个行业。比如开发者每天大部分时间都在开会、和相关人员沟通、澄清需求真正写代码只占很少一部分。这样的工作状态当然存在但远远覆盖不了所有程序员。有些开发者每天都在和客户沟通有些人常年做编译器、数据库、基础设施和底层系统可能很少直接接触最终用户有人特别关注抽象、类型系统和代码结构也有人只想尽快解决眼前的问题一个简单脚本能完成任务就够了。这些都属于软件开发。做 SaaS、游戏、数据库、操作系统、嵌入式设备和企业内部系统面对的问题差异很大。有些项目确实卡在需求和沟通上另一些项目里算法、性能、并发和实现细节本身就已经足够困难。所以“软件开发最难的部分是什么”很难给出一个适用于所有人的答案。项目不同、岗位不同、阶段不同难点的位置也会跟着变化。软件开发的两端软件开发一直同时面对两个方向。向上一层是用户、需求和产品。开发者需要知道为什么要做这个功能谁会使用它它到底解决什么问题。向下一层是计算机、系统和代码。开发者也需要知道这个功能应该怎样进入系统数据怎么流动状态怎么管理失败以后会发生什么。这两部分缺一块都会出问题。只懂用户不理解系统很容易提出实现代价极高甚至根本无法落地的方案只懂代码不理解用户也可能做出技术上很漂亮、实际没人需要的软件。AI 开始大量参与编码之后这两个方向反而变得更值得关注。中间那些重复、明确、边界清晰的实现工作会越来越容易交给工具开发者需要投入精力的地方也会随之变化。不会消失的软件问题有些问题已经跟着软件工程几十年了AI 很难让它们一下消失。系统还是会越来越复杂软件还是要维护依赖、平台、硬件和协议还是会变化。今天运行得好好的系统过几年一样可能因为外部环境变化需要重新调整。用户也不会因为有了 AI 就突然更会提需求。买软件的人和真正使用软件的人依然可能是两拨人公司目标和用户体验之间依然会有冲突开发团队照样要在成本、时间、质量和功能之间不断取舍。技术行业的 Hype 也不会停。新的框架、方法论和开发范式还会一轮轮出现有些会留下有些几年后就很少有人再提。AI Coding 会改变软件怎么被做出来但复杂度、维护、沟通和取舍这些老问题还会继续存在。不断变化的编程技能程序员其实一直在自动化自己的工作。今天很少有人再用打孔卡大多数开发者也不需要直接写汇编。高级语言、编译器、运行时、垃圾回收和各种开发工具已经接走了大量过去必须由程序员手动完成的工作。一些曾经很重要的技能也会慢慢退出日常开发。过去开发者需要非常熟悉手动内存管理、某些数据库 API 或特定开发工具后来这些工作逐渐被新的语言、框架和基础设施吸收开发者也随之往更高一层抽象移动。AI Coding 很可能继续推动这个过程。未来程序员亲手输入的代码可能会越来越少一些今天看起来很基础的实现工作也会更多交给模型完成。软件开发史上已经发生过很多次类似变化每一次工具进步都会带走一部分旧工作再把新的问题留给开发者。真正值得关心的是新的抽象层出现以后我们还需要理解什么。开发者的适应路径对于已经做了很多年开发的人只继续钻研已有技术栈可能会越来越窄。往上多理解一些用户体验、Customer Interview、产品设计、商业模式和行业知识会更容易看清一套软件从想法走到真实用户手里的全过程。这些东西最终也会反过来影响架构、优先级和技术取舍。刚进入行业的人反而更值得把基础补扎实。Pointer、Recursion、Memory Hierarchy、TCP/IP、DNS、HTTP、算法和数据结构这些东西哪怕平时写业务代码不一定直接用到也能帮助你理解程序到底怎么运行以及出问题时应该去哪里找原因。这两条路刚好指向软件开发的两端向上理解用户和业务向下理解计算机和系统。当中间越来越多实现工作可以交给 AI开发者对这两端的理解会越来越影响自己能不能看懂、判断和修正模型给出的结果。理解、判断与责任AI Coding 最后会走到哪一步现在谁也很难说清。以后程序员还会不会像今天这样亲手写这么多代码也没有确定答案。但有些能力很难绕过去。你得理解系统为什么这样工作知道一个方案为什么合理能看出模型生成的代码哪里有问题也要对最终交付的软件负责。工具可以接走越来越多实现工作判断力、技术品味、对用户的理解和对系统的认识还是得靠长期积累。代码越来越容易生成以后真正值得重新考虑的是程序员接下来该把时间和注意力放在哪里。

相关新闻

AEUX终极指南:从静态设计到动态动画的3分钟革命

AEUX终极指南:从静态设计到动态动画的3分钟革命

AEUX终极指南:从静态设计到动态动画的3分钟革命 【免费下载链接】AEUX Editable After Effects layers from Sketch artboards 项目地址: https://gitcode.com/gh_mirrors/ae/AEUX 你是否曾经花费数小时在Sketch、Figma和After Effects之间手动搬运设计元素&…

2026/10/16 21:43:08 阅读更多 →
亚马逊店铺运营有哪些关键环节?七大核心模块全拆解

亚马逊店铺运营有哪些关键环节?七大核心模块全拆解

有个朋友刚注册完亚马逊账号,兴奋地给我发消息:"账号下来了!接下来我该做什么?"我说你先别急,把整个运营链路从头到尾梳理一遍,看看每个环节大概需要做什么、花多少时间、准备什么资源。他花了两…

2026/10/16 1:50:28 阅读更多 →
盘锦修完新能源车漆面,亲测怎么验收才放心?

盘锦修完新能源车漆面,亲测怎么验收才放心?

在盘锦开车,冬天雪泥、夏天雨水,再加上停车场剐蹭,新能源车漆面受伤真的不算少见。很多车主最纠结的不是“修不修”,而是修完之后到底怎么看:有没有色差?边角有没有处理好?雷达、摄像头、充电口…

2026/10/18 0:49:20 阅读更多 →

最新新闻

folium地图资源本地化指南:彻底解决离线/内网JS/CSS加载失败

folium地图资源本地化指南:彻底解决离线/内网JS/CSS加载失败

简介:面向使用地图可视化组件、希望摆脱远程加载缓慢问题的开发者,这份打包内容包含前端依赖的完整静态文件,包括核心地图库、交互脚本、界面框架、图表字体等资源,以及配套的样式源文件和地图标记图片,共77个文件&…

2026/10/18 1:22:43 阅读更多 →
EmulatorJS 版本选择指南:Stable、Latest、Nightly 三个渠道怎么选对

EmulatorJS 版本选择指南:Stable、Latest、Nightly 三个渠道怎么选对

EmulatorJS 版本选择指南:Stable、Latest、Nightly 三个渠道怎么选对 【免费下载链接】EmulatorJS A web-based frontend for RetroArch 项目地址: https://gitcode.com/GitHub_Trending/em/EmulatorJS 选 EmulatorJS 版本(一个基于网页的 RetroA…

2026/10/18 1:22:43 阅读更多 →
AI接管终端:架构师为何把命令行当成主战场?

AI接管终端:架构师为何把命令行当成主战场?

1. 一个反直觉的现象:越资深,越把终端当主战场1.1 我观察到的"倒挂"最近一段时间,AI编辑器几乎是所有技术社区里最热的话题。智能补全、对话式生成、自动重构,听起来每一招都能把生产力拉满。可我在观察周围团队之后发现…

2026/10/18 1:22:43 阅读更多 →
ComfyUI-LTXVideo 实战上手:用 LTX-2 从文字和图片生成带声音的视频

ComfyUI-LTXVideo 实战上手:用 LTX-2 从文字和图片生成带声音的视频

ComfyUI-LTXVideo 实战上手:用 LTX-2 从文字和图片生成带声音的视频 【免费下载链接】ComfyUI-LTXVideo LTX-Video Support for ComfyUI 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-LTXVideo ComfyUI-LTXVideo 是 ComfyUI(节点式…

2026/10/18 1:22:43 阅读更多 →
GLM-4.7-W8A8C8推理调优实战:KV Cache int8量化、202K长上下文与专家路由性能优化技巧

GLM-4.7-W8A8C8推理调优实战:KV Cache int8量化、202K长上下文与专家路由性能优化技巧

【免费下载链接】GLM-4.7-W8A8C8 项目地址: https://ai.gitcode.com/hf_mirrors/vllm-ascend/GLM-4.7-W8A8C8 点击查看 免费下载 GLM-4.7-W8A8C8 是面向 vLLM-Ascend(昇腾 NPU 推理框架)发布的 GLM-4.7 MoE 大模型 int8 量化推理版本&#x…

2026/10/18 1:22:43 阅读更多 →
贴片式组合导航模块:智能汽车高精度定位的量产新范式

贴片式组合导航模块:智能汽车高精度定位的量产新范式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 1:21:43 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →