What I use:
Vim + markdown (evolved into standardized DSL for note-taking) + git.
What I'm here to say is that programmers' tooling is a great fit for knowledge management. Fuzzy file finding / fuzzy grep is something you can get for free with plugins, and any interaction like going-to-previous-file-by-date can be easily achieved with editor scripting. Version control (Git in this case) allows per-line editing history & multi-machine granular merge and basically adds another dimension to text editing: time. All versions of the text exist in their own right and can be inspected and rolled back to. I use heavily optimized editor keys for 2-3 keypress commit-related operations, most of it came for free with plugins. The power of Vim for text editing is not to be underestimated as well.
Another thing perhaps worth mentioning is tiling window management + tmux. I have tmux / terminal sessions for different knowledge-management tasks (notetaking while reading an article is a different tmux session than daily agenda e.g.) bound to key combinations so that they can be accessed with low latency. The lowest-latency inbox is just a text field that appends to a file, for use when any distraction is to be avoided.
Basically my point here is, learning Unix is high value, because no premade tooling can be as well-designed as a hand rolled one, for under-explored domains.
1. When learning new things, I use the principles of deep learning to link what I've learned to other things I've learned. This helps me remember the important bits and usefully be able to apply them when they're relevant.
2. When working on a project, I take all the things I've learned that are useful and put them into TheBrain, linking them to relevant parts of the project as well as previous types of knowledge they're related to. The types of knowledge I try to capture in the brain are:
By consistently doing this with new projects, over time I develop an interlocked set of knowledge that makes it very easy for me to find relevant tools for my new projects.
3. When I find a particularly useful article/image/etc, I add it into Evernote. I can then search Evernote when I remember a particularly useful article but didn't fully internalize the knowledge or remember the specifics. This can be added to the brain if needed, or sent to other people when they're dealing with relevant problems.
4. I take notes on books in my Kindle, and sync them to Evernote with clippings.io
5. I used to take Shallow knowledge that was particularly important and add it to Anki, but it was very hard to find shallow knowledge that I knew in advance would be particularly important, and gave up on the practice in the favor of just saving important thing in Evernote. I try to err on the side of savings things, and am always frustrated when I'm trying to remember an article but didn't save it in Evernote..
I use Notion.so. I mostly use it like a wiki, but I find the rich formatting and easy move-ability of the blocks to be helpful. I also use the database features to collect notes for ongoing projects, using it more like a journal. Notion is slow on mobile, but I find that taking the time to transfer bookmarks and insights to Notion helps consolidate them.
For organizing ideas that have a temporal component, I use preceden.com timeline. This is great for keeping track of books I've read and for medium and long term planning.
For longer thoughts and writing I use Google docs. I use Google Drawings for mindmaps and conceptual diagrams. I then link to the docs and drawings from Notion.
For PDF articles I use Notability on my iPad. This has excellent highlighting and note-taking features.
For ebook reading and organization on the iPad, I use Kybook.
For video lectures Youtube playlists, with youtube-dl gui for offline viewing.
I have been wishing for a long time for a fully integrated solution, but each tool has it's strengths and weaknesses.
I'll repeat the endorsements of org-mode, and add some links to specific org-mode features that I use.
C-c c tand just type what I need to do
C-c C-d) to indicate when I want to do the task.
C-c C-e P xto publish a new version of my website
I've tried other PIM tools, like vimwiki, workflowy, DynaList and Dropbox Paper, and I've found that of all of them org mode offers the right mix of customizability and immediacy for me. That said, I'll be the first to admit that org-mode doesn't have the easiest learning curve, and it's support for mobile devices is pretty much trash. (People have recommended orgzly, but, honestly, orgzly's UI pretty terrible.) What I do when I'm out and about is capture notes in Google Keep and then copy those notes over into org-mode when I get back to my computer.
This "stack" is very useful for me.
Workflowy. Dynalist and others have more features, but I don't want more features. More features means more decisions. I organize by month and do a review at the end of months, plus a year end review when collapsing into my archive tab. Tags for things like book notes, quotes, routines etc.
No particular philosophy: just add some kludge to make your life easier, then repeat until they blot out the Sun.
Non-computer tool is paper for notes & pen, filing everything useful to inbox during daily review. Everything else is based off org-mode, with Orgzly on mobile. Syncing over SFTP, not a cloud person.
Wrote an RSS reader in Python for filling inbox, along with org-capture. Wouldn't recommend the same approach, since elfeed should do the same reasonably easy. Having a script helps since running it automatically nightly + before daily review fills up inbox enough novel stuff to motivate going through it, and avoid binging on other sites.
Other than inbox have a project list & calendar within emacs. Not maintaining a good discipline for weekly/monthly reviews, but much smoother than keeping it in your head.
I have a log file that org-mode keeps in order by date. And references file that don't get very organized or used often. Soon will try to link contents of my massive folder of PDFs with it.