Here’s a (very old) joke I like to tell on tech forums sometimes; it nicely encapsulates how they communicate. Most people get it, but there’s always a few who don’t think it’s funny:

A programer’s wife asks him to do some shopping: “Please buy a loaf of bread, and if they have eggs, buy a dozen.”
He comes back with 12 loaves of bread.
The wife asks: “Why on earth would you get 12 loaves of bread?”
“They had eggs.”

All of the worst programmers I have worked with do that exact thing and refuse to acknowledge that they might have misunderstood what was said.

The good ones ask for clarification when something sounds weird.

Ugh.

Listen here, you little shits. I hired you because I don’t need robots. I can build robots, for crying out loud.

As a programmer working support. I often ask users for clarification on how they expect things to work, and they often make me imagine a dog going “no take only throw” by saying ‘i don’t know just fix it.’
Yeah, those people are annoying too.

Early on in my career I’ve wasted time on implementing projects a few times so ever since I clarify to a fault even if it doesn’t sound weird. If something can be interpreted multiple ways I always ask for clarification even if one interpretation is “more popular”. I’d rather spend 5 minutes asking for clarification than waste a week of everyone’s time.

Since then I don’t think I’ve ever implemented something “wrong”. There might be miscommunications in other parts of the communication chain but never with me.