I passed out of my college with a degree in computer science about 2 years back and since then I have worked in a multi-national firm which pays me decently well. I am sincerely interested in technology and in my work and I try to do everything to the best way possible and also learn the maximum out of it. I have a few colleagues who are experienced and really smart and I really enjoy and learn a lot working with them.
However, I feel the same is not true for all my colleagues. There are many others who are simply not interested in technology. When given a problem, they would choose the first available option or they would just look at an existing solution and copy-paste the same. And such colleagues are actually at positions senior to me. My firm is not strictly an IT firm and so people not being very good at technology is not uncommon.
My question is, how do I work with colleagues like those, especially when they are senior to me?
I feel bad (and also sad) when something is done in a way when I know a better way to do the same exists or when someone does something without much effort and I know that had I done the same, I would have put more effort and come up with a better solution. I can go on with more examples but hopefully I have explained the general situation. I can't correct everyone/everything, I am not the smartest person either but at times you know that things are just not as good as they should be.
How do I make my work experience more enjoyable with such colleagues? Also, how do I keep myself continuously motivated when working in such an environment?
PS: While I appreciate all the responses, I am surprised to see so many people advocating sub-standard work as long as you "get it done". Is that what is expected of me as well.
Also, I didn't want this to be a discussion on best ways of writing code which some of this has turned into.