1. 25
  1. 8

    For me, when I read prose I subvocalize, but when I read code I do not, unless I am like mentally rubber ducking. They feel very different to me.

    1. 4

      I do, but I also subvocalize formulas when reading math.

      1. 3

        When I was temporarily blind, I tried a few accessibility tools to see what programming was like without sight.

        Some languages were an absolute joy to hear spoken word-by-word, but others like Python and Go, I found nearly impossible to follow; Once I heard q/k spoken, I realised I could speak my own code that way, and so now I do.

        I still mostly sight-read (prose and code), but sometimes the tempo and emotion of something is easier to get if I give the author a literal voice in my head.

        1. 2

          Ok, have you written up your experience of blind coding anywhere? That sounds fascinating!

          1. 1

            I wrote about it briefly on hacker news near the time it happened, but that might not be what you consider a “write up” as I don’t know what part of the experience would be interesting to other people, and certainly didn’t do any special research on the subject (a blog certainly wasn’t my intent) but all the same: I’m happy to answer questions about it.

            1. 1

              Interesting read! thanks for sharing

          2. 2

            The way apl/k/q/j etc. read by someone who’s really good at them is pretty interesting. The terseness might help with that, I don’t know. Sometimes with Haskell it’s possible to do a similar thing, but not as often.

        2. 6

          Yeah this makes sense. Every single line I write is a part of a puzzle that makes sense with the rest. The order of statements and their interaction and meaning is more of a problem to solve than a transfer of information. I wish I could phrase it better.

          I would bet that if you verbally gave a riddle to someone their brain would light up the same way.

          1. 2

            This sounds similar to how I think about writing code. It’s creating a puzzle, part of which is also a puzzle itself: to create it with enough clarity that it can grow over time. If the puzzle you create can be understood quickly by other puzzlers you did a good job. Oftentimes that other puzzler is yourself in 6 months. There’s also something important in the puzzle design around compartmentalizing features so that as they grow changes don’t have broad-reaching effects to other areas of the puzzle. A lot about how you approach a puzzle can depend on the tools you are using, the most-important tool being the language you write it in.

          2. 3

            In my mind, reading code feels like putting together a little machine. I feel the pieces move and carry other pieces and click into place.

            It’s a really satisfying feeling, at least when the code is well-written.

            1. 2

              For me, I feel like I hear the programmer explaining to me what they think is important. Sometimes what they are saying sounds very strange, and that’s usually where the bug is.

            2. 3

              The two programming languages that the researchers focused on in this study are known for their readability — Python and ScratchJr, a visual programming language designed for children age 5 and older. The subjects in the study were all young adults proficient in the language they were being tested on … “It’s possible that if you take people who are professional programmers, who have spent 30 or 40 years coding in a particular language, you may start seeing some specialization, or some crystallization of parts of the multiple demand system,” Fedorenko says. “In people who are familiar with coding and can efficiently do these tasks, but have had relatively limited experience, it just doesn’t seem like you see any specialization yet.”

              Sounds like people who say they’re “proficient” can’t read computer code. I think this is worth careful consideration to anyone the next time you feel like arguing about “readability”.

              I had been “proficient” for a couple of decades before I learned how to read computer code as well as I read english, so I hope the researchers keep exploring this space even though “no result” got translated as “negative result” by the press.