switch statements
switch statements require you to exhaustively consider all relevant or possible inputs (if you don’t rely on default).
Interestingly, the notion that switch statements can require a default is reflective of the truth to the idea that when the stakes get high, we all fall back to our default level of training or function. This has global applications to our functionality and, by extension, the inputs (things,people/their methods,contexts) in our lives as well
When I start a personal project I create a readme file that has a ToDo section and a Change Log section. Anything I think of that I might want to do I put under ToDo, break it into small chunks and prioritize it. When a task is completed under the ToDo section, I move it to the Change Log section. Easy to maintain, track progress, and documents both a Road Map and Changes all in one place. It also has a section for references to shared assets that need attribution. Actually to keep it simple the same document usually also has an about section, an installation section, and a usage section.
I’m good at breaking down problems into small chunks and not getting overwhelmed by a big project. Do I have the motivation to finish these tasks? That’s a different question.
Loops and recursion or just thinking iteratively in general. If you get this, then mathematical induction gets much more intuitive if you’re studying math.