DON'T KEEP THEM ORGANIZED... USE SEARCH
Learn to love Search, but give yourself a manual cheat mode that doesn't take any effort to maintain.
I use the application "Hazel" with two tactics, one to clean up Desktop, one to clean up Downloads.
For desktop, I use a freshness rule, and then a manual lookup hack. If it's likely this file isn't changing any more, Hazel sweeps it into folder.
In downloads, I do freshness, but with a variant manual lookup hack.
DO GIVE YOURSELF A MANUAL/MEMORY METHOD TO FINDING FILES
What I mean by manual cheat mode or manual hack is, can I find this file very quickly using just what I have in my head, without having had to identify content and file accordingly?
For the hack, I file by buckets of dates. What I've found is, I can generally recall what I was working on when I had that file, and from that I can recall generally when I was working on it. So, if I can "file by date" with an appropriate granularity where I balance a fuzzy "when" with a glanceable number of files, then I can find it by looking in usually one but at most maybe three buckets. Bonus: date folders also make it easy to scope searches.
Depending on the nature of work, my buckets range from quarterly at the largest, to weekly at the smallest. I name them YYYY QN/FILE, YYYY/YYYY-MM/FILE, or YYYY/YYYY-WW/FILE. If I'm doing quarterly, the folders are not nested inside the year.
For downloads, I add a layer between the date folder and file: domain. I used to just use domain and replace files of same name like "latest.zip" but over time I began to value having the prior version of downloaded things. So downloads look like YYYY QN/DOMAIN/FILE.
AUTOMATED SCHEME EXAMPLE
Putting it together, my current scheme on home laptop is:
Desktop
- File by Week Last Opened > YYYY QN/FILE
method: sort into subfolder
trigger: date last opened not blank and last opened is not last 2 days
date = date last opened
- File by Week Last Modified If Not Opened > YYYUY QN/FILE
method: sort into subfolder
trigger: date last opened is blank and last modified is not last 2 days
date = date modified
Downloads
- Quarterly Sources > YYYY/DOMAIN/FILE
method: sort into subfolder
trigger: date added not last 4 weeks
date = date added
Hazel has additional features such as what to do with duplicates, that you can tailor to your preferences.
As a further bucketing mechanism, if you use many machines for different modalities and collect all those files into a single 'cloud' place they all can reach, you can append the machine or hostname to the dated bucket. That lets you have selective sync rules to different machines, but also find all the content in one place.
ALWAYS BE ORGANIZED, BY NEVER ORGANIZING!
I never file anything anywhere, I just let these rules grab them and squirrel them away. If I need a set of files across dated folders, monthly bank PDFs for example, I pop open a folder, see the relevant filename, and run a search for that, then select all and send to accountant.
SPECIALS
Code repos are special cased, within a source code management folder tree, not worked from desktop. Vagrant and Virtual Box VMs, Pictures, Media, Music, also special case managed by their tools.