|
|
|
|
|
by johnnyjustice
5329 days ago
|
|
Yay for the mention of the Pomodoro Method, it is quite effective and has gotten me through college. Your reasoning however for learning to be interrupted in our life, is something I am not necesarily sure about. Are humans just simply bad at long stretches of focus? I am not sure but i am and thats why I use the pomodoro. |
|
This is a great question. I think the answer is: It depends on what you mean by focus.
Humans are certainly capable of long periods of concentration, of all sorts. Sitting in a tree waiting for the prey to come into range. Sitting under the tree patiently digging out edible roots. Sitting in a band jamming for twelve hours straight. Sitting facing the wall in Zen meditation.
But, in programming, the word focus has a specific and somewhat paradoxical meaning. When we are focused on programming it feels as if we are focused on something. And yet when you think about what you're actually doing in programming the word focus seems less and less appropriate.
Here's programming: You think about the feature you want to build, and then you think about the existing system that you want to attach it to, and then you think about the big picture, and then you think about an individual data structure. And then you sketch the module on a whiteboard, and then you write an empty module file, and then you use a C debugger to find and fix a bug in the module loader, and then you patiently write an editor macro to change a giant text file from XML to JSON, and then you write a unit test for the JSON parser. Then you write the parser. Then you stare at the parser and try to imagine explaining it to a junior PHP developer. And then you sigh and mentally kick yourself for overdesigning and quickly reimplement the parser, except without the tricky metaclass and the tail recursion and the nifty hack that reads like obfuscated Perl, and then you sigh again and get some coffee. And then you find the module loader is still broken after all and you do ten minutes of research into alternative module loaders, during which you realize that maybe you should have used an entirely different framework for this system and make a note to research the alternative framework for your next system.
And this is what programmers call "focus": Bouncing up and down among five or six layers of abstraction, hopefully doing no individual task for longer than five minutes at a time. (After all, this is programming: If you've got an hour of rote typing to do, why isn't there a macro that can do it for you?) But you're focused on something, because the hours are flying by and if someone interrupts you, you tend to want to throw things at them.
And perhaps this is why we programmers have such trouble with focus: The state we call "incredibly productive focus" is actually oddly difficult to distinguish from ADD. But it's focused ADD, and that's the secret.