5 ms·
Unrelated to the algorithm, I’ve found that doing things “by hand” is a surprisingly good way to develop intuition for otherwise opaque concepts. I wonder if it
by dualvectorfoil 6y ago
Unrelated to the algorithm, I’ve found that doing things “by hand” is a surprisingly good way to develop intuition for otherwise opaque concepts. I wonder if it’s a function of doing work more slowly or paying closer attention. Examples include writing code written by others and working through math on paper.
- dawnerd 6y agoTotally agree. I had a hard time trying to comprehend how parity works until I sat down and did some parity computations on paper.
- deleted 6y ago[deleted]
- JamilD 6y agoLikewise. Once in a while I force myself to do backprop by hand to make sure I still understand all the concepts and can walk myself through the calculus.
- mkaic 6y agoI just learned backprop for the first time a week ago and doing exactly what you described, working it out by hand, was absolutely invaluable. There's something about being able to visualize what my code is doing on a sheet of paper that just helped everything click.
- soared 6y agoIs there a book that teaches this by hand? My favorite book went through basic algorithms by hand in excel (data smart, john foreman)
- guerrilla 6y agoI agree. For some reason, I didn't get the lambda calculus when I first encountered it but it became entirely obvious after doing just a couple of exercises by hand.
- rullopat 6y agoTrue, I understood how pointer works when I drew them on paper. I was struggling for a week, then I tried on paper and in 10 minutes I got it.
- kzrdude 6y agoSo much screen-staring time can be saved with just pen and paper. We need to learn to do it more often.
- infogulch 6y agoI love whiteboards, they are much better than paper: more space, nice colors, easy to see, very easy to collaborate on, simple redos. That's actually the biggest thing I miss from going into the office: nice huge whiteboards that cover the whole wall, not the little dinky ones that office depot sells for exorbitant prices. I found a solution though: Lowe's sells a 4'x8' sheet of whiteboard for fifteen bucks, now I have my whiteboard covered wall in my home office so I'm happy again.
- jjuel 6y agoDo you have a link to that Lowe's whiteboard sheet?
- infogulch 6y agoIt's called "Smooth White Wall Panel", but honestly just go with a truck and ask an employee, apparently they're popular. The guy I asked said they even use them in the employee areas in the back. https://www.lowes.com/pd/47-75-in-x-7-98-ft-Smooth-White-Wall-Panel/3015239 https://www.lowes.com/pd/47-75-in-x-7-98-ft-Smooth-White-Wal...
- alisonkisk 6y agoI like pencil and paper. Colored pencils are plentiful, and paper is easier to image and share than a whiteboard. You can write smaller on paper and don't get gorrila arms.
- Gehinnn 6y agoI think this is due to some kind of muscle memory. You only start hearing certain patterns in complex music, e.g. Mahler symphonies, if you listen often enough to it. At some point you recognize stuff unconsciously.
- pontifier 6y agoI've noticed something similar in dance and language. I think it has something to do with mirror neurons feeding back into meaning making. When you hear a word in a language you know, mirror neurons probably fire the patterns that would be required to make those sounds yourself. If you don't have experience making a sound, you're less likely to be able to detect subtle nuance in it, and those patterns tie into your memory of the times you have used that word. The same with dance. While taking dance classes, I found that watching very good dancers gave a visceral thrill that wasn't there before... Like I could FEEL what they were doing.
- lmkg 6y agoI think it's because the human mind tends to jump over things which don't seem important, as a performance optimization. But its idea of what's not important is not well-tuned to many contexts. I think a lot of "secret tricks" are just ways of trying to bypass that heuristic and force yourself to do all the steps. E.g. rubber-duck debugging: putting the situation into words means putting it into concrete terms, which catches the parts that your brain let sit unexamined.
- bredren 6y agoIf I’m unfamiliar with a project I force slow work by first looking for existing process improvements, like organized GitHub milestones and well-described and meta’d issues. I’ll commonly explore new tech by generating my own summarized documentation and through light tooling of initial configuration. I am in the midst of this now where an existing operational “algorithm” needs better software support. A lot of the discovery for that is starting with very general issues describing “problem” areas and then drilling them down to specific issues that might require action. It can be tedious to go this “slow,” but it’s how I get to fast.
- bdcravens 6y agoNot exactly the same, but that's why I think the best requirements document is a working Excel spreadsheet.
- jhoechtl 6y agoBoth. And another aspect you missed: Doing things by hand stimulates regions of the brain which are directly tied to regions of creativity and to improve the ability to relate a new concept to existing concepts.
- nmfisher 6y agoI’m going through this right now, pages and pages into a manual calculation of a small factorial HMM. Not only does it help thoroughly internalise the concepts, it’s the only way I can be sure I have no bugs in my digital implementation.
- ALittleLight 6y agoI've been doing this while optimizing leetcode problems recently. I just force myself to step through the same logic that the computer is doing to solve the problem. Not the code, but the same logical manipulations to calculate the answer the same way the code is. Very often I'll find myself thinking "This is a waste of time, I could easily shortcut this by... X" and when I find the shortcuts that make the "by hand" process more manageable, I can apply that same logic to the code and make it faster as well.