How do you add to your programming toolbox?
sophacles: I typically have a backlog of things I would like to do. When I go to conferences, or have boring meetings where I only need half an ear to the proceedings, or whatever, I do those things. Usually they are toys or side projects and what-have-you. They are usually doable in some form that 'I've been meaning to learn'. They are usually fairly easy as well.  Then I just combine all the above factors. If I want to learn some new vim thing, (or generators or ...) I do the extra task (which is easy) with a focus on using what I'm trying to learn.It doesn't always take, nor do I expect it to. Even if I get just one small technique to "stick" and become regularly used, I do this enough that I fairly rapidly gain new skills and tools.HTH