Not a bad analogy, but Engineering follows the rules of Physics and Chemistry, which were built on layers and layers of scientific thought and experiment. Hardly anyone writing code these days understands what's happening under the hood.
Disclaimer: I've been programming since 1965. I'm proud of the fact that I can create logic gates that will do medium to complex mathematics.
Programmers have become like lawyers: They are sometimes competent technicians but are not required to engage in original thought. We are long past the time when we should really need "coders" anymore for application production. We need thinkers who can define requirements precisely, designers who can describe processes to produce those results, and then turn the design (UML. Warnier-Orr, Flowchart, etc.) over to a generator that produces reliable, proven object code. The inventiveness is in the design, not the coding (usually...some exceptions apply).
In a society where we are faced with self-driving cars and machines that care for sick, young and elderly, the type of "coding" (based on layers of algorithms developed back in the 60's..including errors) will not be sufficient. Committee-work will not make it better.
Goedel? Who cares? Somewhere there is an original thinker who can traverse the wall of logical abstraction that will allow us to prove programs correct in multiple domains. When that happens, "coding" will be demonstrated in craft fairs instead of professional offices.