So, I think up until a little after I graduated from college, I was a pretty closed minded person in terms of software development. I felt that my education was a waste of time and I knew all there was to know. Some of this was due to personal arrogance, and some of it was due to the lack of an environment which drove me to do better. I think one of the turning points for me was my first JA-SIG conference. JA-SIG is an organization of University IT staff who get together and talk about Java in their organization. I went in thinking I knew quite a bit about Java, but left realizing there was a lot of cool stuff I’d never done before. It was the first time I saw the Eclipse IDE, which converted me to a die-hard vi/command line person to an IDE user. Things like continuous integration, unit testing, web services, etc. were new things I hadn’t tried and didn’t really think I needed to know anything about.
Anyway, the whole realization I had starting with that conference was that you need to keep an open mind and try new things with respect to technology. You should also seek out the experts in your domain and follow their examples. In terms of their conventions and styles, you may think you can come up with the best solution yourself, but experience of others cannot be written off as useless. Follow their example, and if it doesn’t work, revise it. And constantly search for ways to do things that other people have come up with and you haven’t seen yet.
Once you start following these philosophies, you will find that you are discovering all sorts of new and exciting ways to improve your productivity instead of following the same boring old routine.