I have a saying I've given to every programmer I've mentored, that builds on what Larry Wall said:
Good programmers are Lazy, Shy, Dry, and Spry.<p>Lazy - Same thing, but also with emphasis on automation and guarding against overengineering<p>Shy - Encapsulating code modules and writing to enable testing in isolation<p>Dry - Don't repeat yourself, automate where you can when you can<p>Spry - Always be willing to adapt better processes, adopt the Agile mindset and don't be a slave to any one process or technique. At a deeper level this includes striving for the Ri level of Shu Ha Ri in our programming skills [1]<p>The above is going in a book I'm writing, albeit slowly.<p>[1] <a href="https://en.wikipedia.org/wiki/Shuhari" rel="nofollow">https://en.wikipedia.org/wiki/Shuhari</a>