Zettelkasten Forum


What don't you include in your zettelkasten?

edited November 10 in Workflows

I'm currently learning a couple of different programming languages, one is very similar to programming languages I've worked with before; and the other one has several differences. The kind of notes I'll be writing while reading books and reference manuals for these languages will be notes containing the same information in my own words. Basic knowledge about programming languages will be pretty much exactly as states in the books and manuals.

Should I skip creating these notes and instead focus on actually practice programming in these languages; or should I take the time writing these notes?

The situation is a bit different regarding the two languages I'm learning, but I think that I maybe will end with the same solution for both languages. The first programming language is simple and similar to other programming languages I've worked in before. While I still need to read manuals and books to get to learn the languages, a big part of the language (syntax) and ecosystem (libraries) is similar to other languages and ecosystems I've used before. Therefore I don't see I would gain much from restating the information I already know. Some details of the language, which is one of the reasons why the language was actually created, will probably contain new information for me so while reading those sections it would probably help me restating that information.

The second language is quite different from the other languages that I've worked with before, and here it helps me to restate basic information to retain it.
For example, the language has quite different syntax for declaring variables to what I'm used to in other languages. This languages also have some specific parts that I'll need to spend more time on to understand.

While in some cases it helps me to restate the information I'm reading in my own words, I also see small programs using these languages and ecosystems as notes (but written in a formal language instead of a natural one). And I don't see much to gain to write notes in a natural language instead of formal ones. In my experience it takes me longer to describe a program behavior with a natural language than demonstrating the behavior with code examples.

I also see small opportunities to actually use these kind of notes for generating new knowledge inside my zettelkasten. For example, when I'm going to link to a note describing how to bind a variable to a value? If I do that my notes will mostly consist of links to trivial facts, without much new knowledge.

My solution to this problem is that I don't include these kind of notes in my zettelkasten, which in my interpretation of the Three Layers of Evidence is on the phenomenological layer. The notes that I will include in my zettelkasten are the notes on the interpretation and synthesis layers; and when needing to refer to language details I'll use references to the reference manuals or papers describing the language, instead of linking to my potential notes on the phenomenological layer.

What do you think of my idea?

Post edited by inquisitiv3 on

Comments

  • Hard to give general advice what one should be doing, as much boils down to practice. Three examples from my programming notes:

    I do have notes that explains weird (to me) syntax, e.g. Python's list comprehension. I don't use it enough to remember. Most basic syntax, in my experience, becomes muscle memory really quick, so I don't take note of a language's keywords for, say, while loops or function declarations. I'm turn whether I would use a note that explains pattern matching in when-case statements in Kotlin. It's a bit weird on first look, but likely becomes second nature within the use of a project.

    I might need a note to explain to myself (and to remind me) Haskell's function declarations, though, because it's so foreign.

    In my daily driver language (Swift), I create notes for complex interplay of the languages basics. Like using generics to accomplish particular tasks with complex type hierarchies, or pitfalls of the new concurrency primitives. I used to explain to myself how optional unwrapping works, but never looked at the notes ever again because it turned out (see above) that this became second nature in no time at all.

    Author at Zettelkasten.de • https://christiantietze.de/

  • I, for example, have not note that states what glucose is. It basic vocabulary. If you imagine your future self, what would he benefit from?

    When I learn something like that (I don't learn languages (yet)), perhaps a piece of software, I write a user specific (I am the user) manual. Often, I don't need it after I have written it. However, I don't need it because I have written it.

    So, if you write a manual that is tailored to your specific needs you are getting what you need from the Zettelkasten Method.

    I am a Zettler

  • @Sascha I split the difference slightly. I made the mistake of including "Definition notes", which bloated my ZK unfortunately. On my second zettelkasten, I just created a ZK Glossary and will copy/paste vocabulary definitions into it. I find that it also serves as a good practice to paste the definition and then write above it an alternative in my own words.

  • @ctietze said:
    Hard to give general advice what one should be doing, as much boils down to practice. Three examples from my programming notes:

    I do have notes that explains weird (to me) syntax, e.g. Python's list comprehension. I don't use it enough to remember. Most basic syntax, in my experience, becomes muscle memory really quick, so I don't take note of a language's keywords for, say, while loops or function declarations. I'm turn whether I would use a note that explains pattern matching in when-case statements in Kotlin. It's a bit weird on first look, but likely becomes second nature within the use of a project.

    I might need a note to explain to myself (and to remind me) Haskell's function declarations, though, because it's so foreign.

    In my daily driver language (Swift), I create notes for complex interplay of the languages basics. Like using generics to accomplish particular tasks with complex type hierarchies, or pitfalls of the new concurrency primitives. I used to explain to myself how optional unwrapping works, but never looked at the notes ever again because it turned out (see above) that this became second nature in no time at all.

    Thanks! Maybe if I notice myself looking up the same things multiple times in the reference material that's a indicator that I should write a note about it?

    @Sascha said:
    When I learn something like that (I don't learn languages (yet)), perhaps a piece of software, I write a user specific (I am the user) manual. Often, I don't need it after I have written it. However, I don't need it because I have written it.

    So, if you write a manual that is tailored to your specific needs you are getting what you need from the Zettelkasten Method.

    Thanks for the tips! If I write a manual for myself, should that be part of my zettelkasten, or should it be outside of it? I don't understand how I would fit such a document inside my zettelkasten, but you write that the manual with the Zettelkasten Method?

    @Nick said:
    On my second zettelkasten, I just created a ZK Glossary and will copy/paste vocabulary definitions into it. I find that it also serves as a good practice to paste the definition and then write above it an alternative in my own words.

    Is that "ZK Glossary" note inside the Zettelkasten titled Glossary or something similar, or a note per definition? Is the copy-pasting a compromise between having access to the definition, but not spending the time on rewriting it in your own words?

  • Here is what I do integrating knowledge about multiple coding languages into my ZK.

    In the a note pictured below which I refer to a lot is an example of using the ZK principles applied to coding. Knowledge from multiple sources are connected in useful ways.

    I'm converting dates and doing date calculations in about every program. This note started as a simple code snippet and has evolved with reference to the most helpful online documentation and then it further evolved to include a link to Keyboard Maestro's date formatting. Keyboard Maestro date formatting is similar to pythons and the similarities and differences are subtle.

    Will Simpson
    “Read Poetry, Listen to Good Music, and Get Exercise”
    kestrelcreek.com

  • Thanks for the tips! If I write a manual for myself, should that be part of my zettelkasten, or should it be outside of it? I don't understand how I would fit such a document inside my zettelkasten, but you write that the manual with the Zettelkasten Method?

    I'd do it within the Zettelkasten using the Zettelkasten itself. If the manual is valuable to yourself you will derive value from being able to look it up quickly. I personally like to have everything in one environment which is The Archive for me.

    I am a Zettler

  • @inquisitiv3 sorry my comment was poorly written/worded. In my mind I am splitting the difference between every definition getting its own note and not having any definitions at all. So I have a single filed called glossary that I will paste a definition into as an excerpt then write my own version definition above the excerpt.

  • Hi, I just created a account after look your post.

    I'm programmer too. And besides my zettelkasten I have a second folder in where I use this 1 method for take notes in programming.

    In this folder, each new method or command that I learn, I store it and examples on how to use use it, with the source of the information. My main goal is that if spent 5 minutes searching for a line of code, I have never that spent those 5 minites again.

    I just want to be an average huaso.

  • @Nick said:
    @inquisitiv3 sorry my comment was poorly written/worded. In my mind I am splitting the difference between every definition getting its own note and not having any definitions at all. So I have a single filed called glossary that I will paste a definition into as an excerpt then write my own version definition above the excerpt.

    Thanks for the clarification!

    • Are you just writing short definitions? That you keep your definitions in one big glossary doesn't necessary mean that what you write is any different than if you'd written the definitions in their own files.
    • Do you save the copy-pasted definition after you've written your own?

    @Sascha said:

    Thanks for the tips! If I write a manual for myself, should that be part of my zettelkasten, or should it be outside of it? I don't understand how I would fit such a document inside my zettelkasten, but you write that the manual with the Zettelkasten Method?

    I'd do it within the Zettelkasten using the Zettelkasten itself. If the manual is valuable to yourself you will derive value from being able to look it up quickly. I personally like to have everything in one environment which is The Archive for me.

    Doesn't those manuals become quite dead?

    @CuyiProductivo said:
    Hi, I just created a account after look your post.

    I'm programmer too. And besides my zettelkasten I have a second folder in where I use this [1] method for take notes in programming.

    In this folder, each new method or command that I learn, I store it and examples on how to use use it, with the source of the information. My main goal is that if spent 5 minutes searching for a line of code, I have never that spent those 5 minites again.

    [1]: https://www.kevinslin.com/notes/3dd58f62-fee5-4f93-b9f1-b0f0f59a9b64/

    This is similar to what I did, but what I did took too much time. With so many notes he probably have found a nice ratio between writing notes and the utility they provide, I'll have to ask him.

    The question I'm asking myself if whether such system would be become obsolete if you'd an easy way to make detailed references to reference manual. E.g., he mention what he have a note on what gets evaluated to truthiness in Python; but if you could just reference the sentences in the reference manual that specify that, and maybe even transclude the content into the note system?

  • @inquisitiv3 said:

    @Nick said:
    @inquisitiv3 sorry my comment was poorly written/worded. In my mind I am splitting the difference between every definition getting its own note and not having any definitions at all. So I have a single filed called glossary that I will paste a definition into as an excerpt then write my own version definition above the excerpt.

    Thanks for the clarification!

    • Are you just writing short definitions? That you keep your definitions in one big glossary doesn't necessary mean that what you write is any different than if you'd written the definitions in their own files.
    • Do you save the copy-pasted definition after you've written your own?

    @Sascha said:

    Thanks for the tips! If I write a manual for myself, should that be part of my zettelkasten, or should it be outside of it? I don't understand how I would fit such a document inside my zettelkasten, but you write that the manual with the Zettelkasten Method?

    I'd do it within the Zettelkasten using the Zettelkasten itself. If the manual is valuable to yourself you will derive value from being able to look it up quickly. I personally like to have everything in one environment which is The Archive for me.

    Doesn't those manuals become quite dead?

    It depends. The manuals for tasks I don't perform frequently are surprisingly valuable. Even small things like some shortcuts for video editing become useful. At least, I catch myself retrieving them as often as I use certain apps.

    But even dead manuals are not a problem because with proper setup the Zettelkasten is good at filtering out irrelevant information. So, I developed that habit of just starting a manual when I learn something (a very unreliable habit unfortunaly).

    Depending on the material, you never now if or when something becomes valuable again. One use case for me is that I have material that I can share quickly. So, even if I don't do little research on a LowCarb Diet and have a pretty solid understanding of it I can send notes to beginners who ask questions. Or, albeit rarely, I can send a quick tip if one of my peers has difficulty learning the task I already learned.

    Summary: At least, it doesn't hurt the Zettelkasten. And surprisingly often there are opportunities to re-animate what was thought to be dead.

    I am a Zettler

Sign In or Register to comment.