• Resume can be two pages. I have kept it at one for a long time, but … I suppose that just makes it seem like I haven’t been doing things.

    … Additionally, I add capability and maintain that capability, but I am not the driver of the lab. I need to find a way to explain my value without lying.

  • I think O(x) for time (when I think of it) but rarely for space.

  • I need to think in Math more. Which means I need to understand Math more.

    … Right now, that pulls to the idea of sorting the strings in an array and then sorting the array. Sorting is O(NlogN), so sorting the strings would be O(SlogS) and sorting the array would be O(AlogA), and combining the two would be O( A*S( logA + logS ) ). Book tells me this, I couldn’t have figured it out myself.

  • Saw a description of Finnegans Wake as being like taking a swim in the middle of the ocean, in that it’s an experience, but disconnected from everything so you never feel like you’re getting anywhere. That’s largely how I feel about pure computation. I like it a lot better when there’s a form I’m pulling from, like a database query or a JSON object, and a form I’m sending to, like a web page or an audio file. I like turning things into other things, and while there’s complexities to it, it is usually very straightforward.

    … I need to learn other ways to compute.

  • I think I need to wipe and reinstall the OS on this computer. Pull the data and start from scratch. And if I do that, I don’t know if I should go Windows on this machine if I do. I don’t know if I should keep using this machine for anything but playing.

  • I have not been taxing it much but I have had to hard-reboot it twice today. I hate my computer.

  • Memoization. Remember that.

    … The joke is that the two hardest things about CS is cache invalidation, off-by-one errors and naming things. Here, the cache of what’s mathematically derived should not change, but in other cases, that could be.

  • heaps

    … I use them without remembering.

  • Problem Solving Order

    • Listen Carefully
      • Notebook/Whiteboard
      • Get unique information/implementation hints
      • They won’t tell you things that are not germane
    • Draw an Example
      • Specific
      • Large enough
      • Not a special case
    • Brute Force take
      • Explain time/space complexity
      • Talk it through
    • Optimize
      • Look for unused information that could inform the solution
      • Try different example
      • Do it incorrectly and iterate
      • Time/Space tradeoff
      • Precompute
      • Hash table
      • Best Runtime
      • Remember BUD
        • Bottlenecks
        • Unneccessary Work
        • Duplicated Work
    • Walk Through
      • Talk it out
    • Implement
      • Beautiful code
        • Correct
        • Efficient
        • Simple
        • Readable
        • Maintainable (whole books about that)
      • Handwave details when necessary
    • Test
      • talk through bad areas