惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Archives - TechRepublic
Security Archives - TechRepublic
Project Zero
Project Zero
K
Kaspersky official blog
G
Google Developers Blog
T
Threat Research - Cisco Blogs
T
The Blog of Author Tim Ferriss
Cyberwarzone
Cyberwarzone
Y
Y Combinator Blog
Recorded Future
Recorded Future
Blog — PlanetScale
Blog — PlanetScale
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Cisco Talos Blog
Cisco Talos Blog
Latest news
Latest news
Microsoft Security Blog
Microsoft Security Blog
H
Help Net Security
S
Schneier on Security
P
Palo Alto Networks Blog
H
Hacker News: Front Page
N
News and Events Feed by Topic
N
Netflix TechBlog - Medium
博客园 - Franky
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
SecWiki News
SecWiki News
Cloudbric
Cloudbric
TaoSecurity Blog
TaoSecurity Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The Hacker News
The Hacker News
C
Check Point Blog
L
LangChain Blog
腾讯CDC
小众软件
小众软件
T
Tenable Blog
Google DeepMind News
Google DeepMind News
GbyAI
GbyAI
L
LINUX DO - 最新话题
A
About on SuperTechFans
Google Online Security Blog
Google Online Security Blog
C
Cisco Blogs
Recent Announcements
Recent Announcements
Hacker News: Ask HN
Hacker News: Ask HN
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Vercel News
Vercel News
雷峰网
雷峰网
美团技术团队
D
DataBreaches.Net
Martin Fowler
Martin Fowler
Help Net Security
Help Net Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
F
Full Disclosure
博客园_首页

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
why the 'hand coding' backlash is really about agency, not nostalgia
Paulo Victor · 2026-05-12 · via DEV Community

There is a post making the rounds on Hacker News today that caught my attention for exactly the right reasons.

The title is deliberately provocative: "I'm going back to writing code by hand."

It hit 900+ points in a few hours, and the comments section is exactly what you would expect. People saying "this is Luddite nonsense." People saying "finally someone said it." People arguing about whether the author is a bad engineer or the only honest one in the room.

Both sides are missing the point, I think. The piece is not really about whether to use AI. It is about something more subtle: the feeling that you can no longer tell what your tools are doing to your work.

That is not nostalgia. That is a real signal.

thinking about agency

what the hand-coding post actually says

The article makes a short, honest argument. The author describes using AI heavily for code generation, getting comfortable with it, and then noticing an uncomfortable pattern: they were spending less time understanding the code they owned. Diffs were getting larger and less familiar. Edge cases were getting missed. The review process felt shallower because the output looked polished even when it was wrong.

The solution the author chose was to go back to writing code by hand for a while. Not forever. Not as a moral stance. As a recalibration.

That is not Luddism. That is noticing that your feedback loop has degraded and taking steps to fix it.

The pushback on HN is mostly about scale: "you cannot reject productivity gains just because they feel uncomfortable." And sure, at scale, that argument has teeth. But the individual experience is real, and I think it points to something the industry is not talking about enough.

the real problem is indistinguishability

I do not think the backlash is against AI, or even against code generation. I think it is against indistinguishability — the state where you can no longer reliably tell the difference between output that is correct and output that just looks correct.

This is a problem that has empirical backing now.

There is a paper from arXiv that came out alongside the hand-coding post — "LLMs Corrupt Your Documents When You Delegate" — that studied what happens when you delegate document processing to an LLM. The finding is straightforward and unsettling: delegated workflows systematically introduce errors. Not random noise. Systematic, hard-to-detect corruption of the content being processed.

The paper is about documents, but the pattern applies directly to code. When you delegate code generation to an AI and then review the output, you are operating in a mode where:

  • The output is polished enough to pass a quick scan.
  • The errors are not random typos. They are logical gaps, missing edge cases, incorrect assumptions that are internally consistent.
  • The review process is asymmetrical: the model produced the output in seconds, but catching its mistakes takes as long as writing the code yourself would have taken.
  • The cost of a missed error is not in the generation step. It is in the production incident three weeks later.

The hand-coding author is not the first person to notice this. But the combination of the personal account and the empirical paper makes the pattern harder to dismiss as "just someone being resistant to change."

the meta misery index

There is another data point that fits the pattern.

The New York Times reported this week that Meta's embrace of AI is making employees miserable — 455 points on HN, heavy discussion. The story describes engineers at Meta burning out because AI adoption was mandated from the top, not enabled from within.

The details matter: engineers were being evaluated on AI tool usage metrics. Teams were pressured to show AI adoption numbers. What started as a productivity initiative turned into a compliance exercise. And the result was not better engineering. It was fatigue, resentment, and a growing sense that the work had become about feeding outputs rather than building systems.

I have seen versions of this dynamic in smaller teams too. When AI adoption becomes a metric that management tracks, the incentives go wrong fast. People stop asking "is this tool making our system better?" and start asking "how do I make my AI usage chart go up?"

The Meta story is a case study in what happens when you optimize for the wrong signal. Engineers notice. They get demoralized. The AI tooling becomes overhead with extra steps.

what agency actually means in an ai-assisted workflow

I keep coming back to the concept of agency because I think it is the frame that makes sense of all three signals — the hand-coding post, the LLM corruption paper, and the Meta burnout story.

Agency, in this context, means:

  • You understand what the code you ship actually does.
  • You can trace a production issue back to its cause without guessing.
  • You know when to trust the tool and when to override it.
  • You are not surprised by what your system does in production.

AI-assisted workflows can preserve agency, but it takes deliberate work. The default behavior — generate, skim, merge, move on — erodes agency incrementally. Each diff you do not fully understand is a small loss. Each review where you trust the output because it looks clean is a bet that may or may not pay off.

The teams that maintain agency share a few patterns:

  1. They do not let the agent touch unfamiliar code. If nobody on the team deeply understands a module, the agent is not going to help. It will produce plausible changes that compound confusion.

  2. They review agent output with more scrutiny, not less. The more confident the output looks, the more carefully they read it. They have learned that polished wrong is more dangerous than obviously wrong.

  3. They separate generation from review, and enforce a gap. They write with the agent, then review without it. The review session does not have the generation context open. They look at the diff as if someone else wrote it.

  4. They maintain a manual subset of the codebase. Infrastructure configs. Authentication logic. State management. The parts where being wrong is expensive. These are written by hand and reviewed by multiple people. Agents can suggest, but they do not author.

  5. They track rework, not output. Rework ratio is the signal that tells you whether agency is eroding. If code you generate needs more fixes than code you write, you have a problem that generation speed does not solve.

the second-order effect nobody is modeling

Here is the part that worries me the most.

When you stop writing code by hand and start reviewing generated code, you are not just changing how code gets written. You are changing how you learn.

Writing code by hand is a learning mechanism. Every time you type out a loop, a conditional, a state transition, a retry strategy, you are reinforcing your mental model of the system. You are building the intuition that tells you "this looks right" or "something is off here."

When you delegate the writing, you lose that reinforcement loop.

The concern is not that you stop being able to write code. It is that your intuition for what good code looks like atrophies. You stop seeing the patterns of what makes a function robust. You stop noticing when an abstraction is wrong because you did not write it and feel its weight.

This is the pattern Sean Goedecke wrote about in "Software engineering may no longer be a lifetime career" — AI tooling may de-skill engineers the same way physical labor de-skills construction workers over time. Not because the tools are bad. Because the tools change what the body learns.

The hand-coding backlash is, I think, a response to this. Not a rejection of AI. A refusal to let the learning loop close.

learning by doing

what i think is actually happening

The way I read the current moment is this:

A significant number of experienced engineers are starting to feel something they cannot quite articulate. They are using AI tools, getting real productivity gains, and also feeling like something is slipping. The code they produce is not worse — but their relationship to it is different. More distant. Less intimate.

The "going back to hand coding" post is one person articulating that feeling. The LLM corruption paper is the empirical version of the same intuition. The Meta burnout story is what happens when organizations ignore the feeling and push harder.

None of these signals say "AI is bad." They say "the mode of work has changed, and we have not yet figured out how to preserve agency in the new mode."

That is a solvable problem. But it requires accepting that the problem exists, rather than dismissing the people who feel it as resistant to progress.

the practical takeaway

If you are an engineer reading this and wondering whether you should "go back to hand coding," I do not think the answer is binary. The answer is probably:

  • Use AI for what it is good at: boilerplate, repetitive patterns, well-scoped generation, documentation drafts, code you already know how to write.
  • Protect what makes you good: manual writing for unfamiliar domains, deep review of generated changes, time to understand the system without an assistant in your ear.
  • Measure the right thing: not how many diffs you generate, but how many of them survive the next quarter without needing rework.

The hand-coding backlash is not a rejection of the future. It is a signal that the future needs better scaffolding. And the engineers who figure out how to build that scaffolding — for themselves and their teams — are going to be the ones who stay effective in both modes.

Because the goal was never to write the most code in the shortest time. The goal was to build systems that work, that last, and that you understand well enough to fix at 3 AM.

Everything else is just tooling.


references