Good points, but a very important part of being a 'good' developer is prioritizing goals based on relative impact, and ultimately Getting Things Done. 'Sharpening the axe' and programming for its own sake is great, but when it gets in the way of your overall goals, then it becomes a self-indulgent hobby.