I disagree!
A (real) novice programmer's number one worry should be getting paid. Why should they divert their attention and spend extra effort on writing maintainable code, just so you have an easier time afterward? That's awfully selfish advice.
You might claim writing maintainable code will pay off for them, but to properly evaluate that we need to weigh the marginal utilities. What's better, an extra hour improving the maintainability of your code, or an extra hour spent empathizing with the client? Ummm... And you can't say both of those things are first priority, that's not how it works. I've been coding for money for half of my life so listen to my words, ye lemmings: ship the thing, make the client happy, get paid. That's number one. Maintainability ain't number one, it ain't even in the top ten.
Bad design choices are much more expensive to fix down the road than when they were were created. You seem to be saying that any time spent addressing this issue is worthless in comparison to spending more time empathizing with the customer.
The Open Thread posted at the beginning of the month has exceeded 500 comments – new Open Thread posts may be made here.
This thread is for the discussion of Less Wrong topics that have not appeared in recent posts. If a discussion gets unwieldy, celebrate by turning it into a top-level post.