All of these are self-help clichés. And they’re not wrong. In fact like all clichés, they contain a nugget of truth, but they’re too general to convey the subtlety required to become actionable advice. You can go from zero to somewhere using this advice, but I think it’s as likely to make you fail as it is to help you.
Why is that? The reason is because it puts emphasis on the results of what you’re doing, and relies entirely on your willpower to get you where you want to go. The reason this is dangerous is two-fold: your willpower is a finite resource and its availability is controlled to a large extent by your ego.
Your ego is a funny thing. It a lot of conceptions about who you are. It thinks you have all the talent in the world, and all the ability in world. It carries within it your precious self-image. The problem is that if your brain feels that your self-image is threatened it will shut down your willpower, and allow you to rationalize giving up in the interest of maintaining your ego.
This recognition helps us see why setting firm goals and keeping track of what you’re doing is a problem for beginners. It risks your self-image when it’s at its most vulnerable: when you’re trying something new. If during the first few days or weeks of coding you fail to reach a goal, either because your willpower is depleted or your goals were unrealistic, it’s easy to feel your self-image being threatened. Your fear center kicks in: what if I’m not as smart, and talented and special as I thought? And then it says to you: it’s better I stop trying than find out. And so your willpower is gone, and you’re right back where you started.
Step One is concentrating on habit creation.
And so the biggest part of Step One is not to get better at doing, it’s to start doing.
What’s interesting is this: if I had set goals, and tracked my progress I would have been sorely disappointed at having missed going to the gym. I would have felt like such a failure. And my ego would have been very quick to tell me to just completely give up and rationalize it by saying things like: I’m too busy, or I don’t like exercising anyway. My willpower would have been sapped completely.
But none of that mattered to me. By just going every once in a while, and doing whatever I felt like doing the gym became a somewhat enjoyable experience. It wasn’t a highlight of my day but it certainly wasn’t horrible. Some days I even kind of wanted to go. And even more interestingly, having a week or two when I didn’t go at all had a surprising effect: it made me realize how much better I felt when I was working out.
That realization reinforced my emotional attachment to going to the gym, and I picked right back up with very little difficulty. It’s one thing to know rationally that going to the gym will help you feel better, it’s another thing to know it emotionally.
Once you have enough experience at an activity like coding, something interesting happens. You begin to know: hey I can be pretty good at this. It might not get it at first, but I’ll be able to figure it out. That means you’ve successfully convinced yourself not to take your failures personally. Which means your ego is safe from being irreparably harmed, and your fear center won’t kick in to make you do weird things. Once you’ve developed that attitude, that’s when you need goals.
So, in short to get good:
1. Learn how to build habits
2. Habituate doing the things that you want to get good at in an easy-going, non-threatening way. Recognize that this will take time.
3. Once you’ve done that, set goals.