Date: 2024.01.07 | code | create | creation-cycle | software-engineering | tech |
DISCLOSURE: If you buy through affiliate links, I may earn a small commission. (disclosures)
I get asked this question a lot in various forms: "How do I get good at coding?"
My answer is simple: Code.
Now this may seem overly contrived but it's not and while it's simple, it's not particularly easy to carry out. In this post I'm going to explain why this is the only true answer and provide some recommendations to make starting easier.
When people ask this question it's typically in search of an easy solution / hack that will get them their results faster. This is what a lot of online content / courses / experts sell so it's what a lot of people have come to expect.
The thing is that solution / hack is never really true. By and large all of Productivity is about how to optimize your focus / time / energy to better do TheThing.
Seriously - go take 10 course, summarize them, and tell me what they're all attempting to do / how. It's probably this.
But at the end of the day you still need to do TheThing in order to do and improve at TheThing.
An example of this is you could go to infinite classes, read infinite books, watch infinite tutorials on TheThing. But if you never actually do TheThing then you likely aren't good at TheThing.

So what would you have to do to be someone who does / improves at TheThing? The answer is simple: Do Thething.
So by extension if you want to code and get good at coding you must code.
Now just doing TheThing will get you started but if you blindly do TheThing then it's true you may not make as much progress as you could (though most studies show just doing TheThing is way more impactful than any other approach). So a better approach is to do TheThing with mindfulness and intent.
At its core, all this means is doing TheThing and trying to get a little better each time:
Do this 100 times.
This probably won't make you an expert in TheThing (the experts have probably done TheThing 10k times) but it will make you infinitely better at TheThing than you were when you started.
Once you're done with your first 100 iterations you can think about whether this is the direction you want to go in and course correct from there.
Do TheThing. Think about what you want to do with TheThing. Rinse and repeat.
So what if you get stuck?
There are times when you may overextend. Perhaps this cycle you tried to do a new version of TheThing but underestimated the complexity / what was involved or maybe you are just completely overwhelmed and not sure where to start.
That's okay! You learned something! That too is progress!
In particular, we've learned a particular thing is blocking us from making progress. Now we can go do some Learning specifically scoped to resolving that one thing. Once we've learned some ways to overcome that thing we can quickly get back to actually doing TheThing.
This scoping of Learning is particularly important so we don't get into the infinite Learning loop we mentioned earlier. At the end of the day we actually need to do TheThing to get good at TheThing so we need to focus on doing TheThing, not procrastinating by doing other things.
Hopefully by now it's clear that to get good at TheThing we must do TheThing. Learning to do a thing well is never done by diving into learning resources - that's almost always a distraction and a very attractive procrastination tactic. So we must do TheThing.
So to get at code we must code.
So our goal is to do TheThing: code. You should aim to do this 100 times. You won't be an expert but you will be far better than when you started.
I would recommend trying to write 100 programs. These could be:
Here's a list of random code projects I've built over the years.
Code - just like other practices - requires practice but it doesn't matter so much what you're coding in the early stages. It just matters that you are coding.
Once you've started you can start being more mindful and intentional about how you are progressing:
Then from there you can start directing your next cycles towards projects related to that.
Just remember - try to learn 1 thing and make it 1% better every time.
Do this 100 times and you'll be much better than before. Then do it again.
This is literally what I do for every project / skill / domain - I call it The Creation Cycle.
Improving at something is simple but that doesn't make it easy. Hopefully this saves you a lot of time spinning your wheels in endless learning loops and gets you actually doing TheThing.
If you liked this you might also like:
The best way to support my work is to like / comment / share for the algorithm and subscribe for future updates.