|
The bell-curve meme popular on reddit showing both extremes using the same solution, while the "average" cries, is dead on. OP is on the right path: think before you code. One of the neat things about being in the last few years of my career (started in 1988) is how the tools change. I'm a senior principal software architect at a large-ish company. And I don't write a single line of code. I write everything in Visio, Word, and PowerPoint (and sometimes PlantUML). As you move up the abstraction ladder the tools become simpler. I define architectures that will deploy into 10-year lifespan applications (think military, medical, and automotive tier-1), and the code that implements it--or even the language used--has absolutely zero impact on the architecture. Mostly C and C++ (went through an Ada period, too), and some of it might even be implemented in Rust over the next few years as it matures into the automotive world, but when you're high enough up, the implementation is irrelevant. What matters are the building blocks, the apis, and most importantly, the encapsulation because that has an impact on the silicon, security, manufacturing, and test. Stuff that can be drawn and explained in a few slides, and not the code itself. (Of course, my lovely boxes have to be able to withstand upstream discoveries of flaws in the architecture, but that's the fun part!) |