I recently dived into learning about Ethereum and the Solidity programming language. This is partly motivated by seeing the huge potential blockchain technology has for changing our lives (I want to ride this new technological wave) and partly because it’s a total paradigm shift (and my brain loves those).
I have a degree in Computer Science, but my focus has mainly been on image processing (computer vision), signal processing and machine learning. To make this shift I have to learn a LOT of info that many developers have a huge head start on. This is both simple (because there’s a lot of info out there) and challenging (because there’s a lot of info out there).
Let me explain. I’m switching domains, which means I have to learn new languages, tools, frameworks and a whole different way of thinking. And on top of that, it’s a niche topic that changes the game so completely that everybody is having a hard time switching to it.
Starting a new skill is always accompanied by a wave of enthusiasm and possibility. But after I’m past that starting phase, and especially if the skill is hard, I start to feel resistance. Bringing myself to continue learning and practicing becomes a drag.
The symptoms of my avoidance  are confusion, frustration, self-doubt, and procrastination.
Confusion is tricky. It is most often solved by familiarity. If I get exposed to a topic repeatedly, my brain has a chance to adapt and it loses its novelty. After a few days of studying and subsequent nights of sleep, I start getting an intuitive feel for the big picture of a subject. Especially if I try to explain it to someone else.
The tricky part is staying on guard and noticing confusion in specific issues and small details. My default MO seemed to be putting the confusing questions in a compartment in my mind and saying to myself that I’ll figure it out later or that the answer will reveal itself in time. Like noticing some foreshadowing in a book or TV show and resolving to pay attention when it appears later.
This time I will list and hunt down every confusing detail until I develop a solid grasp of the basics and I stop trying to gloss over details when explaining it to others. It’s common sense but I have never done it as systematically as I’m doing it now.
Frustration is a symptom of an attitude issue. It’s a mismatch between what I see as reality and what I want to be true. I want to be an expert right now. I want to understand coding for the blockchain and be comfortable with making applications, but I’m not. I don’t have the knowledge, skill, and experience yet. I will accept my observation (where I am now with regard to my skill level), face the uncomfortable feeling, relax , embrace it and move on, into effective action.
Self-doubt is also an internal struggle, but it can be solved quickly by injecting small successes into my past.  I should iterate quickly by creating small, practical apps/contracts, deploying and testing them. Once I gain basic competence, my confidence will increase and I’ll be much more relaxed. I’ll go back to enjoying myself.
Procrastination is partially solved by the previous point. Once you start getting good at something, your enjoyment automatically increases. People love to do stuff they’re good at. Also, to overcome procrastination I need to start super small, doing little bits of work (minimum effective dose) until I get the ball rolling. 
I want to write more on the specific strategies for learning a new skill, so stay tuned. 🙂
The 4 Keys to Learning Anything by Leo Babauta
 Why do You Avoid Difficult Thoughts? by me
 Relax Into the Moment by Leo Babauta
 The Past DOES Equal the Future by Steve Pavlina