Last night I read an article by Adris Azeez called Avoiding Burnout as as Software Developer and it got me thinking about the steps I take to avoid burnout, boredom, etc.
Several of the ideas Adris talks about are very similar to what I already do, but the main point is to change things up, take a break when needed, and if you're not in "coding" mode do something else that's productive.
As a developer for over 20 years I can honestly say there are days where the "ideas" and "code" just doesn't flow. So here are a few things I do to still be productive at work when I'm developing:
1) Work on a "fun" project: sometimes when you work on the same project for several days/weeks, the brain needs a break. I find that if I focus on something new it refreshes my mind and the creative juices start flowing again. For example, I store several "fun" projects in my head to develop in the future. Recently, I developed a new March Madness bracket system for work. It only took me about 1.5 days to complete but I also learned some new jQuery tricks (which I can apply to future work applications).
2) Learn a new language: coding in the same language everyday can get quite cumbersome. Especially when you're just writing queries for reports. So I usually try to study some new languages every once in awhile just to help with the boredom of the same ole language.
3) Read blogs: sometimes I'll break the monotony by reading blogs on the latest technologies, frameworks, etc. And if you have your own blog, write about something on your blog (like I'm doing now :) )
4) Graphics and Documentation: if you have a job like mine where you're the only developer, you have many hats to wear as a full stack developer; sometimes if projects exist that deal with some graphics I'll work on that for a little while, and/or work on some documentation for some projects.
5) Organize: it's also good to organize your week or month; if I need a break I sometimes plan these things out way ahead. It's good to know what's coming up!