Tony Schwartz/Harvard Business Review has an interesting bullet point list of what is necessary to excel in any field: Six Keys to Being Excellent at Anything It’s based on Anders Ericsson’s work in the field, and holds as well for computer programmers as practitioners in any other field. See also: Accelerate your Perl learning