Smart Notes for Developers - NEBytes January 2023
About
Sam Hogarth is a lead developer based at Tesco Bank in Newcastle and spoke about Smart Notes for Developers at NEBytes on 25th January 2023.
What do they do?
They keep track of emerging tech trends, ongoing projects and programmes, longer term tech roadmap, commercial decisions, engineering practice, mentoring / coaching / line-management and do their own personal and career development all of which are part of what they do and they needed a way to manage all of this.
Store it all in the brain?
Put a lot of faith in being to recall things with clarity and precision but this can cause stress, be overwhelming and can end up burnt out.
Offloading to a 'Second Brain'
Need somewhere can put things brain is good for cognition and synthesis and computer can be for storage and retrieval. A way of storing information that mimics the way that people thing and put things together.
Concepts
Vannevar Bush wrote an article “As We May Think”, and saw that tech was becoming more accessible and faster although wasn't too great about the technology as he focused on microfilm. There is the concept of remote working and we are being bombarded with things to read and is constant and can never get on top of it as there is always more coming. There's a huge amount of information coming our way and maybe we can use computing devices to help with this. There was an idea of the Memex that wasn't built but something like this was built much later, which would have information written down on microfilm and could make annotations on the document and could link documents together and build own train of thought between the documents and could then scan documents in.
There was the idea of hypertext where you could link documents together using a system called Xanadu which is a sort of vapourware as it is an idea ahead of its time, but the idea was to have documents connected together permanently and have way of knowing which documents were linked to other documents and there was a lot of experimentation to link things together such as HyperCard. Tim Berners-Lee took all these concepts and created what became the World Wide Web, which added the ability to have even more documents linked together and contain images. Wikipedia is one of the most famous examples of hypertext documents and you can find many documents that are linked together, but often forget the importance of links, many links on Wikipedia contain concepts and groups and often can contain the purpose of why are going to a place and there are also applications such as Evernote and OneNote.
Current Tooling
Plain-text using Markdown which can be used to create Hypertext based documents and can be local-first and this is not proprietary and isn't in the cloud as it is local-first so you can encrypt or protect it, these tools also know you can link things so there are autocompletion and can create a web of thoughts and create connections and these are not just one-way links can also have a Graph Explorer. There is also the concept of backlinks to known what is being linked from not just what is being linked to or knowledge of which documents are linking to a given document.
There was this sociology professor called Nicolas Lumen and he managed his many documents with an index-card based management system, he would write notes on a card then if had another thought would mention to see the other card which was a paper-based linking system and would also have grouping of information, this would all contain all the thoughts he had about a various topics.
Integrated Thinking Environment
Notes are not just a passive thing but a way of storing information that need to come back to and to think about, along with being able to track things, focus and be distraction free, but it is hard to get right so do need to think about how to do this, but can then lead to being able to put thoughts into the note system and capture these, they can even be refined over time and can remove the ones that aren't interesting and keep the ones that are, it is like keeping a save point for your thoughts and can have it at the speed you can type.
Writing is Thinking
Writing, clarifying, understanding and generating. You have not battle tested an idea until you have tried to communicate it. You'll write something down and you might think you haven't understood it properly and will then add clarification which can help generate new ideas, is a process of progressive refinement.
Notes are a Container of Knowledge
Notes are atomic that are building blocks you can build on with other notes, they are evergreen and kept up to date as your understanding evolves.
Link By Conceptual Association
Notes by themselves are not useful, need to have connections in order to be put into a context and the way these can be linked is by conceptual associations.
Generative Note-Making & Linking
What resonates to me? What does this remind me of? What questions does this raise? What is this similar to? What is this different to? This doesn't need to be verbatim from a book for example, as you can always refer back to the source material it should be the thoughts you have, you could where does a concept fit in the larger topic it is about or can learn more about the specifics of a topic or look to other linked items. Take information, thinking about how it applies to you and what you are interested in to generate a web of notes that you can do something with, such as writing an article or a talk.
Organise for Actionability
Don't rush to create a deep directory hierarchy, allows structure to emerge organically - don't need to create something like the Dewey decimal system. Start bottom-up, then middle out. Not top-down. Start with a flat-file structure and see what emerges from this, may have links to other notes like a directory but may see that there are different types of notes that you want to store in a different way. Once you have your notes you can then make an informed decision about what the structure should be, you can then back up your notes in Git so if do have any changes can always go back to something if needed to refine anything.
Tools they use - Obsidian and Foam
Foam is a tool that can allow notes to be created in a linked style using Visual Studio Code, it is a bare-bones system but is quite usable. Their work notes are mostly about task management, about things they do regularly and things they do less often and might not come back to for a while. Foam is basically a set of markdown documents and use extension in Visual Studio Code such as the Markdown All in One extension which has better Markdown parsing, it has the concept of daily notes that are build from templates and integrates with Visual Studio Code snippets. You can also “transclude” notes in other notes so don't have information duplicated across notes if want to include information from other notes and can link to other notes such as practical notes on how to do something. If they have a conversation with someone will note down the gist of a conversation and can take advantage of backlinks are knowledge of which documents are linking to a given document. Foam also supports the ability to have an alias to help reference notes and expands the idea of what is used on Wikipedia for links and this is built in and can take advantage of autocompletion when typing in the details of another note. You can have templates for specific folders and what you want to have in the notes such as Discussion Points, Outcome and Actions for notes. You can also visualise notes in a graph but this can be useful to identify key person dependencies for examples, what projects are getting the most focus.
Obsidian is an electron-based app and they use it for longer term thoughts about software development, the more you learn the more you forget what you learnt so this kind of stuff can be kept track of where notes about a blog post can be written about and also try to label notes and help clarify the kind of note it is, if this is not possible it can probably be broken down into smaller individual notes. It has similar features to Foam where can see outgoing links and incoming notes, including being able to visualise but Obsidian can also show where there aren't any links that have not been made into a note so on the visualisation these appear as grey, whereas linked notes are green so can then create the notes for links.
Overview
Essentially notes are units of thoughts and then can put structure to these and then link these to other notes, can pull together notes and put them into context.