Hacker News new | ask | show | jobs
by archixe 873 days ago
> "Whether written using a fountain pen or typewriter, Dijkstra’s technical reports were composed at a speed of around three words per minute. “The rest of the time,” he remarked, “is taken up by thinking.”9 For Dijkstra, writing and thinking blended into one activity. When preparing a new EWD, he always sought to produce the final version from the outset."

> "He also never purchased a computer. Eventually, in the late 1980s, he was given one as a gift by a computer company, but never used it for word processing. Dijkstra did not own a TV, a VCR, or even a mobile phone. He preferred to avoid the cinema, citing an oversensitivity to visual input. By contrast, he enjoyed attending classical music concerts."

This is very fascinating to me, as a generally unsure person, I can't imagine writing anything this way let alone scientific papers. It certainly requires a deep focus and great knowledge on what you are writing about. I will try to give it a go next time I write out my thoughts.

There is interesting interview where he goes deeper into this. https://www.youtube.com/watch?v=P0w1MJHxStg

7 comments

There’s no other way to do it for this type of a brain. I know because I have the same type of brain.

I spend 90% of my time formulating descriptions of the problem and the desired end state

Hallucinating futures where the state of the world is in a state that I either wanted to be or that somebody’s asking me to build

Once you know your final end state, then you need to evaluate the current state of the things that need to change in order to transition to the final state

Once you have your S’ and S respectively then the rest of the time is choosing between hallucinations based on sub-component likelihood of being able to move from S to S’ within the time window

So the process is to basically trying to derive the transition function and sequencing of creating systems and components that are required, to successfully transition from state S to state S'

So the more granular and precise you can define the systems at S and S' then the easier it is to discover the likelihood pathway for transitional variables and also discover gaps, where systems don't exist, that would be required for S'

Said another way: treat everything - both existing and potential futures- as though they are or within an existing state machine that can be modeled. Your task is to understand the markov process that would result in such a state and then implement the things required to realize it.

The religious call this "Prayer"

Others call it "Manifesting"

This is perhaps the most verbose and ridiculous way of saying "I think about how to solve the problem". It feels like a parody with the prompt of: how a person who scored 170 on an online IQ test would describe how their brain works.
It would be kinder to assume that "I think about how to solve the problem" doesn't capture the nuances of actually doing that thinking to the satisfaction of the commenter, and this is their attempt to articulate it to match their experience. The process of "understand the starting point, the desired end point, and identify the path between them" closely matches the way I approach problems. If you don't feel inclined to meet someone where they're at, you can say so without condescension.
"understand the starting point, the desired end point, and identify the path between them" That is the definition of problem-solving. If there was any nuance in the original comment, we both failed to find it.
Twisol's point that you failed to find is that you could choose to give AndrewKemendo the benefit of the doubt.

Clearly there is something novel about the way Dijistra thought and worked. Most of us don't do things that way - formulate our thinking, then work towards one perfect first draft.

AndrewKemendo saw that and said "I identify, I'm the same way", and tried to describe what his way of thinking sounds like.

If to you it sounds like the exact way of thinking and problem solving as yours or mine, well, then perhaps AndrewKemendo did not describe it well enough. Perhaps it's impossible to describe it to someone else. But the necessary context to his description is that his brain works different from yours or mine. So the short textual description also means something different than what it does for you and me.

Is there the possibility that AndrewKemendo is self-grandiose and not aware that he is not special and his verbose descriptions of his unique way of thinking are nothing but? Sure. But even if we had no other evidence that this is not the case, it would cost you nothing to be curious and assume best intention. But we do have other evidence - and it's in the first line - "There’s no other way to do it for this type of a brain. I know because I have the same type of brain."

I know you mean well but i am somewhat with biggestbrain1 on this.

The comment just comes off as mere posturing (eg. "I know because I have the same type of brain") and if you actually think about what is written down all i see is empty verbiage and something which could have been said simpler and more directly (for example there is no need to bring in "Markov Processes" here).

Dijkstra's (and Floyd/Hoare's) programming techniques are hard enough to learn that such comments merely obfuscate the essential ideas and pushes people away from trying to study it because it "appears too hard". Things should be made as simple as possible to motivate people to study and learn.

Whereas "AndrewKemendo" provided first-hand testimony, which added value in the form of a datapoint, I struggle to see how your opinion of his testimony added any value, other than negativity.

It's fine to dislike something - and just move on.

> Whereas "AndrewKemendo" provided first-hand testimony, which added value in the form of a datapoint, (...)

So did the "In this moment I am euphoric" guy.

I am with biggestbrain here. The post reads like "I'm just like Dijkstra, I solve problems".

Why does my description threaten you??
I don't think it threatens anyone, it may simply come across as pretentious.
I guess I can understand that.

I’m not making any bold claims about inventing anything or anything like that in fact, there are multiple times where I say I’m not doing anything special.

I’m just describing that my mental process resembles and steps the same way a markov process does (or OODA or SPA if you prefer) and that not everybody thinks like that and that and I found that certain types of scientific thinkers also have that same type of thinking. The Dykstra explanation there lined up with my experience

I cant control how people react to that so :shrug:

> I cant control how people react to that so :shrug:

No, but you should be aware of how you come across so that people don't dismiss the substance of what you are trying to say because of the form in which you say it.

Some people don't interpret earnestness correctly, and somehow feel like they have to insult it or make fun of it. I've had people think I'm "using big words to try to sound smart"... I wasn't trying any such thing, I'm just a thoughtful person and verbose, introducing subtlety and thoroughness to each point that I make. I don't care if someone thinks I'm smart or not, but I'm sure as hell never trying to make them think I am because I don't care and never will. If someone would rather hear the 5-year-old-child-tier phrase "I think about how to solve the problem", they can find a conversation with someone else who speaks that way.
Yeah, in the same way that Moby Dick is a "verbose and ridiculous way of saying "A guy holds a grudge against a whale", and Birth of the Cool is the same as the 8-bit chiptune cover.

The cliff notes summary is not the same as what the parent tries to convey. The nuance in what the parent wrote was the thing that went wooosh.

+1.
Interesting. I try to do something like this, but way simpler and my productivity is low right now. Maybe more practice will help. Would you say you're usually good at doing this and getting results?
The Minto Pyramid Principle (MPP) offers an analogous, perhaps more accessible, process to problem solving similar to Andrew’s description.

You use a problem solving process built on structured analysis by first defining the problem in terms of an Undesired Result (R1), Desired Result (R2) — the S and S’ in Andrew’s process. Then, you determine the Starting Point in terms of the logical structures that generate your R1; these structures can be a sequence of cause-effect, a structural decomposition (e.g. of organization, geography, etc.), a classification, or some combination of the three. From this structure you can hypothesize experiments to confirm/disconfirm where the causes are. With these causes in hand, you can generate possible solutions or corrective actions. Finally, you’d evaluate your alternatives and arrive at your solution to move from R1->R2.

MPP’s problem solving process has the additional advantage of structuring your actions/results in a way that makes writing a document or presentation simple and straightforward, to convince others for example.

Check out the book if you’re interested in improving your problem solving and analysis skills.

Thanks for this. Very interesting indeed
At this point, I consider it deterministic in terms of efficacy

So you can basically hand me any problem and I will implement this process, and I have a high success rate for delivering desired outcomes.

And again, this isn’t really like my process I invented. It boils down into a practical implementation of a Markoff process in planning as applied to any set of tasks such they could be discretely described as a state machine.

The key challenge IMO is in describing the state machine, and that is what takes a lot of elucidation.

In many cases we don’t have the ability to precisely describe a process as a state machine because we haven’t defined the boundaries of the system, and then measured it enough, in enough different dimensions, across enough time to be able to give that level of understanding to input an outputs.

Are you trying to learn Dijkstra/Hoare/Floyd style programming techniques or are you trying to understand the idea of usage of "Markov Processes" (totally unnecessary) in the comment?
The general problem solving approach. What the two sibling replies to yours are talking about.
Ah, this is a more general question on which it is hard to give specific suggestions because "problem-solving" can mean anything/everything without knowing your exact context.

However you might want to start with The Thinker's Toolkit by Morgan Jones. This gives you a catalog of models which teaches you to structure your requirements born from problem analysis in various ways to aid problem-solving.

Yeah, that's awesome! I sometimes find it very challenging to comprehensively "imagine" the end state and all its "moving parts", but I realize the value in doing so, and work at skill (if "skill" is the right word haha)... I can see the power in determining a proper "translation" that goes from the current to the imagined, and that very approach has been extremely beneficial to me in life. Many people have extreme difficulty doing this! I know a couple people who find it nearly impossible to imagine potential futures in the context of a goal or target. They can only deal with the immediate stuff, OR the future goal/target must be plainly and simply outlined to be uhh.. "parseable", if that makes sense. Anyway, thanks for sharing your perspective, I thought it's interesting to read and think about.
Why are you using a Markov process though to model time-dependent likelihood pathways ?

Doesn’t make sense. Your next step depends on much more than just knowing where you are at S. One needs to account for the history of where you were before.

Or maybe you’re just using technical words with precise meanings to describe a vague imprecise heuristic?

> time-dependent likelihood pathways

Future reward trajectories are THE core focus of multi-step MDP, see Sutton [1]

"Now we consider transitions from state-action pair to state-action pair, and learn the value of state-action pairs. Formally these cases are identical: they are both Markov chains with a reward process. The theorems assuring the convergence of state values under TD(0) also apply to the corresponding algorithm for action values: "

I wasn't going to differentiate in my original post between sub-types of "cycles" within increasingly complex MDP's for long sequence reward estimation:

[1]http://incompleteideas.net/book/ebook/node64.html

You’re just quoting from Sutton’s reinforcement learning book, which proposes a learning algorithm with a Markov process assumption.

Markov processes are nice because they are simple objects and therefore have nice properties and solid mathematical proofs.

Many mathematical models are studied because they have nice theoretical properties and one can prove theorems about them. This should not be mistaken with an actual mechanistic explanation for complex emergent phenomena like human decisions.

Your question is valid. I think the person is just using bombastic words for something already well-known and simpler. A Markov Chain is just a FSM with probabilistic transition functions and in the limit is just a deterministic FSM when the transition function probability becomes 1.
In high-school, I had to write an expose... something about the "silver age of Russian poetry" (it's Block, Belyj, Akhmatova, Gipius, Gumiljov etc. if you are interested). It was about 20 pages long, on a typewriter.

It's physically more straining than to type on any computer keyboard, even with very stiff keys. And I didn't know how to touch-type at the time. So, it was pecking with two fingers. With all that said... three words per minute isn't a lot. At all. By the time I was finished typing, I could probably do better than that.

To me, this quote describes someone who rather hates / struggles with technology. I had a bunch of math professors like this: they couldn't draw diagrams to save their lives, they couldn't write formulas in any editor, and so often we'd have very poorly hand-drawn formulas photographed and inserted as images into MS Word documents or similar incomprehensible junk.

This doesn't necessarily mean they are bad at the very narrow field they specialized in, but it usually means they are very bad at virtually everything else adjacent to that field. Also, this often means that they've made their career in academia by being the first person in that narrow field they specialize in.

This is also my impression of Dijkstra: he had some novel, but also kind of low-hanging fruit ideas... at the time when he was almost alone in that field. Had he started today, he'd be very lucky to get a tenured position, but most likely would end up being a TA / dropped out and just do something else. Even though there's still a lot of politics and all sorts of un-meritocratic ways of getting into prestigious positions in academia, you need to be very good. A lot of the times it's being very good at cheating, but there isn't really any more room for greenfield academics who instantaneously propel themselves to the top of the academic hierarchy.

3 WPM really shook me as well. Today we complain about not having enough time to work on our projects, but back in the good old days, as successful as Dijkstra was, got time to spend 3 WPM and still produced close to 7k articles! Astonishing.
Are you really any faster on average? Sure I can type 60 wpm (I haven't measured, but this is a reasonable speed for anyone to obtain with a little practice, maybe I'm only 40, or I might even get to 100), but that is in typing situations where I'm not having to think. If your job is to enter some document into a word processor (a human OCR), or transcribe a recording (human speech to text) then typing speed is your limit. However for most of us the limit is thinking. I can type one sentence fast, but then I need to stop to think what the next sentence will say and so my time goes down. When writing code I need even more time to think and thus my total speed is lower. My fingers can still move at 60wpm though.
Back when I worked at an office my coworker commented to me that he could always tell when I was coding vs corresponding.

When corresponding, I type at around 120 wpm. When coding, it's got to be closer to 5 or 10. But I really like this idea that it would be useful to push that number lower (while still focusing on the task at hand).

Thing is, I got into this field because I really enjoy interacting with computers via keyboard. It's super satisfying to punch some buttons and make things happen. This is what I love about vim: right off the bat, a single button press feels like it does a lot. Then you punch a whole bunch of buttons to make a new button make something happen. Nevermind that it doesn't achieve product goals. I'm here for the button pressing, and for the creating of new buttons to be pressed.

I don't know why people are arguing with you. Clearly the question here is whether you think, then type, or type while you think.

I can type at >100 WPM (just tested). I recently had to write a 3-page document for work, the summary of weeks of research and interviewing. It wound up 1959 words (just checked). I wrote it over the course of one 8 hour day, after having procrastinated on it for the previous 2 days.

I came home at the end of that day exhausted because I felt like I finally did weeks of work in one day.

But, this 8 hour day had 2 hours of meetings and 1 hour for lunch. Say another 1 hour for random slacking. So pure concentrated writing was 4 hours or 240 minutes, which winds up to about 8 words per minute. That's it!

And I would consider this fairly fast, and again I'm not including the 2 days where I tried to write the doc at various times but failed to get started. SOMETHING was spinning in my brain in the background getting the ideas clarity.

I've never measured my thinking speed before. This measurement is intriguing. I feel that speed of thinking will be inversely proportional to the quality of content we write. Also, even if I can think fast and write quickly, I might have to go back and make amendments which can reduce my average thinking speed.
Linguists have noted that while some people talk faster than others - and some languages/cultures speak faster than others. However this is only a measure of word count, where people talk faster they are not actually saying more, they are just using more words to say it. (note that I could have eliminated "just" in the above sentence - to my ear it seems needed, but the sentence doesn't change meaning without it)

Human thought speed seems to be a reflection on how fast you need to think for normal conversations. Thus orders like "run" or "jump" are likely to be fast as if you need to tell someone to escape a lion speed is important. While if you are planning a hunt you are allowed a lot more time to get details right. Engineering often is a very slow activity as you need to think about a lot of details but you have time. Typing a message like this I want to be fast enough to follow my thought speed which is much faster (I won't claim to type this fast, but I get close and can believe with more practice I would be this fast)

At least as I see my colleagues who buy special keyboards to type code faster and still being hellishly unproductive, deleting and rewriting while I prefer to think before typing and have a solution that works when I type it in instead of iterating over solutions that cannot work in the first place. When I type it's fast, I just don't do it so much compared to my peers, but I am more productive delivering working code.

Writing with a pen I tried, but no-one, including me, can read it after...

People buy special keyboards because they enjoy using them, not because they’re faster to type on.
What baffles me is that some people aren't willing to buy nice peripherals.

I don't know about anybody else, but I spend 8-18 hours a day attached to a mouse and keyboard. I'm not going to use one that doesn't feel good to me.

Like with most things, the problem is usually that we can't find peripherals that are actually nice, rather than overpriced (and endorsed by shills). If the options are paying 40$ for a shitty keyboard, versus paying 400$ for a still equally (if not more) shitty keyboard, the choice is pretty obvious.
> What baffles me is that some people aren't willing to buy nice peripherals.

Buying nice peripherals is like buying nice clothes.

Or sometimes 'cus it's less pain-inducing for the wrists
If they tell me they buy them to type faster on then I tend to assume that's the reason.
I think that’s an incorrect assumption. People are often bad at articulating why they enjoy something.
Not if you play videogames, but yeah, for writing code keyboard speed doesn't make a difference.
I'm generally with you in terms of think—then—write, and wondering how people can write/type rapidly then endlessly edit. But I do have some modes where it works to write out incomplete thoughts, getting them out of my head, and then edit them into something workable.

Perhaps some people just really need to take that to extremes, getting out of their head all their fragmentary or preliminary thoughts, and filtering and working them down on paper or the screen?

It generally seems (to me) that a good-heavy amount of thinking first works best and/or is most productive, but overall, we all have different brains, training, and experiences, so I'd go with: "whatever works for you" (but try multiple methods).

An 800 word opinion article can absolutely take 4 hours for a journalist to write, and that's 3.3 WPM.

And we're talking journalistic opinion piece, which are a dime a dozen, not deeply nuanced scientific writing. If anything Dijkstra was writing his notes too fast and loose!

I'm sure not owning a TV, let alone social media or YouTube, gave him a lot more time to work.
> he always sought to produce the final version from the outset

This is definitely a learnable skill. However, it might be a lost art with younger generations. I had a year of high school english that taught this. Most of us kids did fine.

The assignments worked as follows:

- Write an multipage essay on this topic; you have a week. (first quarter, repeat 2-3 times)

- Here is your exam question. You can bring one 3x5" notecard with you tomorrow, but you'll need to write the actual multipage essay in 55 minutes. (second quarter; repeat 2-3 times)

- You will be given a question about the book we read, and will have 55 minutes to write a multipage essay answering the question. No supplementary materials allowed (except the book). (last quarter; repeat 2-3 times)

Grading for things like the overall structure of the essay and sentence flow got stricter as the course progressed. So did grading on reading comprehension.

I agree with this comment. My typing speed was sometimes the bottleneck, but usually it was my speed of thought, but often I fell into this cargo cult thinking that the ability to type fast matters
I am rather autistic and this is how I think, toosies. 90-95% of my time working on a project is just sitting, staring into space, completely unaware of the world around me. I think it's because while you can "explore the field" with compute, as it were, the informational shapes of whatever the problem is at hand are always there, and usually they are _much_ more simple than people seem to let on, IMPO.

I'm not really sure how to describe it for me, as I have partial aphantasia, and a kind of weird shape-synesthesisa which also blends with my sensibilities around physical taste. It can really only be described as "feeling" a shape, where a shape represents some quantity of information for a topic, if it were the case that I'm not using receptors in my hands to touch something, but instead, it's the shape feeling its own shape relative to other shapes, and it's not as much a touch-like sensation as a visceral, semi-intuitive experience of the information of whatever that shape-object-whatever represents.

I do not think that thinking in this way was fully formed from a young age (i.e. it used to be an extremely active story-based imagination), it seems to have developed in some manner as an (informationally) dissociative coping mechanism because my autism is strong enough that the world does not stop overstimulating me. When I am in this headspace, I am generally unaware of sensory input, there is only me, and the (generally mathematical) "problem" at hand. Sometimes I can go for hours, working on a problem, moving shapes and concepts around, and fitting them together in a way that explains more while taking less information to do so. This can be both a gift and a hindrance.

I generally have to limit my budget for sensory stimulation and for 'new' things because my brain is so sensitive to information. This generally is more of a disability than a help, on the whole, though it is nice to be able to solve problems in the way that I do, that is one comfort to me.

I do have a tendency to want to fit things in my brain before thinking about them, but the 'onboarding' process can take a while. I used to get in trouble all the time as a kid before this sense by trying to do mental math all of the time, I would sit, think for a long time about a problem, write an answer down, and move on. Unfortunately, instead of being encouraged, it was something I got punished for (I was homeschooled), and there wasn't much in the way of what I would consider appropriate adaptivity in that regard.

Problems are fun, and the hardest part about them I think is that we are generally crap at phrasing them and looking for solutions, most of my work seems to just be cutting through the cruft of whatever trends-du-jour or symbolic obfuscation shenanigans are going on for a given topic. Once you sort out the structure of a given mathematical problem, the answer seems to fall into place well, and one does not always need compute for that.

So, all of that to say, each person thinks and processes things in a different way, and if you're into information theory, then one might say the kl divergence (in a manner of speaking) between how you encode and solve problems might be very high with djikstra's methods of thinking! It depends upon what unique strengths and weaknesses you have, and that can take years to find whichever special problem solving mode fits best to your sensibilities and gifts. For example, I have significant trouble around symbols that have potentially multiple meanings (like, as is often the case with many formal mathematical definitions), and since those take a disproportionate amount of "processing time" for me, my problem solving methods have evolved to replace and/or avoid them unless necessary. That is likely a silly solution for many people!

So, while you may not entirely fit Djikstra's natural proclivities, there might be elements that fit you. But whatever fits you best as a problem-solving technique is likely, frustratingly, and beautifully, entirely unique and specific to you. <3 :'))))

You've described something extraordinarily similar to my own mental topology for processing problems. I'm also autistic, although I think our sensitivities differ somewhat.

I also try to (and mostly succeed at) hold a whole problem in my head at once. This made me fairly successful at architecting software systems with many moving parts, but it's an incredible drain on my energy, and I would sometimes find myself so exhausted I would go to sleep for hours (i.e. not a simple nap) in the middle of the day. I credit this ability for my current burnout, honestly! It's deeply satisfying to do, but maintaining it week after week amidst all the other responsibilities of my previous job (especially the interpersonal ones) was crippling.

It doesn't seen weird to me because 3 words per minute is 180 words per hour. The fastest I've ever typed as a fiction writer is around 800 words per hour. I think my average is around 300~400 words per hour.