I feel dumb(er) when typing, and smart(er) when writing
I have noticed many times, writing down a problem and work on it on a paper is much more productive than staring at my screen and/or jumping right to code.
Last time it happened, I spent a day on a Coq exercise, when I finally I decided to grab a paper and pen, and solved it in 5 minutes.
Is this something that anyone else is experiencing? Is it something that has been (dis)-proved?
56 comments
[ 2.1 ms ] story [ 247 ms ] threadLooks like there is evidence for this:
- https://www.forbes.com/sites/nancyolson/2016/05/15/three-way...
- https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4274624/
When I (tried to) learn Japanese, I was only able to read handwritten kanji after learning to handwrite kanji. The effect was striking, night and day
In my first job in games, my lead at the time took issue with seeing me occasionally doodle in a notebook in front of my PC. It wasn't a case of sitting there doodling all day and getting no work done, or not focusing. I'd only do it for a few seconds or a couple of minutes at a time, when thinking through a task or problem. After that interaction, I stopped doodling at work for a long time, to my (and I believe my work's) detriment.
Switching from screen to paper is one way of context shifting. You could also switch a whiteboard.
You could switch to talking through the problem verbally with a colleague or, lacking that, a rubber duck.
You could just get up and go for a walk to think about that problem. Context shifting from indoors to outdoors can be a significant change.
It helps to learn how to recognize when you’re stuck, not making any progress, and have maybe a bit of “learned helplessness” slowing you down even further. Shaking up your context can help break out of it.
I never tried duck - debugging, maybe should give it a go too
I type 150+ WPM and can’t write to save my life. Writing things down with pen/paper does nothing for me.
Same, but writing still helps me think better.
Maybe typing is too guided, and having to organise my thoughts on paper makes the process more efficient.
When I jump from editor to pen and paper it usually means that I'm having trouble mapping the code I'm writing to a part of the problem Im'solving, and I switch to exploring the problem more before going back to the solution. I'm going to go out on a limb and say that that's pretty much what happened to you as well.
Jeff Bezos says the "smartest thing" they did at Amazon was to ban low effort presentations and embrace writing long-form briefs for each meeting. That made sure the problem was thoroughly thought out by the meeting owner and is read by the group in detail for the first 30 minutes of the meeting.
In open source, many projects adopt a RFC(request for comments) process in which a problem is written about exclusively with solutions and asking for public feedback. This works effectively in ecosystems like Rust, Python, JavaScript, and C#.
If you think about knowledge work in general, 80% of the job is problem solving, creative thinking, etc. 20% of the job is implementing / coding. Jumping straight to code was something I did when I was early in career, but now it's the last thing I do until I understand the problem in detail.
I like the anecdote, this and the two-pizza rule are some nice bits of Amazon "management lore".
Bezos believes that no matter how large your company gets, individual teams shouldn’t be larger than what two pizzas can feed.
http://blog.idonethis.com/two-pizza-team/
I carry my own Smallish notebook and pen but the convenience of having everything already digitized and available everywhere is so tempting.
Also for problem solving I agree. I also don’t know why but I feel a lot “freer” when I have a sheet of paper in front of me.
While writing text is slower than typing, it’s much, much easier to choose where to write, and to draw lines and boxes. All tools that helps thinking.
> when I finally I decided to grab a paper and pen, and solved it in 5 minutes.
In defense of your hard work, it’s always the last solution you try that works.
Code is what keeps me down to earth. It may seem like an unnecessary detail to think about how to pass a variable when you are barely familiar with the subject, but if you can't get something that simple right, chances are that your are going it the wrong direction and when time will come to do the implementation, you will be in a world of pain. Of course, a lot of that early code ends up being thrown away and reworked, but in the early phases, it is rarely a problem.
It probably has to do with a top-down vs bottom-up approach. I am much more comfortable working bottom-up, thinking first about the details and how they fit the big picture, rather than to top-down approach, where you think of the big picture and work up the details later. I think that both approach will eventually lead you to the same destination, so choose the one you are most confortable with.
Also, context matter. I do mostly low-ish level programming (mostly C++), I don't know about coq, but it seems to be more maths than technical engineering, so maybe a different mindset is required.
But in general, I never do drawing, but yes, definitely diagrams of some state machines for example. It's simply impossible to hold them in the head.
I use a notebook as well btw, for leetcode as well. it's simple better. limited in it's distractions, requires a greater amount of lingering on thoughts rather than quickly typing in whatever words have come to mind, freedom of input and manipulation. it does one thing slowly, not everything fast and the interaction it requires is beneficial to then thought process.
even tablets are not as good. anyways, I agree with you.
Like you and others this experience with paper has also been my experience for decades. Perhaps of interest is that I transitioned from using paper to a Remarkable tablet, which is surprisingly great from a writing experience perspective, but which is deficient in the "paging through" experience that is so important with paper. Its still preferable to me to work digitally, and to unify around a device I can read on, and I am able to use it to work in problem domain reasonably effectively.
HTH.
Typing however is one-dimensional. Thoughts need to be serialised in order to type them out. Sometimes this is exactly what you need. For example, a linear narrative tends to make it much easier to explain your ideas to others. And of course code is just a serialised version of a program.
One guides a slide rule to roughly the right position based on intuition, then homes in on the answer.
Calculators make people dumber.
I'm torn between doing all my math on 40 lb laser paper with an assortment of Staedtler Pigment Liners, or on my iPad Pro using the architectural drawing program Concepts. Either way, I'm drawing. A digital interface is like a bird taking flight when one becomes algorithmically involved.