Wednesday, March 26, 2008

Top-Down and Bottom-Up Acqusition of Principles

I colleague of mine recently went to a job interview, before which it was suggested to him to bone up on basic problem programming-based solving and related things (discrete math, Big O, algorithms, and data structures). The boning up was suggested because the interview was for a Software Engineering role and involved a skills assessment. He's a trained Electronic Engineer with some Computer Science and Research mixed in, and was reasonably concerned with the trade-off of not misrepresenting himself whilst aiming to nail the interview. The situation resulted in a discussion on the quandary of rapidly learning the first principles of a field of study.

A first pass at the problem lead to the natural observation of the skills assessment approach, and the general philosophy of: if you breeze through the easy problems, that trust is instilled in your capabilities with harder problems. All quite reasonable. For example, if I were to hand over commit rights on my baby to an unknown programmer, I'd need to know that they were aware of Evolutionary Computation 1 and 2 (or equivalent seminal references), and knew the principles of building good software. I related two anecdotes of my modest time out in the world developing software. The first advocated the need for first principles involving a story of how a grounding in concurrent programming helped my solve a sticky synchronization problem. The second example more interesting highlighted need to perpetually acquire relevant principles in unfamiliar domains, where I related a generic .NET web services problem and the general problem solving-based strategy for rapid self education (the mantra of the consultant?).

A deeper consideration highlighted the differences and inter-relatedness of the two approaches to acquiring information. The first case of classical education may be considered bottom-up, providing a slow, systematic, although generalised treatment of a domain (the classroom). The second case of as-needed self education may be considered top-down is highly motivated, fast, and importantly extracts specific principles from a domain (life long learning). The directedness of the two extremes highlight the manner in which the principles of a domain are acquired, submerged within or scavenging from above. In the case of the job interview, the expectation was a bottom-up education in programming and software engineering, although most of the excellent consultants I had the privilege to work with were trained engineers (seems topical) and most likely acquired the principles of software engineering in a top-down manner (at least initially).

The slow speed of the bottom-up approach promotes strong contemplation and likely improved integration via association (building the structures with which to associate). The generality and lack of personalized motivation, (at least in my case) suggest at broader acquisition of the domain of which only residual structures are accessible, although fuller understandings are derivable (for example you can't remember specifics, although they can be obtained through promoting ). Top-down information acquisition on the other hand is sticky in that they occasions that are the basis of antidotes, interestingly in my case both in the application of latent and acquisition of new principles. The specificity of the top down approach heavily biases both the coverage of the domain, and therefore the principles observed, acquired, and broader perspective of the domain acquired. A discussed example was the PhD itself, where although you become a world-class expert in a extremely narrow field of study, the amount of self education required to get there leaves a feeling of incompleteness ('what have I missed?') and general sense of resentment of the generalised scope of bottom-up education ('why wasn't topic X covered in subject Y?' or 'Why wasn't there are subject on X?').

Anyway, I am unclear on how these pondering fit into the scope of the so-called philosophy of education (if that is even the right context in which to consider such thoughts - a concern of top-down). Nevertheless it is interesting to consider some personal examples of this perspective on education. First-language acquisition is an example top-down education, although I feel somewhat cheated that the rules of English (grammar for example) were not treated in far more detail in secondary school. This highlights an important interplay between the extreme perspectives, that is the need to make the time to take it slow and acquire the principles of the broader domain after a top-down approach has been taken. One can imagine an agile life-long learning methodology of frequent top-down acquisition and infrequent periods of consolidation with bottom-up reinforcement. In fact, I have little doubt that effective people adopt a related strategy, either consciously or by design. The methods of acquisition is important because, although application of information is discrete and specific, competence is likely defined by having acquired information by both a top-down and bottom-up means.

3 comments:

Jason said...

An observation I forgot to mention regarding bottom-up learning, is that although the information acquisition is resonantly passive (low internalisation bit-rate), generally people on the others side of the process come out thinking they 'know' the domain. The effect is they may be less receptive to acquiring further information about the domain. For example, I feed like I have acquired the principles of Java, although like any field of study there are always more perspectives, more detail, and most importantly, advances.

Jason said...

Two excellent and related points: A post by Erik Naggum on how learning by doing is not enough when programming, highlighting the need to also study first principles. Peter Novig's classic (2001) post on taking 10 years to learn programming, including learning by doing as well as many other important and interrelated strategies.

Patrick said...

Excellent post! I like the distinction between top-down and bottom-up skills acquisition.

At university I learn "bottom-up" from textbooks; at home I learn "top-down" from Internet articles and practical experience.

I wrote a related post: http://pcpcword.wordpress.com/2008/05/08/is-a-practical-understanding-enough-are-fundamental-first-principles-necessary/