< prev 21 Nov 2014 to 21 Nov 2014 next >

Posts from 21 November 2014

  • Week 2 Day 4 - Anagnorisis

    Hoo boy. I can feel stuff stacking up.

    Checkers was basically a repeat of chess, but simpler. I thought I had learned a lot, but today was a real learning day.

    For background: it was our first solo day, and without anyone next to me who was depending on me to drive/navigate, I was somewhat slow to sink my teeth into the project. I thought I was sticking to the spec, but I spent a long time running off on tangents, trying to get minor methods to do what I needed in order to be able to get printable output as quickly as possible.

    This was a mistake.

    I've come to suspect that my working memory isn't great, and that that's why I try to recursively abstract problems—I can only manage 5 +/- 1 ideas at a time, and the more high order the chunks are, the bigger the idea I can digest.

    So when it comes to seeing how different parts of a multi-class project will fit together, I miss things that become both obvious and painful a couple hours in. (Debugging complex interactions in similarly challenging for essentially the same reason.)

    Today's big pain: I misread the spec, in a way. There are basically three general ways to send moves around the core class of the checkers project: as positions ([1,1] to [2,2]), as differences from a starting position (start, [+1,+1]), or as some general class of methods I will refer to by the technical term "totally effing stupid".

    Yesterday we generated moves early, and only passed moves around. That worked well; we had a simple wrapper on the class that translated algebraic notation ("b3" = [2,3] = [1,2] in 0 indexed arrays) to the position references we were using, and then we only passed those around.

    Today, because I misread things, I started out passing around differences, then I realized that I needed moves, then I tried to simplify things using one of the last methods, and that was, predictably, totally effing stupid.

    I got a lot working, but my errors weren't working right on certain literal edge cases, and finally I threw in the towel at 9.

    Lessons "learned":

    • When doing solo work, pseudocode flowcharting might be necessary for someone like me to avoid super-dumb mistakes
    • I need to rubber-duck, either with a human, or with a rubber duck. I think I'm going to put my plush octopus next to the home computer. She needs a name, though, so I can talk to her properly. (Completely serious, by the way.)
    • If I'm going to rubber duck on solo work, I need to not be in a place where I'm going to be self-conscious doing so

    There's more, I'm sure, but I have a ton of readings to do before 2 am, god willing.

    "Am I the one who holds good pairs back?"

< prev 21 Nov 2014 to 21 Nov 2014 next >