How to organize the learning process with mindmaps, spreadsheets, and .NET Core

Oleksii Nikiforov
3 min readMay 3, 2020

I prefer reading books from cover to cover and taking notes quite frequently. At the same, I tend to have multiple items on my reading list. It feels frustrating to get back to an awesome book and realize I need to revision it all over again. So I decided to organize it a little bit. I think the best way to organize the learning process is to envision the end goal and have sensible timelines.

For the sake of simplicity, I use google spreadsheets as storage and XMind as a visualization tool. XMind is a great tool to visualize and brainstorm some ideas.

💡 My take on it

  • Determine the list of books and materials to learn for the next sprint (e.g. quarter, half of a year)
  • Set priority and categorize
  • Add corresponding notes to Evernote for each book, course, etc. It is quite easy to generate an internal link in Evernote and access it from the spreadsheet directly.
  • Generate mindmap and play with it so it is possible to estimate and create a plan to take further actions.
  • Manage progress and perform retrospective when you feel you need it. 🔁

Books for .NET Developer

Here is the list of really good books to consider:

  1. C# in Depth (4th) — 2019 — Jon Skeet
  2. C# 8.0 and .NET Core 3.0 - Mark J. Price
  3. Programming C# 8.0 — Build Cloud, Web, and Desktop Applications — Ian Griffiths
  4. NET Core in Action — Dustin Metzgar
  5. Unit Testing Principles, Practices, and Patterns — Vladimir Khorikov
  6. Concurrency in C# Cookbook: Asynchronous, Parallel, and Multithreaded Programming — Stephen Cleary
  7. Under the Hood of .NET Memory Management — Chris Farrell
  8. Designing Data-Intensive Applications — Martin Kleppmann
  9. .NET Microservices: Architecture for Containerized .NET Applications — Cesar de la Torre
  10. Designing Distributed Systems — Brendan Burns
  11. Agile Principles, Patterns, and Practices in C# — Robert C. Martin
  12. The Pragmatic Programmer, From Journeyman To Master — Andrew Hunt

Build mindmaps programmatically

I’ve created library XMindCSharp for .NET to build mindmaps that you can open with (XMind). You can work with it like this:

var book = new XMindConfiguration()    .WithFileWriter("./output", zip: true)    .CreateWorkBook(workbookName: "test.xmind");var rootTopic = book.GetPrimarySheet()    .GetRootTopic();rootTopic.SetTitle("Scope");rootTopic.Add(epicTopic);//...

Also, I’ve developed simple CLI application edu-scope-to-mindmap to create mindmaps from excel spreadsheet I’ve mentioned above.

To use it, run next command from the project directory:

$ dotnet run --path ./ouput --name test.xmind --source-path input/input.xlsx

Sometimes it is hard to pick a bite that I can chew on 😆.

Summary

I’ve introduced a lightweight approach to organize your learning process. Personally, I find it useful because learning is an essential part of my craft and you better do it well 😉.

If you want to organize your learning process the way I do, please feel free to use: template.xlsx + edu-scope-to-mindmap

Originally published at https://nikiforovall.github.io.

--

--