再写一篇AI & Philosophy的article,准备post to Medium, 这一篇的主题是 -- 为什么一个真正的software developer, 不会被AI threatened
在说这个问题之前,先说一下人为什么会感到threatened。我的wife喜欢Brat Pitt,我不会觉得threatened,因为也不可能发生什么。或者说我踢球玩,但不会觉得Messi给我threat,只有Ronaldo CR7会觉得Messi是个threat。等等这些例子,说的是,只有当别人(或AI)夺走了本来属于我的东西的时候,我才会觉得threatened。
一般大家认为,software developer的工作就是写code,因此当AI可以更快更好的写code的时候,那么software developer这个role就会极大的受到threat。但是我认为,一个真正的software developer,其核心competence并不是写code,而且做为一个builder,从0到1把东西做出来。这个build的过程中,写code只是很小的一部分,更重要的是如下这些:
- Decide what to build, 这个在Andrew Ng的"product management bottleneck"也有描述(https://www.linkedin.com/posts/andrewyng_grok-raises-questions-meta-poaches-talent-activity-7351623555542896640-cTJT/)。比如,我在做一个notetaking app,是否要支持一个tag cloud,这个决定AI无法代替我来决定
- Decide what to build first and what to build next. Building a software就如果盖房子,先要打地基,再盖一楼,然后再盖二楼,然后再装门窗,等等,需要按照顺序来进行,而AI很难在整体架构上做这些决定
- 作出opinionated tech design decisions -- 比如用next.js还是react,是否用anthropic Batch API,关于scalability,security等,AI更是无法作出很好的决定。
- code aethetics -- 比如,AI似乎不擅长用OOP,导致很多copy/paste,而没有reuse,也不试着cleanup techdebt,或者simplify code, 而复杂的code以及techdebt会使后续的开发更加困难
我认为,有了AI,实际上是"make software development fun again". 人可以更多专注于software development中更有趣的部分,而将具体的写code交给AI,结果是,有5x~10x的productivity gain,以前需要6个月完成的工作,现在1个月就可以完成,让人觉得很爽。
未来的模式是,人如何通过更好的利用AI来完成building software的工作 -- software developer的core competence应该是作为CTO或者team leads,来指导AI具体写code,就好比一个restaurant的star chef,并不是要自己洗菜切菜,那些工作交给assistant,而自己专注于最核心的工作。
AI-assisted Edit Version: 2026-04-06 10:45:22 America/Detroit
Instructions: Write the note into English, to be published to Medium
Why True Software Developers Won't Be Threatened by AI
Before diving into this question, let me first explain why people feel threatened. My wife likes Brad Pitt, but I don't feel threatened because nothing could realistically happen. Similarly, I play soccer casually, but I don't feel threatened by Messi—only Ronaldo would see Messi as a threat. These examples illustrate a key point: we only feel threatened when someone (or something like AI) can take away what rightfully belongs to us.
Most people believe that a software developer's job is to write code. Therefore, when AI can write code faster and better, it seems the software developer role would be greatly threatened. However, I believe that a true software developer's core competence isn't writing code—it's being a builder who creates things from 0 to 1. In this building process, writing code is only a small part. What's more important includes:
1. Deciding what to build
This is also described in Andrew Ng's concept of the "product management bottleneck" (https://www.linkedin.com/posts/andrewyng_grok-raises-questions-meta-poaches-talent-activity-7351623555542896640-cTJT/). For example, when I'm building a note-taking app, should I support a tag cloud feature? AI cannot make this decision for me.
2. Deciding what to build first and what to build next
Building software is like constructing a house—you need to lay the foundation first, then build the first floor, then the second floor, then install doors and windows, etc. Everything must follow a sequence, and AI struggles to make these decisions at the architectural level.
3. Making opinionated tech design decisions
For instance, should we use Next.js or React? Should we use Anthropic's Batch API? What about scalability and security considerations? AI cannot make these decisions well.
4. Code aesthetics
AI doesn't seem proficient with OOP, leading to lots of copy/paste instead of reuse. It also doesn't attempt to clean up tech debt or simplify code, and complex code with tech debt makes subsequent development much more difficult.
I believe that with AI, we can actually "make software development fun again." People can focus more on the interesting parts of software development while delegating the actual code writing to AI. The result is a 5x-10x productivity gain—work that previously took 6 months can now be completed in 1 month, which feels amazing.
The future model is about how humans can better leverage AI to complete software building work. A software developer's core competence should be acting as a CTO or team lead, guiding AI to write specific code—much like a star chef at a restaurant doesn't wash and chop vegetables themselves. Those tasks are delegated to assistants, while the chef focuses on the core work.