Live data from Hacker News

Holding a program in one's head

paulgraham.com

21–30 of 136 posts

Re: Holding a program in one's head

#21

Earlier quoted context omitted.

I totally agree, and oftentimes, I don't even need a whole night. Just now, in fact, I left my laptop frustrated, thinking, "Shoot, what the heck is going on with this bug?!". I went to the bathroom and "forgot" about my problem during my pee. Then, one minute later, walking back toward my laptop, I paged the problem back in, and realized my sub-conscious (I guess) had already solved the problem -- I knew exactly wha…

I've had the same experience with taking a bath. Just forgetting about the problem (weather it is a bath or pee) seems to help.

Don't forget you can combine the two. This is often done for you already if you use the pool or hot tub at your apartment complex that kids were playing in all day.

Re: Holding a program in one's head

#22
post #20

Very good essay. The only part I don't really agree with is the implicit condemnation of programming done by large companies. Yes, their methods result in mediocre software, but that's often what you want. There's a reason they try to treat programmers as interchangeable cogs, and resist having an entire program in one person's head. To use the tired "building a house" metaphor - you can get a renowned architect to d…

A poorly laid-out neighborhood of shoddily-built slums? I think that's a rather good analogy for corporate IT.

Re: Holding a program in one's head

#23
post #20

Very good essay. The only part I don't really agree with is the implicit condemnation of programming done by large companies. Yes, their methods result in mediocre software, but that's often what you want. There's a reason they try to treat programmers as interchangeable cogs, and resist having an entire program in one person's head. To use the tired "building a house" metaphor - you can get a renowned architect to d…

[deleted]

Re: Holding a program in one's head

#24
post #17

Earlier quoted context omitted.

Interesting point. I noticed that lately, start-up names sound like band names: Infinity Box, I've got a Fang, etc.

Ha! I've got a Fang is from a They Might Be Giants song.

Hmmm... maybe I should name my band, er, startup We Threw Gasoline On The Fire And Now We Have Stumps For Arms And No Eyebrows (a NoFX song) :~).

Re: Holding a program in one's head

#25
I'm trying to write a novel, and find that all eight points are equally instructive if you replace 'program' with 'story,' 'programming' with 'writing,' and so on. Number 8 is particularly helpful in this context, at least for me.

Re: Holding a program in one's head

#26
I had a similar line of thought in a blog post awhile back at http://compoundedthought.blogspot.com/2007/02/people-factor-...

The idea here is that organizations are inherently anti-individual. My essay takes the idea that organizations are anti-individual because of their history. I think there is some merit in both points of view.

Re: Holding a program in one's head

#27
post #11

One possible alternative organization pattern is the "band." Music, like software, are also ideas. As the band Genesis has proven, you simply cannot replace Phil Collins with Ray Wilson and expect to have a mega-band again. Ray's music with the band is nice, but the style definitely was markedly different from what most people think of as "Genesis." The same thing happened earlier in the band's history too, when Pete…

Very nice analogy, and I think it captures why some "agile" teams I've worked on felt so productive - a small group could jam on something and have a shared understanding of the problem as we were working. However, as with a band, there's definitely an upper bound. 2, 4, 6 programmers - awesome. 12 programmers - starts to fall apart pretty quickly.

Re: Holding a program in one's head

#28
Thank you Paul! AFAIC, this was your best essay ever. (And that's saying alot). You have just described what has been in my head for most of the past year, but I didn't have the words to describe it.

A good friend of mine is a artist. He claims his secret is, "I paint every day." I tried that. It didn't work for me.

I have tried every combination of pens, tablets, paper, sticky notes, and electronic approach to distill my thinking and none of it has ever made much difference.

Only when I get the entire program in my head (level 0 only), do things get cooking. I rewrite everything 3 or 4 times. Sometimes I rewrite just to understand.

This approach reminds me of Jessica Livingston's chapter on Steve Wozniak in "Founders at Work" (required reading). Only when he could get the entire Apple II into his head did it become the breakthrough that it was.

I used to be afraid to exercise because it took time away from programming. What a mistake. I walk up and down steps for 35 minutes every morning WITH MY PROGRAM LOADED INTO MY HEAD. THAT'S when I do my best design work. I didn't realize what was happening until just now. Thank you!

Re: Holding a program in one's head

#29
I have an alternative explanation on why taking breaks can be beneficial. I'm less of a fan of the subconscious theory--it can certainly happen but I think it's much less common than people estimate.

What I think is more likely is that you get fresh insight when returning to a problem after a break, because the mental model that was constructed in your head was subtly wrong. It's happened to me a bunch of times: "OK, where was I?... the grommit plugs into the foobar, and the whatzit sends a message to the widget... wait a minute, no it doesn't, it sends to the frobnosticator first! WHY on earth was I thinking that for all that time before the break??"

Sometimes it's as simple as the famous case of getting somebody else to look at your code and immediately point out what's wrong that two hours of staring at the screen couldn't accomplish.

Other times it's a lot more subtle, high-level and abstract. Since, in those cases, it's often difficult to discuss the problem with somebody else, you don't get a) the outside feedback to speed things along and b) the humiliation factor that makes you remember how the insight came about. ;) So the meta-revelation of how you came to that revelation might be lacking, and it's attributed to the subconscious instead.

Post reply on HN