Live data from Hacker News

Why programming is a good medium for expressing poorly understood ideas (1967)

web.media.mit.edu

11–20 of 70 posts

Re: Why programming is a good medium for expressing poorly understood ideas (1967)

#11
post #5

My programming lecturer used to say "programming is the process of breaking a problem down so a high speed idiot can understand it, if you don't understand the problem then you can't explain it". He also said that a programmers most useful tool was a pencil and a 5mm square A4 pad. After years of solving thorny problems by getting away from the screen and scribbling in a pad I can't say he was wrong.

He was very wise on this matter. The best code I've written was thanks to first designing it on paper.

I don't write on paper anymore, but I still write all my comments first, then fill in the code.

Re: Why programming is a good medium for expressing poorly understood ideas (1967)

#12
post #5

My programming lecturer used to say "programming is the process of breaking a problem down so a high speed idiot can understand it, if you don't understand the problem then you can't explain it". He also said that a programmers most useful tool was a pencil and a 5mm square A4 pad. After years of solving thorny problems by getting away from the screen and scribbling in a pad I can't say he was wrong.

He was very wise on this matter. The best code I've written was thanks to first designing it on paper.

One time, in university I did not have access to a computer for a couple of days and had to write code for a b-tree in C++. I designed and wrote the code fully on paper and when I got access to a computer, I typed it in and it worked!

I think that was my peak.

Re: Why programming is a good medium for expressing poorly understood ideas (1967)

#15

I'd love if all the formulas on Wikipedia were written as pseudo code with meaningful variable names. I'd understand them so much faster.

I don't think that's possible for most of them. Quite a few formulas aren't equivalent to any one program, and most variables don't have a fixed meaning.

Can't really think of one that could be improved by writing it as pseudo code.

Re: Why programming is a good medium for expressing poorly understood ideas (1967)

#16

I'd love if all the formulas on Wikipedia were written as pseudo code with meaningful variable names. I'd understand them so much faster.

Seriously! Any programmer would get pilloried for working solely in single letter variable names. It's so tedious that this is the norm in math.

Re: Why programming is a good medium for expressing poorly understood ideas (1967)

#17

My programming lecturer used to say "programming is the process of breaking a problem down so a high speed idiot can understand it, if you don't understand the problem then you can't explain it". He also said that a programmers most useful tool was a pencil and a 5mm square A4 pad. After years of solving thorny problems by getting away from the screen and scribbling in a pad I can't say he was wrong.

Yes I learned how to program on paper. It was when computer access was expensive. We learned how to write code on paper and then go over each line with a table for variable values as we run over the code.

I learned BASIC on punch cards using an IBM Mainframe for the junior high school math computer club, and it got changed to the math contest club after they couldn't afford computer time anymore.

In modern times there are IDEs to help people, but most of my best code I used to write on paper first. Visual Studio kind of ruined that as I wrote code in their IDE and painted forms for GUI access.

Re: Why programming is a good medium for expressing poorly understood ideas (1967)

#18
post #3

It is a little tough to slog through now, though I'm sure it would've been pretty enthralling in '67. I liked this from the conclusion quite a bit, though: A computer is like a violin. You can imagine a novice trying first a phonograph and then a violin. The latter, he says, sounds terrible. That is the argument we have heard from our humanists and most of our computer scientists. Computer programs are good, they say…

I disagree. The content and expression become constrained because a description of the problem domain has to be forced to fit inside them. Usually you can only make this happen with a drastically over-simplified model. One of the tragedies of AI and CS is that it's easy to delude yourself that you've understood something because you can make a toy model of it - when in fact non-toy models that are comprehensive enoug…

This isn't limited to CS. It's true of all science. And yet, building models is better than not building them.

"All models are wrong but some are useful" https://en.wikipedia.org/wiki/All_models_are_wrong

Re: Why programming is a good medium for expressing poorly understood ideas (1967)

#19

> Underlying our approach to this subject is our conviction that "computer science" is not a science and that its significance has little to do with computers. The computer revolution is a revolution in the way we think and in the way we express what we think. The essence of this change is the emergence of what might best be called procedural epistemology ­ the study of the structure of knowledge from an imperative p…

Watch Hal Abelson explain this on video, right at the start of the first 1986 SICP lecture: https://www.youtube.com/watch?v=2Op3QLzMgSY

Re: Why programming is a good medium for expressing poorly understood ideas (1967)

#20

I'd love if all the formulas on Wikipedia were written as pseudo code with meaningful variable names. I'd understand them so much faster.

Seriously! Any programmer would get pilloried for working solely in single letter variable names. It's so tedious that this is the norm in math.

I think it's largely because the long-standing mathematical tradition comes from an era where those formulas always had plenty of context, be it that of a topic-specific class/lecture or a paper that is published in a journal with a particular focus. Once you know what field of mathematics you're dealing with, there are strong conventions for what variables mean what; that's one of the things that has let to mathematics drawing from so many alphabets. It's only been with relatively recent advances in information technology that the highly technical details of many specialties have been aggregated closely enough for the context to be lost.

Also, long variable names would greatly obscure the overall structure of many formulas, which could be an even bigger problem.

Post reply on HN