3 ms·
Slow and steady wins the race. As you tackle more problems with software, you'll start to realize that building large systems is really about understanding how
by nirvanatikku 14y ago
Slow and steady wins the race.
As you tackle more problems with software, you'll start to realize that building large systems is really about understanding how to break things down. What you're describing is akin to what I felt when graduating college (did EE, started working in Software), but its been almost 5 years now and I realize that the 'large programs' or complex programs, are simply built over time. That's not to say that large programs need to be built in weeks/months, that's all up to the dev talent that you employ, but your approach/strategy starts to change significantly; what you currently consider challenging will become trivial. I've also found that if the solution to a problem starts to get too complex, you're probably stuck with technical debt or doing it wrong.
Regarding the 'aha moment' -- it isn't actually as momentous as one thinks. It starts to become commonplace, and it's important that you don't let those moments guide you, but instead, treat them as milestones and learn from them. You're always going to learn, grow and craft your expertise. One thing I would personally suggest is for you to work on problems that you enjoy (if not in professional capacity, on the side). Also, realize that programming requires dedication, commitment and humility. Always strive for the best, and you'll get there.