For many C#, Java and C++ engineers Uncle Bob is their savior and GoF are the apostles.
Everything should follow SOLID and clean principles and be implemented using design patterns.
Everything should follow SOLID and clean principles and be implemented using design patterns.
Maybe it's a right of passage to burn yourself badly enough over-architected solutions, where you finally start to understand you don't need all the complexity. Write the code for humans, as simple as you can. Keep large performance issues in mind, but only code around them when they become a problem or are extremely obvious. If anything, it's helped me to steer junior developers away from complex code, while encouraging them to try it out in their own time. Go ahead and figure things out on your own, but let's not do it on a shared codebase, please?