4 min readMar 17, 2024
–
Do you know about Obsidian.md ?
it’s a note taking app, using Markdown format, that has the advantage of connecting 1 idea or note to another.
I tried to use Obsidian, to keep track while I’m learning more about DSA (Data structure and Algorithm). There’s some main topics in DSA, from the data type itself (Hash, Array, Struct), to the algorithm (BFS, DFS, Dynamic programming, Sorting, Greedy algorithm), and like mathematical questions, there are many ways to solve one problem.
There are some features in obsidian. Here are some:
Tags
it’s just a usual tag, like in any other platforms, I usually use this just to mark something, e.g. To-Do items, need to retry, etc.
Links
Unlike tags, Link can connect notes together, so you can jump to di…
4 min readMar 17, 2024
–
Do you know about Obsidian.md ?
it’s a note taking app, using Markdown format, that has the advantage of connecting 1 idea or note to another.
I tried to use Obsidian, to keep track while I’m learning more about DSA (Data structure and Algorithm). There’s some main topics in DSA, from the data type itself (Hash, Array, Struct), to the algorithm (BFS, DFS, Dynamic programming, Sorting, Greedy algorithm), and like mathematical questions, there are many ways to solve one problem.
There are some features in obsidian. Here are some:
Tags
it’s just a usual tag, like in any other platforms, I usually use this just to mark something, e.g. To-Do items, need to retry, etc.
Links
Unlike tags, Link can connect notes together, so you can jump to different notes. Because
The keys to solving DSA problems are to familiarize with similar problems and understand the fundamentals first. Many of the questions are based on similar topics, so I can connect similar questions and topics in my notes.
example: in the pictures below, I connect Combinations problem with the Permutations problem.
Press enter or click to view image in full size
Template
I need to have templates, to make sure I don’t miss to write necessary things. I usually need to know, the following
- description of the problem
- how many times I retry this question (including date & notes)
- related question or topic
- explanations to solve this, it could be more than one explanation, with Time & space complexity.
in obsidian, you can set the template for this. and if you are interested you can copy my template.
Canvas
There’s a new feature on obsidian, called Canvas, that can be used to visualize relations between ideas (more like mind mapping), but I haven’t explored this yet. you can read more detail in here https://obsidian.md/canvas
How I take notes using those features..
This is example of my notes:
Press enter or click to view image in full size
Press enter or click to view image in full size
In the My Approach section, I write what intuition, that came from myself, and how I think, including the code.
The connection between that note and tag looks like this:
Press enter or click to view image in full size
Problem number 23 is related to problem number 21, so I connect that notes. For solving problem number 23, I can use Priority Queue / Heap, so I mark that using tag #PQ-heap
By connecting each problem with a possible solution / algorithm, I can see the relationship between each problem, so, if I want to focus on enhancing 1 topic, I could try each related question.
Another example: when I try Dynamic Programming daily challenge, there are some problems that could be solved using similar solutions.
I feel 518. Coin change problems have similarity with 377. Combination Sum IV , and the solution could be using DP Combination, Knapsack unbound or DP Table.
Press enter or click to view image in full size
I also mark problems that need to be redo by using redo tag, and also, if I still need something that I need to do, I use todo tag.
Press enter or click to view image in full size
You can also see linked notes inside a note, for example like this:
Press enter or click to view image in full size
You can also add tips & tricks that you found during your learning.
Press enter or click to view image in full size
Press enter or click to view image in full size
Lastly, don’t forget to documenting your progress, for your self motivation XD.