Hacker News 中文摘要

RSS订阅

“代码从来不是最难的部分”是对所有程序员的侮辱 -- "Code was never the hard part" is an insult to all programmers

文章摘要

文章反驳了“代码从来不是难点”的观点,指出这种说法是对程序员的侮辱。作者质疑:如果编码容易,为何程序员长期高薪、高压、被要求通过严苛面试?为何存在大量编程经典著作和培训?强调编码本身具有复杂性和专业性。

文章总结

好的,作为一名专业的中文编辑,我将对这篇文章进行中文重述,保留核心观点和细节,同时删减与主题无关的冗余内容。


文章核心观点重述

标题: “代码从来不是难点”——这是对所有程序员的侮辱

核心论点: 近期流行的观点“大语言模型擅长编码,但软件开发的难点从来不是写代码,而是弄清楚要写什么”,是对所有程序员的严重不尊重和贬低。

反驳“编码很简单”:

如果编码真的简单,为何程序员长期供不应求、薪资高昂,且普遍面临高压、过劳和倦怠?为何公司要费尽心思寻找“10倍效率”的“忍者级”程序员,并设置严苛的算法面试?如果编码简单,为何会有《代码整洁之道》、《程序员修炼之道》乃至《计算机程序设计艺术》这样的经典著作?为何需要专门的编程训练营甚至大学学位?如果编码简单,为何软件依然充满漏洞?

反驳“弄清楚要构建什么才是难点”:

如果决定构建什么才是难点,为何许多产品经理看起来并不专业,没有严格的面试流程,薪资也往往低于开发者?为何市场研究员、可用性专家甚至客户成功团队不被视为公司的“明星”?如果实现很简单,为何程序员会反感销售人员为促成交易而向客户承诺新功能?如果编码简单,为何不直接开发十个版本看哪个成功?

关于“与利益相关者沟通”的迷思:

另一个常见说法是“软件开发的大部分工作是沟通需求”。但事实上,大多数程序员并不喜欢与利益相关者或客户沟通。他们更希望的是“直接告诉我做什么,别两天一变”。有些开发者声称“我解决的是客户问题,不是写代码”,但转身却沉迷于讨论单子、内存安全等纯技术概念,对客户的理解仅停留在虚构的“用户画像”上。

真正的重点是什么?

与用户沟通、理解他们的体验、解决客户问题、让所有利益相关者达成共识,这些对软件项目的成功至关重要。同时,编写优秀的代码也是一门需要技能、耐心、经验和智慧的手艺。两者并非对立,而应兼得。我们既要深刻理解“我们在构建什么”,也要深刻理解“我们为什么要构建它”。

如何应对行业变革?

我们正身处行业巨变之中。需要认清什么会变,什么不会变。

  • 不变的是: 软件会越来越复杂,永远需要维护;用户永远想要更多、花得更少,且无法清晰表达需求;技术炒作永远不会停止。
  • 改变的是: 程序员一直在颠覆自己的行业(从打孔卡到高级语言)。过去解决内存错误的经验,在新时代可能毫无价值。

如何蓬勃发展?

  1. 接受变化,对新事物保持好奇和批判。
  2. 区分炒作和真正有效的东西。
  3. 愿意投入时间理解与你相邻的领域或角色。
  4. 资深开发者: 不要只沉迷于技术深度,学习用户体验、客户访谈或商业策略。
  5. 初级开发者: 投资于对软件底层原理的深入理解(如指针、递归、网络协议),即使你当前的工作用不到。
  6. 最后,不要将你的理解、判断、同理心和品味外包给AI。 不要放弃自己的责任,不要成为AI的“人肉代理”。

评论总结

根据评论内容,主要观点和论据总结如下:

观点一:编码并非最难部分,设计、理解需求、系统架构等才是关键 - 评论2(distantprovince):“I think there is a de-facto distinction between different kind of programmers... 'builders' for folks who ship products... 'engineers' for people who build technically sound software.” - 评论9(mrkeen):“Encoding your ideas into a programming language is easy. Understanding that your ideas are bad is hard.” - 评论18(throwatdem12311):“Code generation was never the hard part. Knowing wtf you’re supposed to actually write was always much harder.”

观点二:编码本身确实困难,尤其涉及复杂系统、性能优化或底层实现 - 评论11(ReptileMan):“Code is the hard part if you are John Carmack or in a similar position where you have to squeeze every drop of performance from a hardware.” - 评论25(jdw64):“No, code was always difficult... The people who could actually write algorithms or core implementations were always a minority.” - 评论28(tikhonj):“there still is a ton of programming that is fundamentally difficult... LLMs are currently nowhere near replacing the expertise needed to do novel and non-trivial technical work.”

观点三:AI工具改变了工作性质,但并未消除复杂性,反而引入新挑战 - 评论17(bluejay2387):“you can get massive productivity increases but now I have to figure out how to get a bunch of hyper active child like coding entities... to build stuff without going off the rail.” - 评论18(throwatdem12311):“Claude writes 90% of my code but the bottlenecks always were and still are: getting clear requirements from product, getting the damn code reviewed.” - 评论21(overgard):“It writes a lot of bugs that I have to spot... I think the ideal world version of this stuff is complementary.”

观点四:编码难度因领域和层次而异,多数商业编程属于重复性工作 - 评论25(jdw64):“In CRUD apps, about 70~80% of the work was building the same thing over and over... most of it was repetitive practice.” - 评论14(noman-land):“Typing code into a computer is rapidly becoming physical labor now... The layer of creativity and problem solving is quickly raising to a level above the code.”

观点五:文章本身存在逻辑问题,混淆了“耗时”与“困难” - 评论20(charcircuit):“The author's primary misunderstanding... is that time consuming is being conflated with hard.” - 评论16(jmull):“A pretty weak essay... The arguments are couched in questions which all either have ready answers or imply strawman arguments.” - 评论23(happytoexplain):“This is dishonest. Nobody said 'coding is easy' in a void. They said 'code isn't the hard part' - in the context of LLMs.”

观点六:编码难度与个人身份认同、职业价值感相关 - 评论10(threethirtytwo):“Coding WAS the hard part... Now our skills are getting owned by automation... We fabricate a reality that’s more acceptable.” - 评论15(tehologist):“Coding is easy if you enjoy doing it... met plenty of professional programmers that hated it and never felt the desire to improve.”

观点七:编码难度取决于是否涉及真正的工程挑战(如分布式系统、安全、维护性) - 评论9(mrkeen):“When was the last time you built a system and stared reality right in face... can't trust your clocks, pick 2/3 of CAP, exactly-once delivery impossible.” - 评论19(Ozzie_osman):“Well-engineered code is hard... Code that is reliable, extensible, maintainable, scalable, legible, understandable is hard.”

观点八:文章本质是商业推广,而非技术讨论 - 评论4(qwe516):“Starts with a rant that appeals to hardcore programmers and then tells them to adapt. Of course he is an AI consultant among other things.” - 评论26(rufasterisco):“This is not an article about coding, it’s a promotional piece for business stakeholders.”

总结:评论呈现明显分歧。一方认为编码本身并非最难,真正的挑战在于需求理解、系统设计和工程决策;另一方坚持编码在复杂领域(如底层系统、性能优化)中依然困难。多数评论认可AI工具改变了工作方式,但并未消除复杂性,反而引入新挑战(如代码质量、审查负担)。部分评论批评文章逻辑混乱,混淆“耗时”与“困难”,并指出其商业推广本质。