I used to write down information in note-taking apps but doing so didn't help me retain more knowledge. The reasons were: (a) no spaced repetition, because I never went back to my old notes once I wrote them. (b) environment switch due to having to launch external apps every time to write a note. Environment switch was especially painful when I was immersed in a complex coding problem.
I solved those two pain points by sending myself an automated digest of my notes every week (spaced repetition on autopilot) and building CLI, browser extensions, and IDE plug-ins to talk to my personal knowledge base so that I don't have to switch environment to put stuff in the knowledge base.
My experience is positive. It has helped me advance my foreign language skills, learn new vocabulary, and retain various technical micro-lessons that I come across during programming.
 - https://github.com/dnote/dnote
Oh, this is fantastic, thanks. I'm going to have to look into how I can do this for my own knowledge base. Especially the spaced repetition part.
Btw, this is a great article.