wiki:BigIdeas/WriteItDown

Writing everything down

Nothing clarifies the mind better than writing.

Write it down to see if it worth it. If it is correct, clear, brief and consistent, if it proof-checks.

The subtle elegance of a math proof and of a fine verse shall be our ideal. Like a snow mountain on the horizon.

Writing is a tool for thinking

Communicate ideas and concepts to others

Writing is the only reasonable way to communicate concepts.

Merely verbal talking will be forgotten in the next 5 minutes by both parties. Some writings last forever.

Write the informal general description

Before you begin any project you have to write down in a reasonable details what is it all about, what is the goal, and why it should be achieved.

Write down a general plan

Aside from that, it is important to write down some crude plan - list all the steps which has to be done, or seems so.

Plans are useless, planing is everything.

Define a Domain Specific Language

To communicate your ideas to yourself and to other people you have to establish the language of the problem domain, or just a context.

Each part of terminology must be informally defined - the unambigous meaning of each word has to be defined.

Words indeed must have a well-defined, immutable meaning.

Divide into orthogonal sub-problems

Divide et impera is a millennia-old maxim. Dividing into proper sub-problems (or sub-systems) is the most important aspect, since each sub-problem could be attached independently, even in parallel (via delegation).

Only sub-problems which does not overlap (have nothing in common) could be solved in parallel.

The definition of parallel lines (or surfaces) is not having a single point in common.

The appropriate level of details

The most important step is to clearly partition your model into separate modules, preferably orthogonal and isolated.

The boundary between modules are immutable interfaces and standardized protocols.

Last modified 11 months ago Last modified on Jan 11, 2020, 12:05:12 PM
Note: See TracWiki for help on using the wiki.