Adding to that, when you're starting you believe that complexity somehow decreases your chances for bugs, improves your code quality and things like that.
I believe that many times that's not necessary. And I believe that many senior developers don't grow out of that phase, and keep trying to apply ALL concepts and ALL abstractions ALL THE TIME!
It becomes a giant feedback loop with some people. You create a bunch of complexity in the beginning, learn more and lean it down, then learn more and make it complex again trying to fit some neat pattern you read about. I've been guilty of it myself.
Sometimes you have to step back and ask yourself "Am I shipping anything? Why not?"
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.