Too long to read? I understand, I am no fast reader. If you have Mac, select the paragraph of texts and right click, select speech and start speaking. Not the best narrator, but it's free and build in. Saves your eye sight.
Learning style is a natural topic of interest for my blog, which focuses on covering resources for people in the technology and coding communities, especially beginners that are joining this community. Why has Codecademy worked for millions of users, when some clearly don't like the site for lacking of one important teaching element: answers! Codecademy is a collection of interactive tests without answers, yet it works why? Sometimes, I will recommend Treehouse
for my beginner coders, sometimes Code School.
They are very different indeed.
Today I want to cover an important "learning style" and "skill" - GRIT and Resilience - (style and skill in quotes because grit and resilience are really personalty traits). A dear friend in college +Adriana Miu
once taught me something about psychology and education. She took time to teach and learn clinical psychology upon graduating from Stanford. She explained to me that she's fascinated by resilience. When she worked with at-risk children, she learnt that some of the best performers among this group are actually kids that have gone through traumatizing events. Events that are so dire, even just one, or a part of it can reasonably destroy a person without doubt. Yet these kids survived and excelled. They may not grow up to be presidents and hedge fund managers, but they surely show us why we should be proud to be human, and what humans are capable of handling.
That's when I started to think a lot about resilience. In Chinese, there's an idiom and a fable that talks about 江郎才尽 Jiang Lang Cai Jin (Jiang Lang running out of talent). A prodigy losing his talents over the years was a fable aimed to teach Einstein's famous saying: success is more about hard work than raw talent. Malcolm Gladwell
also wrote about how success is somewhat predictable by statistics in his famous book Outlier
s. The way we name our kids actually matter (a minority name, and a girl's name may not fair well in many prestigious positions, unfortunately), the time we enlist our children in junior leagues matter, and the amount of time we spend on each subject can actually predict the outcome. One sentence conclusion: raw talent surely helps but raw talent most often do not predict success. And that just makes sense, the more we try, the more opportunities for us to win that lottery and get that impossible outcome (scientists don't believe lottery is a good gamble game to play, but without playing at all, surely the desired outcome to win will never be reached, naturally, just by pure setup).
My engineering friends from Stanford and local startups often believe that coding should not be taught. They had to learn it by reading and tinkering on their own (that's why documentations are highly valued), and they believe that's the best way to learn for future comers too. I believe that, the engineering experts know what is the best for their ecosphere, so I am not to judge, but what if we need to teach coding, what do we have to do?
I am a firm believer that coding is the new literacy. It soon will be an integral part of all education, as much as reading and writing! So yes, I would like to entertain with the idea what if we HAVE to teach it?
This blog post is about no matter how great the teaching materials, one single factor may trump all factors, especially in the realm of beginner coding : grit.
explains grit's role in education in a wonderful short Ted Talk
: grit can be measured, can be thought of as a growth mindset (Stanford idea)
, and that it may be a better predictor of future success, long term success than IQ or raw talent. It's the mindset of marathon runners not sprint.
beginner coders that I have met? People who went through Michael Hartl's Rails tutorial 3 times
. First time for an intro to Rails, second time including Git to learn version control, 3rd time to reinforce Rails concepts and learn how to test with Rspec, Capybara.
The best Codecademy
folks did all the exercises, practice outside and asked tons of questions, why? Why this, why that? Actually more insightful than an actual engineer. The naive engineering mind is unhinged when asking questions.
One good friend +Sandra Chiu
actually went through tutorials not glamorous like Treehouse and Code School
but more like Lynda
to learn all the nitty-gritty details of the codes that she was spoon-fed elsewhere. She downloaded the files and tinkered, all the time, even when I gave her the answers right away and told her to not sweat the details, so to save her frustration times. But for her debugging time was a part of the learning. Even if it takes forever. Gritty
learners like she are not afraid of failure. They are clever, they try really hard, and they keep trying until they find a satisfying solution. That is to say their solutions are somewhat optimized.
enough to go pass the beginner coder stage and become a prototyper (my goal is not to be a full time dev)? It is compulsion
My personality trait that helps me is my crazy ability to compulsively learn
. Some recent examples are reading 49 pages on Cucumber and Rspec testing in a single morning Caltrain ride to Palo Alto (note it's also impressive because i am not a morning person). When I apply to a company, I am fully immersed about this company's future, vision and operations, I will emerge from even unsuccessful interviews as a SME of this company's PR. I also used to stay hours on Codecademy, even on Friday and Saturday nights. I would stay up all night till I am stamp the bug. Also that I am writing this learning article at 3:39AM.
A high school friend who is dyslexic reminds me of the most excruciating pain when I watch him write. I who can talk none stop end up being a sloppy writer and talks an equal amount of non-sense and insights. His writing on the other hand is crystalized, though painfully so. I would qualify him as a true writer, and I who did not grit my teeth
through words will not be qualified. He also made the most beautiful stain glass art project of rising sun on Santa Cruz surf. Some of us can see the devil in the details: the ocean is really 5 vertical "waves", each with a strong carving of curve, each a different subtle gradient of shades of blue, each with a unique gradient of texture that resembles the real waves. The painstakingly made tiles of dark blue waves always remind me of the struggle of compulsion, grit and success
errors and read Stack Overflow
with lunch can tell you what it means to be gritty as a coder
. The learn The Hard Way (T
series including Learn Python the Hard Way
is a live example of being extra gritty
helps beginners learn Python. Having grit
really pays off in learning to code and in many fields that require intensive learning, for example, the modern society as a whole...