What is the best approach to structure technical notes for programming? These subjects have a clear structure. So it’s easy to create a hierarchy and figure out where everything goes.
There was a graph shared by Ramses Oudt in one of the query challenges where he uses namespaces to structure CSS notes. I have attached a screenshot bellow. Is this the recommended way?
- Namespaces
- are not meant for hierarchies
- When used this way, they cause more pain than benefit.
- Therefore, I don’t recommend this way.
- When used this way, they cause more pain than benefit.
- are useful for disambiguation
- i.e. if two concepts in the same graph happen to have identical names
- Otherwise, each concept has a name and it should become a page of that name.
- No special parent is needed.
- They already have the graph as their parent.
- No special parent is needed.
- Otherwise, each concept has a name and it should become a page of that name.
- i.e. if two concepts in the same graph happen to have identical names
- are not meant for hierarchies
- Let’s take the last line of your screenshot.
CSS
should probably be the name of the graph- If that’s not the case, please get more specific on what you want to put in your graph.
position
should be the name of a page- This is a first-level concept that deserves its own page.
property
should be the value of page-propertytype::
of pageposition
- This is a higher-level concept, used in the meta-data of first-level concepts.
sticky
should be an individual note-block within pageposition
- This is not a concept, therefore not deserving a page.
- Generally indicated by not being a noun.
- This is not a concept, therefore not deserving a page.
1 Like
I want to put all web development and some CS notes in a single graph.
If CSS is not the name of the graph, but is one of the main topics, how would you change this structure?
- Sounds like your graph should be named
web development
- In the earlier example:
- the page
position
should become either:CSS/position
- simply
css position
- the value of the property
type::
should become either:CSS/property
- simply
css property
- the rest remain the same
- the page
Why use type
instead of tags
?
My current approach is to only use tags. That way if I open a page, let’s say a called Cascade, I get the pages tagged with section. If I use other properties that information is not available.
- More specific properties (here
type
) enable more specific filtering.- The bigger a graph gets, the bigger the need for specific filtering.
tags
is a built-in property that comes with predefined behavior.- There are ways to make any property behave (almost) like
tags
.
- There are ways to make any property behave (almost) like
Ok, thank you very much.