Sometimes i'm more quiet the entire evening and sometimes it's easier. In my mind, i'm constantly thinking about code then and it's hard to be social then.
All arround, i'm a very social guy. Just when i leave the zone, i'm not.
21–30 of 116 posts
Sometimes i'm more quiet the entire evening and sometimes it's easier. In my mind, i'm constantly thinking about code then and it's hard to be social then.
All arround, i'm a very social guy. Just when i leave the zone, i'm not.
Cook Ting was cutting up an ox for Lord Wen-hui. As every touch of his hand, every heave of his shoulder, every move of his feet, every thrust of his knee — zip! zoop! He slithered the knife along with a zing, and all was in perfect rhythm, as though he were performing the dance of the Mulberry Grove or keeping time to the Ching-shou music.
“Ah, this is marvelous!” said Lord Wen-hui. “Imagine skill reaching such heights!”
Cook Ting laid down his knife and replied, “What I care about is the Way, which goes beyond skill. When I first began cutting up oxen, all I could see was the ox itself. After three years I no longer saw the whole ox. And now — now I go at it by spirit and don’t look with my eyes. Perception and understanding have come to a stop and spirit moves where it wants. I go along with the natural makeup, strike in the big hollows, guide the knife through the big openings, and following things as they are. So I never touch the smallest ligament or tendon, much less a main joint.
“A good cook changes his knife once a year — because he cuts. A mediocre cook changes his knife once a month — because he hacks. I’ve had this knife of mine for nineteen years and I’ve cut up thousands of oxen with it, and yet the blade is as good as though it had just come from the grindstone. There are spaces between the joints, and the blade of the knife has really no thickness. If you insert what has no thickness into such spaces, then there’s plenty of room — more than enough for the blade to play about it. That’s why after nineteen years the blade of my knife is still as good as when it first came from the grindstone.
“However, whenever I come to a complicated place, I size up the difficulties, tell myself to watch out and be careful, keep my eyes on what I’m doing, work very slowly, and move the knife with the greatest subtlety, until — flop! the whole thing comes apart like a clod of earth crumbling to the ground. I stand there holding the knife and look all around me, completely satisfied and reluctant to move on, and then I wipe off the knife and put it away.”
“Excellent!” said Lord Wen-hui. “I have heard the words of Cook Ting and learned how to care for life!”
Translated by Burton Watson (Chuang Tzu: The Basic Writings, 1964)
“The Dexterous Butcher” Cook Ting was cutting up an ox for Lord Wen-hui. As every touch of his hand, every heave of his shoulder, every move of his feet, every thrust of his knee — zip! zoop! He slithered the knife along with a zing, and all was in perfect rhythm, as though he were performing the dance of the Mulberry Grove or keeping time to the Ching-shou music. “Ah, this is marvelous!” said Lord Wen-hui. “Imagine…
The Tao of Programming [1] 4.4
Prince Wang's programmer was coding software. His fingers danced upon the keyboard. The program compiled without and error message, and the program ran like a gentle wind.
"Excellent!" the Prince exclaimed. "Your technique is faultless!"
"Technique?" said the programmer, turning from his terminal, "What I follow is Tao -- beyond all techniques! When I first began to program, I would see before me the whole problem in one mass. After three years, I no longer saw this mass. Instead, I used subroutines. But now I see nothing. My whole being exists in a formless void. My senses are idle. My spirit, free to work without a plan, follows its own instinct. In short, my program writes itself. True, sometimes there are difficult problems. I see them coming, I slow down, I watch silently. Then I change a single line of code and the difficulties vanish like puffs of idle smoke. I then compile the program. I sit still and let the joy of the work fill my being. I close my eyes for a moment and then log off."
Prince Wang said, "Would that all of my programmers were as wise!"
[1] The Tao of Programming http://www.mit.edu/~xela/tao.html
Earlier quoted context omitted.
> It comes and goes, with very little control on your behalf. As anecdata makes the data, here's mine - you have a lot of control of it. If you can control your environment (audio, light, temperature, food, exercise, communication, interaction, ...), you can get in the zone too just by virtue of almost exclusively focusing on some type of work you get in the zone for in the first place. Live by code, die by code.
It takes some effort but you can trigger the zone. I put on my favorite programming song (looped). Turn on “Freedom” to block the web. Exit every unnecessary app. Then finally do meditative breathing. Usually within 10 minutes I’ll be in the zone. The only caveat is that it is much harder for me to get into this state if I’m debugging.
I just had what I consider to be the single most productive day in the past few months, and I started it feeling like I wasn't going to get anything done. But I decided to golf a regex in our codebase and I had that feeling of motivation and jumped right into actual work.
But funnily enough I find debugging to be the most fun when I'm in the zone (assuming I know the codebase). Something about being able to get really deep into a problem and having all the tools and programs and hardware open and running and all setup correctly.
I often see programmers on HN talk about building mental castles of their programs, but I feel like I don't really code the same way. Instead, my thinking seems more "functional". For a given problem, I can often make out the faint outline of an optimal solution, but there's a lot of cruft and misplaced bits in the way. Most of my work involves mentally simulating the consequences of different options and then bending the architecture into such a shape that the whole thing just sort of assembles on its own. I'm only "in the zone" when I have to make that final leap. There's very little castle-building along the way.
As a result, I feel like I'm somewhat incapable of working on massive, multi-part architectures, since I just can't see the running state in my head. Once I zoom in to work on a single component, the rest fade from memory and I lose the big picture. On the other hand, I have no problem working in open-office environments: I don't mentally deal with a lot of program state, so I'm able to just dive right back in. This also influences my code to be more functional, as I know I can rely on e.g. idempotent methods to keep doing what they're supposed to regardless of any finicky global state.
I wish I could get better at building those "mental castles" since it's a huge barrier to designing complex architectures (like games). I don't want to be stuck forever working on the leaves of the tree. Might be related to OCD: I've had the disorder for a long time and I've sort of conditioned myself to avoid keeping running thoughts in memory before the "OCD daemon" distorts them into something horrible. As a result, much of my thinking is necessarily spontaneous and intuitive, or at the very least wordless.
Can anyone else relate?
Speaking of The Zone: I often see programmers on HN talk about building mental castles of their programs, but I feel like I don't really code the same way. Instead, my thinking seems more "functional". For a given problem, I can often make out the faint outline of an optimal solution, but there's a lot of cruft and misplaced bits in the way. Most of my work involves mentally simulating the consequences of different o…
> I wish I could get better at building those "mental castles" since it's a huge barrier to working on complex architectures like as games.
If you truly wish to do so - go make technically challenging systems like games. From start to end. Solo.
Speaking of The Zone: I often see programmers on HN talk about building mental castles of their programs, but I feel like I don't really code the same way. Instead, my thinking seems more "functional". For a given problem, I can often make out the faint outline of an optimal solution, but there's a lot of cruft and misplaced bits in the way. Most of my work involves mentally simulating the consequences of different o…
I relate. > I wish I could get better at building those "mental castles" since it's a huge barrier to working on complex architectures like as games. If you truly wish to do so - go make technically challenging systems like games. From start to end. Solo.
Speaking of The Zone: I often see programmers on HN talk about building mental castles of their programs, but I feel like I don't really code the same way. Instead, my thinking seems more "functional". For a given problem, I can often make out the faint outline of an optimal solution, but there's a lot of cruft and misplaced bits in the way. Most of my work involves mentally simulating the consequences of different o…
Frankly it sounds to me like people are doing it wrong. When I have a castle to build, I:
* sketch out broad strokes on a whiteboard * write stubs and placeholder in code and see how it all connects * brutally refactor and iterate
The last part is key. I may refactor and reorganize my architecture a dozen times before I'm done, including going back to earlier discarded ideas that seemed subpar at the time (either because of new developments/additions, or because alternatives turned out to be much worse).
If I get distracted, there is few artifacts or mental state that is lost.