Do you use mind maps in your coding practice?
Posted by kentich@reddit | ExperiencedDevs | View on Reddit | 29 comments
In my 15+ year programming career I always used mind maps in my coding practice. When I dive into a new project with an unfamiliar codebase, I analyze it by putting pieces of code directly into a mind map as nodes. Is anyone else here doing the same?
I copied and pasted code into a separate mind-mapping app (FreeMind). I found that to be exteremely useful and productive. Seeing different pieces of code in different nodes of the mind map makes you hold those pieces in your mind simultaneously.
I've built a Visual Studio / VS Code extension to illustrate this approach to coding. It lets you jump to the linked code with a click on the node. For reference, the extension is open source and called Code Mind Map (https://github.com/OlegIGalkin/Code-Mind-Map).
What do think about this approach of coding using mind maps? Have you ever tried that?
valbaca@reddit
I remember mind maps being super hyped in the 2005-2010 kind of Lifehacker/productivity porn era but never saw the benefit of the juice for the squeeze.
I suppose nowadays you could easily create a graph from notes through Obsidian
kentich@reddit (OP)
Yes, there are plenty of different mind-mapping products out there. The trick with this extension is that nodes are linked to the code so that you can navigate to the code from the nodes. The mind map becomes actionable - not just a piece of documentation.
smarkman19@reddit
Mind maps can work for unfamiliar codebases, but they need to be lightweight and mostly auto-generated or they’ll rot.
What’s worked for me is a hybrid: seed a small map from entry points (startup, routers/handlers, main jobs), then auto-expand one hop using LSP/ctags to pull direct callers/callees. Keep each map under about 150 nodes, color by domain/owner, and attach links to tests and run scripts so every node is executable. I also overlay git churn/coverage (hotspots first) and archive maps per feature branch so they reflect the code I’m touching now.
For big services, generate dependency graphs from build tools (tsserver/pyright/jdeps/go list) and hang a human-readable map on top. OP's extension would be more useful if it could expand a node's neighborhood from the call graph, overlay coverage/churn, and cap node counts to prevent sprawl.
With Sourcegraph for cross-repo jumps and CodeSee for quick topology, I’ve used DreamFactory to expose databases as REST so mapping UI -> API -> tables during onboarding is dead simple.
kentich@reddit (OP)
Thanks for your reply! I think Visual Studio Professional Edition has auto generated mind maps from the code. I never felt comfortable with mind maps generated from the code. I always found them to be too cluttered to be useful. For me, it is more comfortable to start from the clean slate and map code manually by myself. This way, I remember things, and I create my own associations with code rather than relying on someone else's auto-generated mind map.
ExperiencedDevs-ModTeam@reddit
Rule 8: No Surveys/Advertisements
If you think this shouldn't apply to you, get approval from moderators first.
aqjo@reddit
When I used a Mac, I used Curio to do mind/workflow maps with links to source files in the various blocks. It really helped me keep up with things.
Now that I’m on Linux, nothing really compares. I’m trying canvasses in Obsidian, but it’s not the same.
Strict_Research3518@reddit
Never even heard of a mind map in 30 years of coding. Guess not everyone goes down the same path.
kentich@reddit (OP)
Wow! Using mind maps for coding is unconventional practice, but mind maps themselves are known for decades.
ryhaltswhiskey@reddit
Many people don't know the things that you do. And vice versa.
taznado@reddit
I visualize and store them in my mind.
geeeffwhy@reddit
no, i hate them.
i like all kinds of other drawing strategies, lists, ragged trees, projections, flowcharts, etc. but mind maps feel like a formless pretense that dissolves into meaningless doodling immediately.
but thats just me. if it works for you, so much the better.
forgottenHedgehog@reddit
No, I have tried them but they didn't seem to be very helpful.
Tired__Dev@reddit
I’ve never seen that. What I typically have always done is created a .md for context switching notes that helped me survive as a fullstack.
Omenaa@reddit
Absolutely. It helps a lot to organise and put thoughts down so that I don't get too overwhelmed. I like to use mermaid because it's convenient to write it in the markdown readme file and it's quick to make edits as it's text based.
kentich@reddit (OP)
Thanks! I'll check out mermaid.
eled_@reddit
One of the main selling points of mermaid is its integration with existing tools and Git repositories (github.com and gitlab.com render it natively, GitLab can plug a rendering server like kroki.io)
ched_21h@reddit
I constantly use mind maps when learning a new subject. But I have never thought of applying it to learning a new codebase. Thanks for the idea!
Big_Function_N1@reddit
hey! I am pretty much the opposite. I use it for new codebase or when doing some light planning, but never for learning a new subject! but I'll give it a try
rahul91105@reddit
Isn’t this similar to a UML diagram or am I missing something?
kentich@reddit (OP)
The cool thing about mind maps is that you can use them creatively. You can connect absolutely different things in your mind map, like pieces of code from absolutely different parts of the system, to build an association between them in your brain.
Potato-Engineer@reddit
Much less formal, so I'd never expect any two mind maps to be identical. Different people will have different styles and different levels of detail.
nitzky0143@reddit
UML is too broad - use case diagram, sequence diagram, class diagrams, etc. Mind Map is just a tree basically where you can connect related nodes. I think this can also be done in UML.
dacydergoth@reddit
Mind maps are Iike a super power
kentich@reddit (OP)
Totally agree!
foldedlikeaasiansir@reddit
I use it to map our lib/dir for enterprise applications to help organize or plan out requirements but I’ll have to check out your application for it
KitchenDir3ctor@reddit
Xmind is also great.
Professional testers also use mind maps a lot.
For example when making a product coverage outline: https://www.developsense.com/resource/pcos.pdf
Grounds4TheSubstain@reddit
I do the same when reading new code. Will check out your extension!
ankurcha@reddit
Yup. Almost every time I need to integrate with a new system. I primarily use notebooklm to dump all design docs, requirements and user guides - anything basically.
Then ask it for mindmap.
AshamedDuck4329@reddit
never tried mind maps in coding, but sounds interesting. visualizing code might help with complex projects, especially when diving into new codebases. might give it a shot, thanks for sharing the extension, could be useful for others too.