Read: The Positive Programmer.
I've been telling myself lately to be more humble. I believe my worst qualities are brought to the surface by a (sometimes unjust) feeling of entitlement. "I am now a software developer with lots of experience and I've been on this project longer than anyone else, so everyone must listen to me and I am always right". That's the inner voice I must combat with. The fact that it's never that black and white doesn't help either. And while software development is a great entrypoint to this kind of mindset, it extends to every area of my life. "I have lived in Japan for 5 years so obviously I have more life experience than you" - is another one that comes to mind. When I think about what's different between me as I am now, and the me from 5 years ago, the major difference is absolutely that of arrogance.
Be more humble. Humility is what makes you appreciate other people more, and gives you a more positive outlook on life. If, instead of assuming you're in a place because you have a right to be there, you see it as a privilege, you will look at life with new eyes. The older I get, the easier this is to forget.
Professionally I am encountering another clash of beliefs. I believe that, in my unique situation, I can either choose to be a better programmer, or a better person. No matter how I look at it, it seems that I have to choose. What I, and probably other programmers with me, hold in high standard, are high quality code, software delivered to perfection, well-tested, well-architectured. To really evolve myself in that area and learn new things, I will have to disappoint people who live in the real world, such as my managers and our customers, since development time will increase. And to be perfectly honest, I don't really care about developing myself as a programmer any more. In Japan I've become an expert in all things Java and SQL, in London I've become proficient in Python, Django and Appengine. In the meantime I've been teaching myself Android and iOS on the side. I am arrogantly confident that I can pick up any programming language that needs knowing and jump into any kind of job that I would be interested in.
But I'd rather become a better person. I'd rather spend more time interacting with people, talking to them, mediating, learning how they work and what motivates them. I really don't like conflict. I'd like to think that human communication is something that positively offsets me from other programmers. But every time I go deeper into a software problem, I have to commit to the solution, forcing me to become less flexible, less open to other people's opinions. That might be old age talking, but I'd love to find out a way where I can combine the keep-people-happy approach with the my-solution-is-best attitude. It seems though that, at this stage of my life, I learn more by sticking my head out and talking to people than by learning yet another programming language or framework.
For a post that was supposed to tell me to be humble, it turned out pretty arrogant. Forgive me, I'm re-learning this whole humility thing.