Live data from Hacker News

Holding a Program in One's Head (2007)

paulgraham.com

101–104 of 104 posts

Re: Holding a Program in One's Head (2007)

#101

Warning: controversy. The text misses the point in that having to hold a program in one's mind is not required to begin with. The real problem is complexity. There's just so much going on that it's difficult to remember. And complexity is solved through abstraction - separating the problem out into manageable components. That way the programmer works at a system level, at which components are composed into a solution…

Nice idea, but, sorry, it does not work as well in real life as it does in theory. :-( In any case, everybody is talking as if holding a program in your head is a huge problem. It really isn't. All it means is that particular individual understands the problem (and the solution) deeply and comprehensively. That sounds like a good thing to me. It is true that communicating that level of understanding can be challengin…

Interesting. I've been writing code for 26 years. For the last 12 of those I've been an architect where my job is to identify, design and often implement components of a solution, their attributes, their relationships , and attributes of those relationships.

Projects I've worked on range from Nokia Maps for Windows Phone to a GB£12M healthcare system. I'd say I have a fairly excellent understanding of what works in theory, and what works in reality.

There is no interest or intention to de-humanise anything. In fact I swing pretty hard the other way. Consider a presentation I gave on the human aspects of architecture - http://www.wittenburg.co.uk/Entry.aspx?id=d5002929-97b2-4902....

Re: Holding a Program in One's Head (2007)

#102

Earlier quoted context omitted.

My apologies, I thought that it was outside of the context of the conversation. A surprisingly high percentage of people have nutritional deficiencies. For example, an alarmingly high percentage of people in the US are deficient in Magnesium, an essential nutrient (meaning that your body cannot manufacture it). http://en.wikipedia.org/wiki/Magnesium_deficiency_%28medicin... > 57% of the US population does not meet th…

Interesting. Where have you learned this information? Are there some books / studies / other sources you can point to? (Not a demand for evidence ... just that I'm curious to look more into this).

I've mostly been googling for studies/information which explain things I do not understand. Most of the studies tend to be on Pubmed (www.ncbi.nlm.nih.gov). A lot of references can be found on wikipedia, which is a great resource in itself.

This is paired with playing with neurotransmitter levels using the methods described (and occasionally some less legal ones) and trying to relate feeling to thought. After a while, an intuitive understanding of the terrain that is the body, thought and emotion begins to emerge. Sometimes you feel something new, notice an interaction, make a prediction that neurotransmitter X has relationship Y with neurotransmitter Z, google for studies and are surprised that said relationship has been observed. Intuition is as accurate as the information it's working with - it can sometimes be trusted and other times cannot. I'm a programmer and to me this feels identical to debugging in a messy monolithic legacy codebase. I use the exact same techniques to try to figure my mind out.

I think that it is important to be picky about sources. I do not trust anything which cannot be backed up by a study, though less accurate information can sometimes point you somewhere interesting. I also find it important to tread away from the mainstream with caution, since I'm not an expert in this field. In other words stuff like Reiki is out of the question - it needs to at least be feasible.

Re: Holding a Program in One's Head (2007)

#103
post #83

Earlier quoted context omitted.

You're describing semantics of moving from a solution concept to an implementation. How you get there is entirely up to you. What I was suggesting is that a design that separates concerns will obviate the need to keep the entire thing in your head. This is problem solving through the composition of discrete components. AKA managing complexity.

You seem to be in love with the idea that a problem can be understood by decomposing it into sub-problems, and considering them individually. Where I could agree with you is that a solution to a problem should be understandable in pieces, and then composed out of those pieces. Where I don't agree is that I think piecemeal understanding of the problem is likely to yield suboptimal partitioning of the problem into abst…

I mentioned this below - I've been programming since 1986. It took me the last 7 years to really nail down that this duality of perspective (high-level, complete system vs. low-level, one aspect) was common across all successful projects I've lead or worked on.

By success I mean something that not only meets the stated requirements, but is also maintainable, extensible, secure, scales, and is available.

I'll leave it at that.

Re: Holding a Program in One's Head (2007)

#104
post #86

Earlier quoted context omitted.

Feynman had a neurological condition called synesthesia [1], which is when senses get mixed together in the same neurological pathway and you can "taste" a sound or "hear" a color. Which is very interesting since Feynman was said to have a "frightening" ease with equations, like an intuitive understanding of what they meant. [1] http://en.wikipedia.org/wiki/List_of_people_with_synesthesia...

I didn't know that was a thing. I fit this description.

Very interesting! What do you experience?
Post reply on HN