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 internal link in Evernote and access it from 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 the list of really good books to consider:
| Book | Author | |
|---|---|---|
| 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 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 lightweight approach to organize your learning process. Personally, I find it useful because learning is 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
Reference
https://www.theurlist.com/edu-scope-to-mindmap- Topics:
- productivity (11) ·
- dotnet (63) ·
- productivity (9)