The first computer I ever played with was a white dabba desktop. It housed a Music folder with ~10 songs (one of which was Aqua's Barbie Girl) and an elaborate family tree inside a Microsoft Word document (all my father's doing). I thought Prince of Persia was the coolest game.

I have loved and lost many computers since, but I don't know how any of them did the things they did. So I'm making my way through The Elements of Computing Systems with a friend. When motivation runs high, I have a tendency to overcommit. I am also, as a result, taking CS50 and documenting my learning for the sake of it. (The writing is rusty, please bear with me.)

17 June 2021: Implementation + Impatience

  • After some frantic forum-skimming and boolean expression-scribbling, I am halfway into the first project!

  • I don't think "easy" and "difficult" are very helpful in describing my response to these tasks. This is something I've noticed with CS50 too.

  • I feel utterly aimless in the beginning. That, coupled with a learned impatience, has me thirsty for hints in a matter of minutes. One of my larger goals is to learn to resist this urge every time I am faced with a challenge.

  • I had absolutely no idea where to begin with the Not gate implementation. So I looked it up. I don't think I could have come up with that myself. I'm trying to be okay with that.

  • All 1-bit gates have been opened. I like that all of them have an origin story that I (sometimes partially) rewrote!

  • Truth tables are my best friend.

  • Who is an ideal learner? Is there such a thing?

10 June 2021: First Thoughts

  • Responses to questions you may have about why I chose to study this:
    • It feels like I'm acknowledging a part of myself that I have almost entirely neglected since I last studied math in school.
    • It's like a jigsaw puzzle.

  • I have always deemed hardware as something I had no interest in and would never adequately make sense of. Not sure why I didn't realise it's all just logic.

  • It certainly helps to associate these concepts with physical objects (eg. multi-bit buses as wires).

  • An uninformed, fledgling opinion: all topics of study boil down to examining relations. Logic and adjacent methods/objects differ from the humanities in their appetite for and reliance on neatness and completeness. Tremendously satisfying.

  • In the event that a = 0 in a demultiplexor, and is selected as the output, my friend and I have decided that a = 0 is not the same as b = 0. Zero is a bit value in the former and "nothing" in the case of b. I'm not sure if we're thinking about this right. If we are, would we not benefit from a slightly larger vocabulary?

  • Are computer scientists attached to their computers in ways that computer users are not? What are other ways of classifying human-computer relationships?