This is good (from @shriramk): https://mastodon.social/@shriramk/110040524796761802

The skill of recognizing and diagnosing broken code only becomes •more• important in the face of LLM code generators.

Any experienced programmer worth their salt will tell you that •producing• code — learning syntax, finding examples, combining them, adding behaviors, adding complexity — is the •easy• part of programming.

The hard part: “How can it break? How will it surprise us? How will it change? Does it •really• accomplish our goal? What •is• our goal? Are we all even imagining the same goal? Do we understand each other? Will the next person to work on this understand it? Should we even build this?”

@inthehands Put another way: projects don't fail because of our struggles with writing code but because of our struggles with communicating with people.
@schrotie
The two hardest problems in computer science are yourself and other people.
@inthehands @schrotie Allegedly also known as "naming things" and "cache invalidation", though I'm unsure which is which and afraid of what that might imply.
@das_g "The two hardest problems in computer science are cache invalidation, naming things, and off by one errors." 😄
@denny There's a whole collection of variations: https://martinfowler.com/bliki/TwoHardThings.html
bliki: Two Hard Things

There are only two hard things in Computer Science: cache invalidation and naming things -- Phil Karlton (bonus variations on the page)

martinfowler.com