• 2 Posts
  • 1 Comment
Joined 2 years ago
cake
Cake day: July 8th, 2023

help-circle


  • Its a tough problem. You have to find something that you want to exist; like an app or a website or a game. For example, try making a GUI for managing SSH keys. You know, like the ones github makes you create in order to clone and push to a repo. Make a visual representation of those keys (stored in the .ssh folder), and tools to add/delete them.

    Along the way you’ll find tons of missing things, tools that should exist but don’t. Those are the “real” projects that will really expand your capabilities as a developer.

    For example, I was coding in python and wanted to make a function that caches the output because the code was inherently slow.

    • but to cache an output we need to know the inputs are the same
    • hashes are good for this but lists can’t be hashed with the built-in python hash function
    • we can make our own hash, but hashing a list that contains itself is hard
    • there is a solution for lists, but then hashing a set that contains itself is a serious problem (MUCH harder than hashing a list)
    • turns out hashing a set is the same problem as the graph-coloring problem (graph isomorphism)
    • suddenly I have a really deep understanding of recursive data structures all because I wanted to a function that caches its output.