November 6, 2025
Humans vs. Codebots
Writing software is an act of learning. Don’t automate it.
Devs say coding is learning, not factory work — but the automate-everything crowd fires back
TLDR: The author says coding is a learning journey where AI can help with setup but can’t replace human discovery. Comments split: purists defend hands-on craft, while others push for drag‑and‑drop tools and code that writes code—sparking a lively debate about how much of software we should automate.
The article argues that writing software is a hands‑on learning process, not a conveyor belt, and says AI helpers (so‑called large language models, or LLMs) are great for kickstarting projects but bad at capturing deeper intent. The crowd? Oh, they showed up with opinions. One camp cheered, with a top comment crowning “Programming as theory building” as undefeated and even spotting a nerdy Easter egg from a classic design book. Another camp yelled, basically, “Let the robots cook!” A front‑end designer said user interfaces should’ve been drag‑and‑drop years ago, blaming the web’s layout language for holding us back. Some confessed their love for “code that writes code,” from C++ metaprogramming to macros—shortcuts that churn out repetitive code. And then came the headline police: a skeptic says the title clashes with the core of software—automation—and insists we should “automate the automation.” Meanwhile, the vibe‑check squad linked to a spicy essay arguing “vibe coding is overrated”, dunking on wing‑it workflows. The memes? Folks turned “Hello, World” into a boss‑fight moment—cute until the real work starts. TL;DR: it’s a cage match between craft‑as‑learning and push‑button coding, and nobody’s tapping out yet.
Key Points
- •Software design in practice emerges through implementation and feedback rather than being finalized upfront.
- •Agile practices highlighted the need for iterative development and collaboration, a lesson the article emphasizes should not be forgotten.
- •LLMs assist with brainstorming and boilerplate but often produce subtly incorrect or misaligned code for complex intent.
- •LLMs are most effective in initial setup tasks—drafting build files, selecting flags, suggesting dependency versions, and bootstrapping.
- •The article outlines a learning loop starting with observing/understanding and proceeding to experimenting/trying, underscoring coding as an act of learning.