written by owen on 2013-May-21.
Firstly I avoid doing dumb stuff. The actual definition of "Dumb stuff" is really relative to your experience and knowledge but in general dumb stuff in a programming context usually puts stress on the brain. I learned early in my programming career that dumb stuff should be avoided at all costs. If something doesn't look right or requires tonnes of "busy work" then chances are its pretty dumb. Java 3, Eclipse 1, drupal 5, buggy tedious languages, I avoid all that stuff. ( see what I did there? ). If you have to do it, do it as quickly and efficiently as possible. Do things you are good at, or things that allow you make some kind of progress (whether real or mental). Because life without progress is death. You have got to give your brain something new to chew on from time to time.
Have Side Projects
Secondly I have alot of side projects that I work on just for kicks, games, my blog and my still unfinished website content management system etc. Stuff I really enjoy working on even if I make ONLY A LITTLE PROGRESS every week. Sometimes I will be chipping away at some projects for YEARS because they give me something to do outside of my regular day job. The devil finds work for idle hands.
Allowing you brain to relax
Right now I am brainstorming a new a access rights table for my database and its been like 3 months since I touched the actual code. I just feel that the approach I have in my head is not right, so I will keep flipping it around in my head for a couple more weeks until I come to a solution which looks 90% good. I don't actually know if I will find a solution, but finding a solution is not something you should worry about. I know a solution/hack is out there somewhere and when I eventually see it I will just code it and it will be done. This may seem like a waste of time (or ADD?) but sometimes you just need to have something fresh for your mind to process when you hit a wall.
Once I hit a wall I just jump to something else that I have been working on. Having a couple side projects that are weird/different, in various languages, will help to keep your brain from being burnt out. I can then just jump to something else and forget about my current wall. The last thing you want to do is be stuck thinking about something that your brain is trying to ignore. Its really not natural. It is perfectly fine to reset every now again.
People who are successful do not work hard all the time. If they say so they are lying, - they drive around in fast cars with heated seats. They play hard and live less stressful lives. There are sports and video games; although as I get older my backlog keeps growing (probably because I can buy them now with my own money). But video games still have that "problem solving" appeal which focus my brain to think about something else besides my current bug. Although you should stay away from Call of Duty and online multiplayer because they are all A BIG WASTE OF TIME! They give you the instant gratification that you get from completing a game without the actual end result, hence your time/life is basically wasted on a zero output activity. You only have so many days in your life, spend some of it doing something you love to do - even if it is stupid, or other people think that it is pointless masterbation.
Smartphones are a distraction. Instant messengers are a distraction. Choices are a distraction. Currently I only program games on the Wii hardware, not because I am lazy but because the framework is simple, stable and flat, I am not upgrading my APIs and drives every month. It allows my mind to reach the point where I am no longer learning the frame work but I am free to use it to achieve meaningful output and new ideas.
In the end you need to ensure that you smell the roses and maintain balance in everything you do.