Aside from the "amateur" qualifier, the Booch quote below provides insight to those questions:
The amateur software engineer is always in search of magic,
some sensational method or tool whose application promises
to render software development trivial. It is the mark of
the professional software engineer to know that no such
panacea exist.[0]
"Code" is shorthand for "encode", which can be defined as "encoding a solution to a problem", which implies knowing what problem to solve, and thus ultimately implying understanding of same.So "good enough" depends on the stakeholders' definition of that valuation.
IOW, if a person tasked with delivering a solution can instead deliver garbage and still get paid for it, then it is "good enough" for some definition of same. If the people approving a person's remuneration are not satisfied with this type of work product, then the answer as to whether it is "good enough" or not will be quickly answered.