How I use my Zettelkasten as a developer
As asked for by @ctietze I did a write up of my current approach of using my Zettelkasten as an aid for programming. It ended up becoming a blog post, which you can find here. I'm happy to answer any questions you may have.
Howdy, Stranger!
Comments
Thanks for this post @matti . Two sentences really stood out for me:
I wonder what specifically it is you mean with the first line.
The second sentence, however, is something I've been pondering about recently. For writing it is a really big advantage that vagueness and looseness is allowed -- a draft can be a draft build still have value because language is quite permissive.
Code is of course much, much stricter. So perhaps a system architecture or a system design is the "draft" for the code. Good to see that someone else tried the same. How has your experience been with it?
Hey @henrikenggaard, thanks for reading!
I just tried to say that if I want to know how to do a specific thing (How to create a 1-indexed array in PHP, for example) it doesn't really help to abstract away from the context too much, because I probably just want to know how I did it that other time in that moment. In other words the concrete code snippet is the valuable piece of information I try to make available, not necessarily how it can be abstracted so much that it can relate to a bunch of other things - a notion that is somewhat at odds with the principles of a Zettelkasten, maybe… On the other hand it might make sense when I'm looking for understanding of a concept (how ordered maps work in PHP), that these "snippet zettels" become examples and also then I would want them to be specific (enough).
Yeah, I would also say that systems architecture is to provide blue prints for software and a Zettelkasten can be a good place to put approaches, patterns and principles. I think though, because a Zettelkasten tends to be a material incarnation of a supertheory generator, it's important to keep in mind that a draft of a blueprint of a system is a specific "contingent" case of a software system, which is embedded in a context and constrained in some ways. A Zettelkasten tends to develop an ultimate version of how patterns/concepts/etc. fit together, therefore a Zettelkasten can be a good place to develop a second order blue print (a blue print to write other blue prints).
In practice, so far one of two things has happened: Either the architecture has been somewhat of a team effort and my notes have helped to make sense of what was dreamed up collectively in the room and in the moment, or for smaller projects of my own, my knowledge of patterns and principles and the like has helped to iterate mindfully on the project. I have not yet had the pleasure to develop a "grand design" myself or work as an architect.