However, last year I got tired of the full hours and a bit depressed because of lots of factors that prevented me from getting things done, and after one realisation I took a month off. Coming back to work I figured I shall be going with working full hours for three months and then taking a month off again. So that comes to three months of spare time and nine months of work annually.
The realisation was about working patterns. For a programmer like me, the best productivity comes in bursts so I'd happily do three ~12-hour days and keep two days off as opposed to working the official 7.5 hours (in my country) every day. This has always been so, even as a kid. I could work on something really intensively for a few days and then I needed to do something completely different. The newest realization was that it works on longer timescale too. I can work three months and do my absolute best, and then relax and have time for my own things.
This sort of a contract――relax pattern is quite reminiscent to life and nature itself. I feel much at home between the pushes and pulls. I'll see how the first year will turn out to be.
Over the years I've also realised that staying productive is mostly just about conserving these important productivity patterns.
A lot of what happens at work eats away from these patterns but if you can keep them mostly intact then you'll get productivity by default. That is, assuming that you love programming. Hint: if you're known to occasionally spend hours on hacking something at work at an intensity where nobody can pull you away from it, it's a good sign that you love programming.