Maybe this is just a way I rationalize all the mistakes I've made, but I truly think there are certain lessons in life that you can't really learn from others, you just have to experience a hurdle yourself to understand how to avoid it in the future.
What are some lessons like this in programming/tech?
Top comments (2)
Personally, I keep having more and more "aha!" moments around maintainability, as I gain exposur to long-running code bases, and how they evolve. How, in some places, layers are added upon layers to taper over old design decisions.
Also the design of a public API is incredibly important, because unless your users are likely to keep up with new versions of your software, you can only make backwards compatible changes.
For me, a lot of the SOLID rules were hard won, and writing code for future me to debug. Good logging/tracing, you only get right after the Heisenbug in production!