How to organize the learning process with mindmaps, spreadsheets, and .NET Core
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:
- C# in Depth (4th) — 2019 — Jon Skeet
- C# 8.0 and .NET Core 3.0 - Mark J. Price
- Programming C# 8.0 — Build Cloud, Web, and Desktop Applications — Ian Griffiths
- NET Core in Action — Dustin Metzgar
- Unit Testing Principles, Practices, and Patterns — Vladimir Khorikov
- Concurrency in C# Cookbook: Asynchronous, Parallel, and Multithreaded Programming — Stephen Cleary
- Under the Hood of .NET Memory Management — Chris Farrell
- Designing Data-Intensive Applications — Martin Kleppmann
- .NET Microservices: Architecture for Containerized .NET Applications — Cesar de la Torre
- Designing Distributed Systems — Brendan Burns
- Agile Principles, Patterns, and Practices in C# — Robert C. Martin
- 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.