Find a way to drill those skills under high intensity environments with artificial constraints that make the practice more challenging than what you would face under real conditions. (The way Futsal is more demanding in terms of ball control skills than a real soccer game).
In his book he dives very deeply into the somewhat strange and unconventional techniques used by talent hotbeds around the world to enhance the skills of students at alarming rates. One of his first examples answers why Brazil cultivates some of the best soccer players in the world. The success of so many Brazilian soccer players is owed to a game called Futsal. Futsal is played on a smaller court where players have to act extremely quickly. The game moves at an alarmingly fast pace and players often get 10 times as much interaction with a ball as they do in a traditional soccer game. This allows players to focus on fundamental sub-skills of soccer: handling the ball in precarious situations where space is heavily limited and keeping control of the ball while they have several defenders trying to steal it. These components of the game are not all there is to being a good soccer player, but these sub skills are said to be what differentiates amazing soccer players from ordinary ones.
HackerRank Challenge: 365 days of Code
After reading The Talent Code, I really began to try apply this line of thinking towards Computer Science. I realized that the kids who can rip through a recursive or linked list algorithm in seconds simply just have a little more myelin than the others. Whatever past conditioning they have had (from solving Rubix cubes as a kid, to building legos to excelling at math) has laid the foundation of myelin that allows them to not only excel at problem solving, but to acquire new CS knowledge at alarming speed.
So back to my mission: I badly want to acquire the right kind of myelin that will boost my coding skills. When it comes to building projects in CS, aside from design, all the implementation challenges really boil down to algorithm problems. Just as a soccer game might boil down to ball handling skills. So, by drilling algorithm skills in a high intensity environment under artificially constrained conditions, hopefully I will be on path to getting that myelin I so badly want.
A few months ago I read a book called theThe Talent Code. It talked in depth about a neural phenomena called Myelin. (Disclaimer: I am not a neuroscientist) Myelin is essentially white matter. It wraps itself around circuits of your brain insulating them and allowing them to fire faster. It is essentially the bedrock behind all skill. However, Daniel Coyle (the author) describes that certain forms of practice (deep practice) can greatly enhance and facilitate the acquisition of myelin.
Pick a skill you want to improve in
Understand what specific sub-skills of the domain are critical to differentiating good practitioners from great practitioners. What elements are the most fundamental and cognitively demanding?
My problem is that I end up spending way too much time thinking and way too little time coding, and while much of this is a natural phenomena of being a CS student, I severely need to find a way to expedite my acquisition of skills. I want to be able to grasp new knowledge quickly without having to review my notes 3 or 4 times just to understand concepts.
Each week I will post a report as to how many challenges I have completed and any difficulties I face along the way. Todays date is April 4th. I have completed 7 challenges so far in the Algorithms track of HackerRank. April 4th 2019 I hope to have completed all 730 challenges. I plan on doing all the posted Algorithms challenges and then moving on to Data Structures. Once those are complete, I will dive through the archived competitions. My language of choice for this challenge will be Java.
If there is anything I crave right now, it is speed and instincts when it comes to programming. I see kids all the time in my classes who can see an algorithm and just rip straight through it. Its as if they have a super power of some sort. On the other hand: I can take up to twice the time on my assignments as some of my peers and while I still end up doing reasonably well, my lack of speed is severely holding me back from reaching the level where I want to be.
The general formula that I derived from this book for increasing skill in anything was the following:
Applying this line of thinking: over the next 365 days I am going to solve 730 Hacker-rank Challenges. This will be additional to any of the work I am already doing in my classes. This will equate to roughly two challenges a day. It is my hope that these challenges will add up over time and give me the foundational instincts I need to effortlessly excel at problem solving. I am not trying to do this to escape the difficulty of my field. I simply know that I need to perform at a higher level in terms of both speed and quality. This blog will serve as my log of accountability.
I challenge anyone reading this tofollow me alongand blog your results. It is my hope that by the end of this journey, I would have transformed my brain into a problem solving machine.