Superlearning for programmers and engineers: architecture

The top programming skill is software architecture. For software architecture we often use UML and flowcharts. These visualization are great for visual markers and often do not even need further adaptations.

It is no secret that most software is built as hierarchies. Model-view-controller is probably   the most common architecture paradigm. Classes pass the data to each other, introducing small modifications each. Each group of classes has its own role, which makes it extremely easy to build additional classes of each sort. The common effect of all these modification is complex and working program, where the hard part is not so much processing within each class, but communication between classes.

A very similar issue is faced by chip designer, where the floorplan and processing/memory blocks need to be sufficiently large for layout optimization and sufficiently small for the model to converge within reasonable time. The communication between the blocks, multiplexers and clock trees, are almost as important as the structure of each block.

How does superlearning paradigm help us with the architecture?

  1. Database/UML hierarchies/communication buses.  The  most natural tool for many structures is mindmapping. In mindmaps we remember the nodes and we remember the position (like clock’s hour) of links to other nodes.  For each link between nodes we need to remember additional information (index direction, bus width etc), so this is a bit different from more classical mindmaps. See this presentation for more details.
  2. Use cases. Most use cases are sort of stories, and it is easy to plan them using high level visualization. High level visualization is a combination of the loci model and person-action-object (PAO) model, both of which are used by memory champions, since they enable handling of enormous amounts of data.
  3. Interfaces and pins. To remember interfaces and pins it is best to use pegs/Major System/Dominic system . Since each pin/interface has a name, its name may be encoded as an object or as some person initials, or other information for which marker can be easily generated.
  4. Floor plans/board design.  It is quite easy to imagine shapes that look like the board design, in a way we try to imagine what a cloud looks like. I have heard comparison with space ships, computer game castles, capitals of major cities etc. Everything is good, as long as it has meaning for you.
  5. Design paradigms. I do not recommend to use mnemonics for design paradigms. People who create and use design paradigms, are typically very creative and very graphical. If you dig dipper into the design itself, you will eventually connect with the markers and associations that guided the original design. Use the original associations and markers, do not try to overrun them.

You will need not only visualize and memorize, but also manipulate whatever architecture you choose. This requires a high level of mental dexterity. If you noticed, I put many different complex visualization/memory methods on the same page. Not even memory champions can handle all of these methods with equal dexterity. Fortunately there is some duality between methods, and you can adapt your own version of PAO or loci or major system for all the use cases. Please ask specific questions in the comments if you have trouble with paradigms.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.