Live data from Hacker News

Holding a program in one's head

paulgraham.com

91–100 of 136 posts

Re: Holding a program in one's head

#91
PG -

Holding the program in your head "scales" - at least on well-constituted teams. I was a chief/architect (based on Fred Brooks' chief programmer team concept, long time ago) and was able to utilize some "ordinary" programmers and a couple gifted programmers by doing the highest level abstracting of the problem so they could each hold a sub-problem in their heads. Made the bosses happy, since there was less reliance on any one person, and I was largely replacable by one of the more gifted team members.

(BTW - greetings from anotehr Gateway-survivor)

Re: Holding a program in one's head

#92
post #86
post #85

Earlier quoted context omitted.

Everyone wants to get acquired by Google, and yet it doesn't stop them doing their own stuff in-house. Unless AdSense, GMail, Calendar, News, Froogle, Video, Finance, etc. were bought instead of built. Not to mention all the work that happened after they bought Keyhole et al.

AdSense was at least partially an acquisition. Video became YouTube. Froogle is largely a failure. Considering how many programmers Google has your argument that they're good at producing stuff in-house is pretty weak. They're great at scaling and running stuff, but so far they don't seem to be very much better at creating new great things than any big company is.

Everything they buy they do a huge amount of work on, and they don't merely scale; they add features. Google Video was already easily superior to YouTube for the player alone (actual random access); they bought YouTube for its audience. YouTube got so big because unlike GV, it was very lax at policing commercial content. Its poor video quality, lack of download facility, lack of fast-forward, and short clip length limits should not be confused with the killer feature of giving other people's stuff away.

Froogle a failure? It's a search engine for product prices.

Re: Holding a program in one's head

#93
I wonder about the kind of cognitive access a programmer has to their program once it's loaded. Descriptions of walking through a building imply that moment-by-moment the programmer is only dealing with a subset of the problem, although the whole thing is readily available in long-term memory. He's thinking about the contents of a particular room and how it connects with the other rooms, not conceptualizing the entire house and all its relationships at the same instant. I imagine this is necessarily the case, since short-term memory is limited. If true, this imposes limitation on the topology of the program, since the connections between different parts are localized and factorizable X when you walk out of the bedroom you don't immediately find yourself in the foyer. Consequently, problems that can't be broken down (or haven't been broken down) into pieces with local interactions of sufficiently limited scope to be contained in short term memory will not be soluble. Does this make any sense?

Re: Holding a program in one's head

#94
post #92
post #86

Earlier quoted context omitted.

AdSense was at least partially an acquisition. Video became YouTube. Froogle is largely a failure. Considering how many programmers Google has your argument that they're good at producing stuff in-house is pretty weak. They're great at scaling and running stuff, but so far they don't seem to be very much better at creating new great things than any big company is.

Everything they buy they do a huge amount of work on, and they don't merely scale; they add features. Google Video was already easily superior to YouTube for the player alone (actual random access); they bought YouTube for its audience. YouTube got so big because unlike GV, it was very lax at policing commercial content. Its poor video quality, lack of download facility, lack of fast-forward, and short clip length li…

I didn't claim YouTube's success was due to any technical features like supporting seeking. I agree a large part of why they were so successful was because of the copyrighted content. They took a risk that Google wouldn't. That proves my point exactly. Startups do many things that big companies can't or won't do. Sometimes that takes the form of working in a gray area of the law.

Re: Holding a program in one's head

#95
I love your point - you alread wrote about this topic when in your article "love.html" - how to do what you love...

for me the circumstances for working on my theory must be similar to the cristalls that grow especially good at zero-gravity - the best place for me to think is in the train where i have 6 hours without being disturbed!!!

Re: Holding a program in one's head

#96
post #60
post #24

Earlier quoted context omitted.

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) :~).

If people want to use Now Form A Band to name their startups, I'm absolutely fine with that. http://www.nowformaband.com/

Heh, fun site. I just submitted "ultraviolet castastrophe". The first time I saw that term in a physics book, my first thought was "that would make a great band name".

Re: Holding a program in one's head

#97
post #4

> Oddly enough, scheduled distractions may be worse than unscheduled ones. If you know you have a meeting in an hour, you don't even start working on something hard. God, how I wish more people understood this. It might seem like programmers overreact to even the most minor demands on their time---"What's the big deal? It's only a half-hour meeting!"---but a half-hour meeting can easily kill several hours of producti…

It's about time PHB notice this tiny little fact: they are the only ones looking forward to any sort of meeting. Keeping a "this year I will do this and that" schedule is about as much schedule as it was ever required.

Re: Holding a program in one's head

#98
post #37

> Sometimes when you return to a problem after a rest, you find your unconscious mind has left an answer waiting for you. This happens to me on so may occasions in may different areas. While programming, if I have a problem I'll sleep on it, wake up, and see the problem in a whole new light. Also, before writing an essay for class, I will read the prompt throughly. This way my brain starts form sentences without cons…

To me sleeping is the greatest problem solving technique ever invented. I have even lost count of how many times this has worked for me. If companies had any sense, they would allow employees to take cat naps.

Absolutely! I've gone on the record to say "sleep sovles all problems." Sleep itself doesn't--but waking up with a fresh, calm mind is much more useful than a chaotic, depressed mind that results when you are very frustrated with something.

Re: Holding a program in one's head

#99
It is amazing how difficult it is to get non-programmers to understand the affect interruptions have on the art of creating a program. A 10 second interruption really means 30 minutes of vastly decreased productivity, as it can easily take that long to reload a programs universe back into your head.

More often than not, the reload is imperfect and parts of the universe are not restored, leading to more lost productivity as the programmer must recreate the solution they already had worked out. Another subtle side-effect of this imperfect reload are bugs caused by a mismatch between the pre and post-interruption program state.

Re: Holding a program in one's head

#100
post #94
post #92

Earlier quoted context omitted.

Everything they buy they do a huge amount of work on, and they don't merely scale; they add features. Google Video was already easily superior to YouTube for the player alone (actual random access); they bought YouTube for its audience. YouTube got so big because unlike GV, it was very lax at policing commercial content. Its poor video quality, lack of download facility, lack of fast-forward, and short clip length li…

I didn't claim YouTube's success was due to any technical features like supporting seeking. I agree a large part of why they were so successful was because of the copyrighted content. They took a risk that Google wouldn't. That proves my point exactly. Startups do many things that big companies can't or won't do. Sometimes that takes the form of working in a gray area of the law.

If someone wants to claim "very small companies are more likely to try something legally dubious because they have very little to lose," that's a completely different argument. Not to mention, YouTube and then Google had to pay up in order to square things away and neutralize the risk. Big companies are more comfortable playing fast and loose with the rights of individuals, while individuals and very small companies are more comfortable antagonizing powerful corporations.

Start-ups are NOT the best way to develop software. Start-ups are inherently inefficient. On top of doing the development, you have to take care of all the paperwork and technicalities of running a business. YC makes you move, which is a big interruption (you should only be moving if you NEED that interruption to leave behind all the distraction; some people are already coding like crazy and having to rearrange their lives like that just gets them off-track). You are trying to market yourself. The list goes on and on; I can't find the thread but somewhere PG said he only spent 20% of the time actually coding (my memory may be faulty, it might be 50%).

By contrast, working at Google you don't even have to cook -- they try to take care of all the minutiae. It's really no surprise that whatever they buy, the vast majority of the work is done post-acquisition.

The real purpose a start-up serves is as an advertisement that these people are very dedicated on that project -- when they are bought they are paid EXTRA to work on whatever they already wanted to work on anyway. [1]

THAT is the key difference. Most employees are hired to do some job they don't care about for some crummy wage, so no surprise productivity isn't high. If Google bought up start-ups and then reassigned everyone to other projects, nothing would get done. You don't get dedicated "in general", you are dedicated ONLY to what you're very interested in.

Hiring isn't obsolete; hiring people based on generality to do some unspecified thing for average pay is obsolete. It's simply a quirk that there are currently two models -- the useless traditional one and the "find people at another company who are already doing something and then pay them MORE to keep doing what they want to do ANYWAY" one.

It has always been obvious that letting people choose what they want to do and paying them more money for it yields better results than telling people to do something they probably have little interest in and paying them less money to do it.

Start-ups are a bad model for actual development because of the overhead. They are a good model for picking a certain type of people. I think PG just has this reversed.

[1] As a caveat, not everyone is dedicated to their technical ideas; they are dedicated to making a lot of money. Once they make the money, they stop working on the idea or anything like it. This seems to be what happened with ViaWeb, and would explain a couple of things: One, why PG is so insistent on "flexibility" and steering a lot of people away from their initial idea (because that's what he did -- except he wasn't passionate about the art gallery thing in the first place, so it's a lot easier to switch gears). Two, having steered applicants away from their initial idea, if they were dedicated to that, you've now turned them into people who are dedicated to the new thing for money only, and this could explain why YC's picks haven't been more successful. Your spirits also flag more when you're working on something you don't really believe in, which is why having a co-founder to lean on is more important. Plus there's the overhead -- how many of these start-up groups have a "business guy" as one of the co-founders? It's an inefficient ratio; imagine if every time Google hired a programmer they also had to hire a "business guy" for him.

I think it's pretty clear YC is much more compelling to PG than Yahoo! Store ever was. He could make a lot more money at it, too, if he doesn't steer the dedicated people away from what they are dedicated to.

Post reply on HN