Monday, July 04, 2011

Motivation, Ambition, Concentration for Technical Mastery

Motivation, Ambition, Concentration

******
MOTIVATION: ENFP Champion appeal
Q) Why should "I" learn this? In what way will it help me or others?
Ans)
A) Real life example which will HELP an actual person(Myself/Others) by
a) Making me stronger.
b) Making it more understandable.
c) Removing/Reducing work.
d) Making it faster.
e) Making it do more in less.
f) Making it easier.
g) Making it better.
h) Making it more adaptable.

ex: Re-scheduling work items in a cafeteria will help both the cook and the customer give and get better service.
Both of them will bless you for your help.

B) The reason for learning DS or Algos is:
1) It mimcs the way the mind works (as in AI)
2) Smarter programs which organise better and make better informed choices.
3) Faster, cheaper, better.

Q) What is the Relevance of what I'm learning to what I want to achieve?
I need to search through billions of search items within seconds.
What you need is a HashTable. Size doesn't matter with HashTables.
A Hash Table can chomp through millions or billions of search items within milli-seconds.

Information Ingestion: INTP/Visual Intuitive appeal
Absorbing information parallely:
Find the right source of info - Find a book which you would write for yourself.
**Analogy - Train as a linked list. Room Keys mapped to Room No is a map.
Clock uses modulo to fit 2*12*60*60 seconds in just 60 positions.
Completely explains concept with just an example.

Diagrams - showing systems and subsystems with relations to one another, the flow of information from one to another,
Timelines - to show time related order of processes,
Graphs - intuitively sense the general trend that is followed. Stay on track during text explanation by orienting self through the source, destination and approximate path.
Example: Case-study exhibiting how and why the paths are taken through the system.

Experimentation: Get the info by experimenting on a simulation or code.
Coding - Code in highest level possible. Use lower levels for optimization (done last).

Glossary of Terms - explanation for commonly used terms.
Tutorials - Read up tutorials and annotate them for future reference.

Prototyping:
Mapping to Known systems - mapping to same things in other places.
Check the input/output/error interfaces of your model ie whether it snaps into place instead of the real thing.
Test the model using normal input first and then wrong input and perverse input.
Check the implementation ie the subsystems Do a walkthrough of the UseCase Scenarios to check that all subsystems are also modelled accurately.

********
[STARTING TROUBLE. Getting your feet wet with exploring/understanding a system]
Associating with the thing. Getting a feel for this thing by walking all round it.
Trying to see it from slightly different angles.
Feeling in some way in sync with it. Trying to get under its skin.
Knowing the flow of control in the system - "First it goes here, checks for this, then in case 1 does this else does that..."
Avoiding making eye contact with the system, hoping that if you don't do that you won't have to really take the trouble of making friends with it. Effort to get past the unknowns and strange things it may offer.
Black-box view works so why tamper with it to open a Pandora's box i.e. why multiply unknowns.
Why go from "I don't know how the whole thing works, to, I don't know how these subsystems work" which is exactly the mark of an expert in the making.
"I don't know mathematics at all!!" is more solidly formidable than
"I don't understand matrix multiplication".
It's always easier to reject the whole thing than its part.
I can hope to learn matrix multiplication within days/months but learning "Mathematics" is another ball game. Similary learning Matrices is tougher than just the multiplicaton.

"The negative of the system as a whole is more than the sum of the negatives of its parts."

Solution:
+ List the unknowns as explicitly as possible on paper.
+ List the known as much as possible.
+ To even be able to list the unknowns requires reflection and research. Just enumerating and classifying unknowns increases both knowledge and familiarity with the system.
+ Fleshing out the bones in an iterative manner.

A feeling of being overwhelmed by
1) The branchiness of the system 2) The depth and width of the branches.
Generally prefer balanced/symmetrical binary trees?? i.e. compactness.

Not all branches may be as deep (actually may be scanty).
Jumping to conclusion that if one particular branch is dense depth/width wise same will be the case for the rest of the branches.
Solution:
1) Determine the distribution of density/complexity across the problem.
2) Determine the relevance of knowing a particular branch currently.
3) Choose which compartment of the cupboard you're going to start with. Choosing a small symmetrical compartment with good logical structure is best as it sets the mood for the rest of the clean-up.
3) Use paper/pen to work out a particular branch. Draw diagrams to illustrate the flow.

Chunking the info to keep the details organised.
Tidy up the mental closet by concentrating on understanding/tidying only a part of it.
(Not wanting to associate with it.
Trying to keep a single view of it.
Not bothering with getting different views of it.
Not wanting to "invest" time and effort in getting to know it.
I'm not really going to be doing this anyway etc.)


Draft material for a blog on Motivation, Ambition, Concentration
>>>>>>>

Instances which overcame resistance to learning something :

Positives :
----------------

"This is easy pickings"

"I only need to repeat this formula so many times and I'll get the prize. If that's what it takes so be it..."

"I only need to learn these basic steps to be able to do this"
(howto approach, need-to-know, selective ignorance, acknowledge the fact that you're no expert)

"If I understand this one crucial thing I'll understand the whole thing"
(holistic, top-down approach, crux of the matter, less effort turns complex to simple)

"If I do this I'll get an edge" "I must learn this esoteric factoid for future use in emergency"
(special knowledge)

"This is powerful and highly desirable"

"If HE can do it, I can do it no probs", "How does HE do it"
(watch, observe)

"If I don't do it, I'm a dead duck"
(ask for help, acknowledge your ignorance)

"I'm going to become strong by doing this"

"Hmmm... This is interesting... Wow.... Wonderful... How does this work..."

"I'll show him how to do it the buffoon. Hmmm... It's not as easy as it looks... Maybe I'll have to put in more effort"

"I'll prove him wrong. I Know I can do it..."


Negatives :
----------------

"Maybe if I ignore it, it'll go away"
(If I ignore it anymore I'll no longer be able to have a choice and then I'll have to lump whatever happens)

"You mean to say that I've got to jump through so many hoops to do such a simple thing.... Maybe I'm better off doing what I already know."
(Learn by rote esp. Learning specific short-cuts for a task,)

"I don't even know the words you're saying. It must be a very complex thing..."
(Learn the talk/terminology relate it to graphs, sensations...)
(Learn by Doing - many things are more complex in words than in actions.
Example:
1) It's easier to use the wizards in Visual Studio than to describe how to use them,
2) xml books make the subject esoteric but writing and tweaking xml files is easier to get it to work
)

"It looks very dark in there, I wonder what kind of devils live there who'll eat me alive...."
(Gather first hand knowledge by "Take a breath, Jump-in and Hope for the best", be part of a group aka job interview)

"There are too many things I need to keep in my head at a time"
(slow down, solve one thing at a time, write down on paper, capture the many things into a mind-map, concentrate on the root of the problem, play with a toy problem, concentrate on point-solutions instead of a general solution )

"There are too many things happening in parallel at a time"
(Graphs, Flow diagrams, timelines, time sequence diagrams etc...)
(Heuristics i.e. knowing the safe zone while driving behind another car)

"I only have 2 hands how can I do so many things at once"
(Tools, delegation)

"That looks too complex maybe if I learn something else it'll become easy"
(Prepare for the final task so you'll need least adaptation finally. Toy projects help in simplifying the task but keeping it the same)

"I don't even remember all the details"
(put down on paper what you remember, extend what you know, try to remember scenes instead of information)

+ Hearing/discussing a problem with someone. Classroom introduction helps.
(Not having to initiate the learning process, reduces the effort to be put in.)

+ Necessity to understand a concept for performing a task.
Being faced with a new and previously unknown/unpleasant task.
(Getting into new project, delivering a seminar, teaching a course)

+ Seeing someone else doing something makes it look achievable,
(ease of learning something specific  - from seeing someone do it, instead of learning the whole hog or spending time in trial and error.)

+ Not taking the task seriously
(Playing around with it as in guitar, attending an exam with acceptance of failure.)


+ Preparing for something which is not be needed now.