We have to understand that all "smart developers" were once "not-so-smart developers". Yes, there are tools and frameworks to work on those things. I think it is called the black-box function whereas you don't know what happens in the process and you only care about the input and output.
But how would the "not-so-smart developer" know it (in case the developer doesn't really know about it)? The natural instinct would be to go through my accumulated knowledge.
Now it's time for the team communication to enter. This where the well-experienced developers guide the less experienced developers. This gives the opportunity to guide them and help them not over-engineer things and not re-invent things because they can see the problem from another perspective. I love the advice of not over-engineering or not re-inventing the well. I think it is also called Bikeshedding programming. But, let's guide them and communicate very well with the team to get the expected output.