3 ms·
> Now, tell him to add those numbers in his head. He can look at the screen and talk/whisper/mutter to himself, but he can’t write anything down and he can’t ty
by SamBam 5y ago
> Now, tell him to add those numbers in his head. He can look at the screen and talk/whisper/mutter to himself, but he can’t write anything down and he can’t type anything.
"Why can't I write anything down?"
"Because when I'm seven to ten levels deep in a stack of issues, I never write anything down, I need to keep it all in my head."
"But why?"
"Well... I have a whole mental model constructed. I couldn't possibly write it all down."
"But it seriously wouldn't help you to keep some notes while you work? And perhaps add to the skimpy comments in the codebase while you're doing it?"
"I seriously don't see how that would help."
"You literally just said you've written down the code '8xZ204330Kd' and now you have no idea what it was for. Did you imagine you'd be guaranteed to remember it between writing it down and finally solving the bug? Why didn't you at least write some context about what that string was?"
Seriously, just like most kids somewhere between the ages of four and ten goes from "I know I will remember this!" to "I should write this down so I don't forget," programmers could stand to recognize that sometimes taking some notes can help clear their brain when they're too many levels deep in a stack.
- Popegaf 5y agoNotes still require you to build context. Additionally, they have to be useful and up to date. I can't speak for others, but even with notes, it takes a while to get back into the flow. This study claims it takes >20 minutes to get back on track: https://www.ics.uci.edu/~gmark/chi08-mark.pdf https://www.ics.uci.edu/~gmark/chi08-mark.pdf The effects of notes weren't quantified, but if you have a study on that, I'd be happy to read it.
- varjag 5y agoA blunt pencil is better than sharp memory.
- Doxin 5y agoI feel like a large problem is that serializing mental state when programming is incredibly lossy and slow. Doing a serialize-deserialize cycle to paper is going to take me a lot longer than just trying to figure it out from the code I already wrote while solving the problem. I do take notes, but it's almost invariably simple stuff like todo items or row IDs I'll need for a lookup.