How to make your knowledge multiply like money
It is not just the money that compounds. Knowledge also compounds and in much more fantastic ways than money does.
Knowledge Pyramid
There are multiple stages while one learns - I call this the Knowledge pyramid
1. Knowledge - This is pure data level, with a very little understanding. It could be as simple as knowing printf prints its arguments in the console
2. Comprehension - This is the understanding stage. Understanding why it works and how to use it like a professional
3. Assimilation - This is a stage of 'deep' understanding. In this example of printf, Probably involves more digging around on how variable arguments work in C
4. Application - This stage involves using all the knowledge in a new use case where you have not used it before. Unless one has application level of knowledge, he/she should not be considered an expert. For e.g., It could be applying lists or maps to solve a problem or suggesting a design / architectural pattern for a specific situation.
Innovation
Innovation can happen in a couple of dimensions - One is getting deeper where new insights arise. So, Innovation can be considered as Stage #5 of this knowledge pyramid. Some kind of magic happens when people put in 'focussed' effort in a particular subject [1]. Malcolm Gladwell may say that you need to put in 10,000 hours. But, I don't think that the number is fixed. As indicated in Yoga Sutras of Patanjali:
Time to complete any work is directly proportional to Intensity (Verses 21, 22 in Chapter 1 (Samadhi Pada) of Yoga Sutras) [2]
तीव्रसंवेगानामासन्नः ॥२१॥
tīvra-saṁvegānām-āsannaḥ ||21||
The goal is achieved through intensive practice. ||21||
मृदुमध्याधिमात्रत्वात्ततोऽपि विशेषः ॥२२॥
mṛdu-madhya-adhimātratvāt-tato'pi viśeṣaḥ ||22||
This practice can be light, moderate or intensive. ||22||
As intensity increases time decreases 'DRAMATICALLY'. As a corollary, when done in low intensity, one can spend an entire life time doing spectacularly ordinary work without gaining any insight.
The other way innovation can happen is by having 'Application' (Level 4) knowledge in multiple domains / subjects. This is because of the power of compounding of knowledge. Knowledge creates internal networks as you learn stuff - My first patent came from marriage of Realtime Scheduling theory and QoS in Wireless Networks
If one doesn't have Application level knowledge in a couple of domains, there can be no innovation by this method.
Steve Jobs calls it 'Connecting the Dot' backwards [3]. But I'll tell you what I found (so far) - Every dot will connect backwards! Because, it is the nature of knowledge. Whatever you learn will interact with what you already know and create fusions that are dramatic and will even surprise you! The key again is depth.
A fantastic way to trigger to innovate is to take a problem which your mind cannot grasp at all! Mind should feel helpless and should kneel and seek you to take another problem. That is a good kind of problem to get to the power of creativity and innovation held deep beyond the realms of the mind. [4]
And, I feel the key is to learn (whatever subject you like) as deep as possible and learn some stuff that could be totally unrelated, and also some in some domain that are related. And, just wait for the magic of connecting to happen! And don't worry about connecting dots while acquiring the knowledge. Like Zen, you won't reach the goal if you are looking for it! Just do what you REALLY like! (Sometimes you might have to dabble a bit in a subject to know if you like it or not!)
One of the key pitfalls of a good percentage of new-gen programmers is over-reliance on Stack Overflow / Google even without spending few seconds to find out what the problem is. This creates an army of programmers who have no idea what is happening.
I vividly remember one of the software architects who hired me in my first job mentored me - "Don't work superficially. Keep on churning till you get the complete knowledge. Nectar of immortality was obtained only after tremendous and almost impossible effort of churning the milk ocean. If you stop early, you get nothing" (In reference to Indian Mythology where ethereal beings had to churn an ocean of milk to get a nectar that would offer them immortality). I always remember this while solving tough problems - If it was easy, anyone would have solved it!
Coda
If you are young and beginning your career, people usually offer financial advice to invest in stock market to experience the 'Power of Compounding'! All I can say you is invest in yourself and go deep in whatever domain you like, and enjoy the even more fantastic 'Power of Knowledge Compounding' [5]!
Bible says God made man in His own image - My interpretation is God made man with an ability to create whatever he wants. God endowed us with the SAME creative power that He has - What better way to feel like God than to bring new things to this earth what no one has seen or improve things in ways that have not been imagined! So, make a different resolution for 2015 - Go ahead and innovate!
References:
[1] How to be creative, Hugh Mac Leod - MUST READ http://changethis.com/manifesto/show/6.HowToBeCreative
[2] From http://www.ashtangayoga.info/source-texts/yoga-sutra-patanjali/chapter-1/
[3] Brilliant talk of Steve Jobs - http://www.businessinsider.com/the-full-text-of-steve-jobs-stanford-commencement-speech-2011-10?IR=T
[4] Solving toughest problems in your field - "You and Your Research" by Hamming http://www.paulgraham.com/hamming.html(referenced from a brilliant essay by Paul Graham http://www.paulgraham.com/procrastination.html )
[5] DISCLAIMER: Please treat this as a peer advice. I am a pretty ordinary co-traveler in the world of tech, who wants to share his view. I am not advising in the capacity of an expert programmer or any other pedantic way