Experienced programmers tend to write code in a unit-based manner. This saves time later on and makes debugging easier.
Inexperienced programmers tend to write targeted, hard-coded solutions for problems.
These solutions can only be used once and are not considered ‘flexible’ or ‘extensible’ code.
Experienced programmers have trained their brains to be debugging machines. They know (or can find) the exact path that a program will follow during the execution of a transaction.
Inexperienced programmers easily get lost in this process or just don’t understand the flow at all.
Any enterprise-grade program worth its salt is eventually forced to follow the tenets of high cohesion and low coupling. Any experienced programmer understands this at some level.
Inexperienced programmers don’t understand this.
They don’t plan ahead or think about the future implications of their actions. Programs they create tend to turn into massively bloated ruins after they hit a certain size threshold without proper guidance.