In my opinion 1 year break is far too long. I find that 2 weeks of intensive self education every now and then is perfectly enough to stay up to date with the industry.
Example: Last week I played with backbone.js & Co., this week I'm playing with the cutting edge stuff from HTML5. And next week I'll probably get another job for which I'll be able to use my new knowledge.
Learning the basics of new frameworks/libraries can be done in two weeks. Learning an entirely new field of study or research can be justified in terms of many months.
I disagree - unless you are talking about becoming an expert. But I prefer to become an expert in the course of using things in the real world.
This applies to the theoretical knowledge as well - you can easily learn new data structures or algorithms in two weeks. Then you can master them when you have a problem that requires you to use them.
Example: Last week I played with backbone.js & Co., this week I'm playing with the cutting edge stuff from HTML5. And next week I'll probably get another job for which I'll be able to use my new knowledge.