I've had this idea for a project I want to complete in my spare time (as part of my hobby). It involves small bits of coding, but not too much. Actually the vast bulk of it will be arranging bits of unstructured data into something more manageable and digestible, and doing a lot of organizing.<p>But one problem I'm having is how to get into the right state for this. I've read various articles online which address the issue of state: advice like have a cup of coffee beforehand, clean your workspace, write a clear outline of what needs to be done, etc<p>But I've tried all these and still can't stay focused. I probably have some mild form of ADD brought on by excessive scrolling through Twitter and whilst caffeine is nice, it only makes me jittery and makes me feel like I'm getting work done, but when measured, it's no different than being off caffeine, or 'sober'.<p>Are there any other tips besides the ones constantly being churned out online in articles on how to get in the zone and perform brilliant work? What hacks do you use to get in a flow state and do really focused work?
Some ideas that work for me:<p>Use diagrams to have a visual/spatial map of the work and workpieces. PlantUML makes this quick/easy to do. Freeplane/Freemind is also helpful.
It is then easy to place yourself quickly as working somewhere in a spatial map.<p>Work in planned chunks. "Serialize" and "deserialize" your mental state by having a captain's log. Use a markdown text file to note:
What you are planning to do ( at the beginning of a session) - be concrete and specific.
At the end of a session record what you did and need to do when you start next. Next session start by reading the previous entry. Occasionally review a few entries for trends.
This is like a dev journal that includes dates times duration and comments about observations that can be used to tune your workflow. I.e. observations of what we're distractions, unexpected problems and timesinks, what worked unexpectedly well, etc.<p>You can then also plan in general when offline and get into the specifics when starting.<p>Use music to flow faster and to control the character of the flow mindset.
Movie/game soundtracks are often cool as the music is designed to induce mood without distraction of focus.
It also makes coding feel EPIC!<p>For me a short +-5 minutes of something epic like an Assassin's Creed theme helps me to enter a flow state and build up a mental map of what I'm working on and what tasks I should execute against. Something relatively relaxing and calm. Followed by something like fast paced dubstep to actually drive the work.
When needing to unpack a problem that needs wider focus again something slower. When needing a directed drive something inspiring and paced.
Find your self destructive behaviour and neutralise it. If you keep jumping to twitter, block twitter.<p>You'll subciously open a new tab, the connection will die and your conscious mind will be prompted by the change in sensory input caused by the unexpected block. At this point stop, stare at the screen, vocalise 'no, I'm in work mode' then wait another 5 seconds, and slowly flip back to the work.<p>Changing perspective helps for me too, listening to music 800% slower, and using timers to enter state helps focus my mind that something important is going on. Hope that helps!
Flow for coding is not that different than for artists. Check out " drawing on the right side of the brain ". There is a technique in there to calm the brain by drawing your hand but keeping the drawing part (both the hand drawing and the image) out of your line of sight. Works quite well.