Saturday, October 30, 2010

The Pyramid of Knowledge

Knowledge can be thought of as a Pyramid of Information, like the predator-prey biological pyramid or energy distribution in an ecosystem.

Building the Knowledge Pyramid is like a "Fox and Hounds Paper Chase" so that the Walk-The-Long-Road on the Information Trail/Path becomes much easier.

First need to categorize learning resources into 3 levels:
1) Top-Down: Solution Space - What problems does this technology address and solve?
2) Middle-Up/Down: Module level concepts like Manager code e.g. Virtual Filesystem Cache Manager, Storage Manager
3) Bottom-Up:

Search for Short-Intros materials like ppts, podcasts, pdfs, research papers, articles, blogs, videos, mindmaps, TOC
Find the Gurus in the trade and their JourneyMan followers
Subscribe to RSS Feeds to blogs by them
1) JourneyMen in the domain like Yeshawant Kanetkar who explain things well to Apprentices (WalkInThePark Pattern)
2) MasterCraftsMen in the domain like Stroustrup, Richter, Butenhof (WalkInTheForest Pattern)

0) Blogs, articles or PPTs doing a system walk-through relating how various things and flows through the system
     like "Gusatvo Duartes blogs on Operating Systems"
1) General books to get a feel for the domain and common constraints, solutions, patterns and principles
    like "Operating System Principles", "Distributed Systems: Principles and Paradigms"
2) Applied Books using APIs, Frameworks
    like"Linux System Programming", "Windows Application Programming by Richter"
3) System/Sub-System Level books describing internals of APIs, Frameworks
     like "Understanding the Linux Kernel", "MFC Internals"

Categorizing Method Applied to Information Trail:
    Follow most referred book/white-paper trail in collections like Bibliographies, Appendices, References etc.
    This method works on any of the above 3 levels,
    Example:
   Get generic Distributed domain book from amazon and follow Up/Down to higher/lower levels of Pyramid.  
    "Distributed Systems: Principles and Paradigms" -> "C++ Network Programming" ->
     a) POSA2 (Basic Distributed Patterns)-> POSA3 (Resource Mgmt Patterns) - (Design Level Classics)
     b) Operating System -> "Operating System Principles" by Galvin -> "Understanding theLinux Kernel" by Bovet and Cesati
     c) Module Level Concepts -> Caching Virtual FileSystems, Remoting Patterns -> Research Papers -> Classic Books referring to the Research Papers
     d) Networking -> "Programming the Sockets API" by Stevens -> ... -> "Linux Network Internals" (Implementation Level Classics)

On a Related Note:
A Concept Map can very nicely simulate such a Tree of knowledge.
Hmmm.... kind of like the way WikiMindMap hierarchically orgranises a Wikipedia article into a tree structure. So we can do the following to convert a wiki/webpage into a concept map:
1) Use WikiMindMap to convert wikipedia article into a Freemind MindMap and export it as a .mm file
2) Use XMind to convert the .mm file into an XMind Concept Map which is shareable and editable with friends.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.