|Think about Loose Coupling|
A couple weeks back at work I was given responsibility of a script that's responsible for generating a fairly fundamental report. It ran once a month, and took the best part of two-and-a-half hours to do its' job.
Not great, when all it does is numbercrunch.
A colleague suggested I look into distributing the work over a larger number of processes (the script did the same job, many times, sequentially). This initially put the fear of God into me - I'd never touched distribution before, bar theoretically.
I did much research into how best to distribute using Perl and c-shell. Finding that Perl supported a C-style fork relieved me a little - and I ended up coupling that with a system call to a c-shell script on a remote computer.
Two weeks, and a post or two on here later, I had a working prototype. It looked good, having a quick Tk GUI to make it vaguely user-friendly, and could take in the list of processors our overnight batch used and ship each iteration of the script out to one of them.
I think that I managed to prove myself during the project - alongside learning a hell of a lot about Perl and Unix. That felt good.
I feel, though, that the feeling of "I just did something I didn't think I could pull off" - the feeling everyone has when their first ever program runs and works properly, even if it just prints "Hello" on the screen - gets harder and harder to achieve. As you learn more and more, and get more experienced, I think it gets more difficult to feel good about the outcome of projects, simply because they don't stretch you as much as they once might have. That's a shame, in my opinion, and it's important to try and keep the feeling alive, even years down the line.
*shrug* Just my quick thoughts ..