Having been a procrastinator, I know the feeling he's talking about. In fact, what I advocated above is basically large-scale procrastination of basic life activity like socializing.
And there's a difference between simply being able to work effectively and being able to solve a single difficult problem. For typical programming challenges that can be broken up into smaller chunks a bit of context-switching may not slow you down that much and you can be sure to give attention to important things like paying your rent and having dinner with your girlfriend.
Also, as a quick comment on your post above-- to the extent that "progress, even if it's not progress" isn't basically rephrasing my recommendations to study tools and similar problems, doing the 'work-on-context-instead' approach can be risky. If you spend too much time avoiding the big problem you may never solve it.
And there's a difference between simply being able to work effectively and being able to solve a single difficult problem. For typical programming challenges that can be broken up into smaller chunks a bit of context-switching may not slow you down that much and you can be sure to give attention to important things like paying your rent and having dinner with your girlfriend.
Also, as a quick comment on your post above-- to the extent that "progress, even if it's not progress" isn't basically rephrasing my recommendations to study tools and similar problems, doing the 'work-on-context-instead' approach can be risky. If you spend too much time avoiding the big problem you may never solve it.