03 January 2015

4 Keys to Rapid Learning and Skill Acquisition

  1. Recognize Paradigms

    It is human nature to draw comparisons between what is new and what is familiar. This methodology of learning through comparisons allows humans to learn very quickly. However, if someone is constantly learning through comparisons then what happends when they are trying to learn something that is unlike anything they have seen before? Learning through comparisons has the potential to be ineffective, or even harmful. This is especially true in computer science where solutions to problems require not only more information, but different systems of thinking altogether. Different solutions require different systems of thinking.

    "Problems cannot be solved by the same level of thinking that created them" - Einstein

    Trying to compare new information with something you already know has the potential to lead to misunderstandings.

    It has been said, "When you are programming in Java, program in Java. When you are programming in Ruby, program in Ruby". What this essentially means is, do not transfer a paradigm of thinking from one context into another. Programming in Java requires a system of thinking that is different than programming in Ruby. Each language has a different system of thinking because each language serves a different purpose. Technicalities become simple when fundamentals are in the blood.

    Recognize that when you are learning something new that you may have to learn a new system of thinking.

  2. Maintain Beginners Mind

    It is the natural tendency of humans to associate their identity with the activity where they spend their time. Since programming is very time consuming, developers tend to have a good deal of their sense of self invested in their work. This may have the positive benefit of motivating individuals to work hard to become more skilled. On the other hand, it has the potential negative effect of causing people to compare themselves to others. Comparisons are dangerous because once someone decides they know more than someone else they unconsciously close themselves off from learning anything from others.

    Have the beginners mind: assume there is always more to learn. I now have the attitude that if I attend a lecture, read a book, or watch a video- even if I only learn one new thing, it is worth it. Even if I hear or watch something I already know at least it reinforces my current knowledge even deeper. Repition is the mother of skill.

  3. Be kind and patient towards yourself

    Everybody has days where they have performed poorly, and everyone has days where they performed great. It is easy to slip into a role of identifying with your skill level and saying, "I am intermediate at x skill", but the truth is your skill level on any paticular day is highly variable. You are as bad as your worst day and you as are good as your best day. You are only human, and despite others best efforts to appear special or gifted most humans learn at pretty much the same rate, differing only in learning style. The world will never cease to provide evidence to you that you are inferrior to others. Do not buy into the idea that other people are more gifted than you in a paticular area. Nobody is special. Nobody is above the process. There are no shortcuts to skill development. Massive action is king. So remember your ABC's: Always Be Coding.

  4. Realize your potential

    The human brain is the most powerful computer on the planet. It has the backing of 40+ millions of years of evolution. The human brain is capable of mastering any skill if given enough time and resources. The potential for any person for any given skill is absolute Mastery. For some it may take longer based on their learning style and motivation levels, but the potential is the same regardless of personality, characte traits, or personal history.