4 ms·
The more I learn about development - and the more I work on real projects - the more I realize that we're perpetually at the "apprentice" level. By that, I mean
by rtf 19y ago
The more I learn about development - and the more I work on real projects - the more I realize that we're perpetually at the "apprentice" level. By that, I mean that we're writing new code with no standardized solution. With few exceptions, old problems eventually get packaged up in a preexisting library or app, so unless you're fanatical about reinventing wheels(a good student exercise), all programming problems eventually involve a stage of research; maybe several stages, as once you get far along one track you realize the structure of the code, which probably looked OK at one point, is now completely wrong and get the urge to rewrite. The old "write one to throw away" adage.
And indeed, once you've rewritten three+ times, you've probably figured out a nearly optimal structure for the particular problem, but most production code can never get there. The perceived cost of rewrites is very high, and it's hard to know, in a strict business sense, whether it's the right thing to do.
That's why I think experience can only help so much.