5 ms·
"These are... [the] originals?? The showed no corrections of any kind. Not one. It's simply written down music that was already finished in his head. As if he w
by bravura 4y ago
"These are... [the] originals?? The showed no corrections of any kind. Not one. It's simply written down music that was already finished in his head. As if he were *taking dictation*."
I wrote C code by hand. Mind you, I wasn't typing it nor copying it from anywhere. I was writing it, by hand, from my head. Hear me out...
I was on the collegiate ACM programming team with Russ Cox and Matt Caywood. The format was you were given like 6 puzzles, 4 hours, and one terminal. Russ insisted we follow this process:
1) One person picks the easiest and gets the terminal.
2) Other two teammates choose two other puzzles and each of us would write our code, by hand, pen and paper. ("The New York Times crossword puzzle is a form of meditation. But doing it in pen if pencil is available is grandstanding." - Glenn O'Brien, from _How to be a Man_)
3) When one was finished, we would acquire the lock on the terminal from the other teammate, transcribe our code, and hit run with our fingers crossed. No collaboration. No cross-talk.
4) Repeat until victory is achieved and your competitors are decimated. (We laughed with no small amount of schadenfreude that the MIT team lost in the regionals because they all stood around their sole terminal, imcomprehensibly bickering at each other.)
We got 8th place in the world, so---uhm---thank you Russ for the joy and pain? I wouldn't recommand to any CS student that this slow form of torture is necessary by any means to assert that you are damn fine coder. But, GOD DAMN you feel like a beast when you type C into a terminal, run compile, and it works with no bugs.
You get a special satisfaction of bravura and elan that would reduce Salieri to tears reading the scripts of Mozart and realizing there were zero hand-writing errors. https://www.youtube.com/watch?v=RfJ0QyiI68c https://www.youtube.com/watch?v=RfJ0QyiI68c (This is historically apocryphal, but makes for great screenwriting.)
Through this rigor, you learn something very valuable, albeit something you might learn in more conventional and less tedious ways: You learn always---at least in those fleeting moments---to write correct code at the optimal level of conciseness. Because you simply don't have the time to fiddle around the way you might if you have a fast wpm typing rate, since you write slower than you think. And learn to think faster than you can write.
I guess this is similar to the form of discipline you would get when you programmed punch cards and sent them via post, except under time pressure it was blitz chess than punch-card postal chess.
And don't get me wrong. I use Jupyter notebooks and putz around a lot these days. I'm too old for some shit, and putzing around is fun.
- for_i_in_range 4y agoThank you for sharing this story. I really enjoyed reading it.
- jholman 4y agoI did this also. C and C++. Although none of my teammates are now Known Names, as far as I know, and also we did sometimes collaborate a little bit. But not at the "terminal" (not really a terminal), because in the labs used for keying in the code, the A/C couldn't handle more than one contestant per computer, so the contest organizers required you to hold a mutex to the room, not just to the computer. I believe it was 3 hours, and in my day it was 10 puzzles. I still have my crib sheets, and the printed-out problems sets, which were printed on brightly-coloured sheet of paper. I agree that, once you apply yourself to this, it is not that difficult to learn to code more proficiently on paper than you would with an IDE, in less time. That's not to say we didn't have bugs in our algorithm designs. Although we did not get eighth place in our region, much less the world, I too think it was pivotal in my development as a programmer.
- djmips 4y agoSpeaking of writing out code - in the eighties making games professionally on ye olde 6502 systems - we would go to the local coffee shop with paper notebooks in hand and scrawl out code - Go back to the office and then type it in and press run. A lot of code was hand-written 'offline' back then. I wonder what effect that had on our brains.