When I came to the UK and have been interviewed by my first employer, I needed to explain away the fears and ensure that the code I write, is using English. Not enough said, I prefer English for being precise and concise. This allowed me to think, I could write the code, which could be read as a book and this way easily communicate its meaning...
During my studies I have been thought and proven, that the best and durable solutions are "simple" in nature. But only with the right level of flexibility they can prove to be a valuable business propositions. To strike the right balance there, is hard but possible.
Over years within industry, I have learned to grasp principles describing general ideas first. So that their application does not overshadow the intent of the design. Object oriented methodologies have somehow kept me away from troubles, which mismanagement of side effects and their locality can lead to.
The DRY principle has been always in my mind as repetition leads to redundancy and maintenance nightmares. So unless there is a good reason (like performance) factoring commonalities out has always been my goal when coding.
Anyway, I could go on and on here. But I would be simply repeating the content of this excellent article published recently by Dr Dobb's Journal, which discusses the theory of programming, which BTW, for those who know me, know also that I could sign with both of my hands ;)