Deep hack mode and flash-mode
Geeks, hackers, programmers – call them what you will, everybody nowadays knows which group of programmers I am reffering to. Among us there is a concept known as deep hack mode . Deep hack mode is a state of intense concentration engendered during programming to the exclusion of very nearly all outside stimulus. In fact a hacker in deep hack mode is unlikely to hear you talking to him at all and usually it requires a physical touch to get his attention.Not that I would advise that – he will not thank you for it. Deep hack mode takes about an hour of intense work to get into, but by hackers can usually maintained for as much as 12-16 hours. But any interruption that requires more thought than lifting a coffee mug or going to the loo takes you back out of it.There is a reason hackers go into deep hack mode – and it's done on purpose. It's impossible to describe deep hack mode to a non-hacker but mysticizm provides a vocabulary to at least give an idea. In deep hack mode, you become one with your code. The algorythms flow from your mind to the screen with absolute clarity. It's not so much programming anymore as prophecy. So what is deep hack mode ? Well neurologists actually reckon that it's a form of hyperfocus, a mental state very similiar to what top athletes call the the zone . Those who have the ability to hyperfocus are of course often (incorrectly) labeled as having concentration problems – this is crap. The difference is that if you can hyperfocus, you usually cannot focus partially. So you are either interested enough to hyperfocus, or you are literally going to feel sleepy when you are told to concentrate on something. Hyperfocus is often treated as though it was a disease, in reality it's a powerful talent that allows one to achieve seemingly impossible feats. Virtually every one of the most important lines of code in the world was written by somebody in a state of deep hack mode. On the far opposite end of the mental scale is Flash mode . Flash mode is where you get flashes of inspiration. It could be an idea for an amazing new program, or the answer to a problem that you could not even understand, let alone solve, before.Flash mode however requires the opposite mental state from deep hack mode. Deep hack mode is an ideal mental state for churning out code – it allows you to take your skill as a programmer and translate it into genuine results with frightening efficiency. But it's a very wrong state for flashes of inspiration – which can be no less crucial. The best way to get a flash of inspiration is to leave deep hack mode, and go do something entirely different. Read a book. Watch a movie. Chat on IRC – anything not related in any way at all to the project you are working on (but don't work on a different project), let your subconscious play with the problem but keep your conscious mind occupied with something unrelated that is fun, destressing and relaxing.Then go to sleep.9/10 times, you will wake up knowing the answer. That is flash mode. When you wake up and suddenly you know what was wrong all along – and the jubilation it causes is what we call a hackergasm. Of course you knew the answer all along – but you couldn't see it because you were looking too deeply, and missing something – getting out of that entirely and letting your subconscious mind do the work, frees you from whatever conscious mental mistake has been preventing you from seeing what was actually wrong – and find an answer, delivered to your mind when you wake up like room service. Although you cannot always take a nap when you need a flash of inspiration – when you can, use it.I chose to write this advice today because I went through just this process over the past 48 hours while working on OpenLab. States of hyperfocus, alternating with completely unfocussing and letting the answers come to me… I did it instinctively, without planning – because many years in this field have taught me these techniques at the bone level. And when you're in that cycles is the only time you can describe it in a way that others can copy. People often ask me how they can become programmers like me. I always recommend a lot of books on the topic (hundreds – it doesn't matter so much which books as that you read as many programming books as you can), dedication, and years of effort – but I usually do not describe these mental techniques because when not in this cycle it's almost impossible to describe them.Having said that, anybody with any actual talent for the field of programming will acquire these skills within the first few years of learning it – without my or anybodies help – it comes naturally, in fact it's unavoidable, those who do not inately have these talents, particularly for hyperfocus never succeed as programmers. They start, they learn, the get okayish but they can never get to that next level, not because they don't work hard (which is to be respected) but because they simply cannot keep up the pace compared to those who do hyperfocus, and usually they change careers within a few years. It is probably not politically correct to say that, but there is a side to programming that is a matter of talent and you are either born with that talent or you are not. If you aren't, you can at best be a mediocre programmer -and it's a field where there is no room for mediocrity, a field where the only choices are between superstar and abject failure.Politically incorrect but true – and no less true for any other field. I have zero mechanical aptitude, I can't even change my own oil. It's a talent I just don't have. I cannot draw. I cannot sing very well. I certainly cannot model swimwear.Every career field requires talents, and people's talents vary. That is a good thing -it means that whatever needs doing – somebody, somewhere is going to be exceptionally good at it. Yes with practise and training I could improve my drawing, but I will never get beyond mediocre at best – I don't have the hand-eye coordination to move a pencil better than that. It's a talent I just don't have. I do not feel bad about this, nor should anybody who finds that as programmers they struggle because they simply don't have the talent to hyperfocus. There is an entire world of opportunity out there which needs people who can jump in and out of concentration rapidly. So this was certainly not written to teach people how to hyperfocus (though flash mode is something probably almost everyone can learn – that's a technique more than a talent) – but to help outsiders understand a bit better. Geeks hyperfocus as a matter of course – and turn this 'weakness' into their greatest strength. So if the geek in your life is hyperfocussing, she is not ignoring you – or caring less about you – but at that stage is in a physical mental state where nothing except code exists. When she comes out – she's going to be starved for human contact (and the same goes obviously for a geek 'he') and will spoil you rotten – it's just the way we are.


