There is a lot of great content available on the internet that you can use to learn new things. This content is usually organized in a list format such as a table of contents. When you look at a list you usually get the impression that you have to progress linearly from the start. How often is this true? It would be nice to know exactly which subjects are prerequisites for getting to what you want to learn.
This diagram shows prerequisites as connections going from left to right. For example: Subject 4 requires knowledge of 2 and 3, and both of these require knowledge of 1.
It's nice to able to see the big picture when looking at contents of a textbook, videos on Khan Academy, articles on Wikipedia, or PowerPoint lectures from a college course. It's helpful to be able to visualize what you know and what you need to learn in order to reach your target.
A diagram like this allows you to keep track of your progression towards a goal. It also helps to create a clear path to reduce time spent backtracking or wandering. It should also improve your understanding of how the different subjects fit together.
We should try to make learning be as easy as possible. To achieve this we need high-quality content to be easily accessible and organized. I made this visualization tool to help make organization of content better. I hope that using these Subject Flow Diagrams will help make learning a better experience.
The diagram below is interactive.
1)Hover over Subject 1 in the diagram to see a short description of that subject.
2)Click on the white circle to expand the subject node (clicking on the circle again retracts it). Now expand out all of the nodes.
3)Click on any subject node and then click View Content to follow the link in a new tab.
4)Select Subject 6 and click Turn Target Off. Then select Subject 4 and click Set As Target.
5)Click and drag Subject 3 and move it down below Subject 2.
You can also still view it in more of a traditional list-style layout. As you change the flow diagram up above the content will change here as well.
I used "Information Theory, Inference, and Learning Algorithms" by David J.C. MacKay (Amazon / Author's website) to create a more detailed example. Fortunately David MacKay included a dependency tree within his table of contents, so it was easy for me to rebuild this tree.
This example has a lot of nodes, so when it gets cluttered you can use the Search bar...
you can use the Focus button...
or you can set a Target and tell it to only Show Known -> Target
So although this project still needs a lot of work, you can try it out here:
Right now you can register as a new user and start making your own Flow Diagrams. However, there are still a lot of features I need to add and the user interface still needs a lot of work. The site uses Firebase for database and user management, but Firebase is still in beta and I don't believe they've finished making it easy to reset forgotten user passwords through email.
I'm looking forward to releasing a more user-friendly version with more features. I want to try integrating this tool with some type of Learning Management or Course Management System. The ultimate goal of course is to try to organize and map out as much of human knowledge as possible.