Execution, strategy, mindset

Published on Nov 20, 2020

James Clear's tweets are as much a goldmine as his newsletters:

Where to focus: 
For beginner, execution.
For the intermediate, strategy.
For the expert, mindset.

That got me trying to interpolate to my #decodingcoding journey, of learning how to code:

In the beginning, focus on the act of executing, that means, coding as much and as often as possible. Consistency is key, that's why #100daysofcoding is such a useful streak mechanism to try. Just follow tutorial walk-throughs on Youtube, Udemy or blog posts, and crank out mini projects fast and furious. The important thing here is to have a sense of progress, in whatever gives you that. For me, it's less about completing a course or getting a certificate of participation, but making these mini projects, deploying them and sharing it publicly. I found deploying and sharing it publicly to be the minimum threshold of what it means to progress one step forward. Because—just like the Zen haiku "If a tree falls in the forest and no one hears it, did it really fall?—if you made a cool little app but it just stays on your computer, did you really make it?

Next, once the habit of coding is consistent and you get the hang of it, feel more confident, know your way around like a local, focus on optimizing the way you learn and the way you code. For me it came in the form of realising that it's time to start doing more serious projects than just taking courses, doing tutorials and launching mini projects. It's kind of like learning driving – you first learn to drive in the sheltered bubble of a car park or a driving centre, then go on to a real road with unsuspecting motorists. I went from playing with code snippets in sandboxes like Codepen, to using the terminal and making production-ready level kind of apps. That allowed me to learn the whole process from typing the first line of code to deploying out into the wild.

After doing it consistently but also optimally, in the right direction of my goals, it's time to focus on keeping myself continually invested in coding. This is huge because I had dropped in and out of coding for numerous times already. Every time I started off with a bang, head on fire, super motivated to learn. But after a month or two, the flames started to fade, and I lost direction. So I wanted this time to be the last time I dropped out. And it isn't just about continuing to code consistently, but about immersing myself in web dev and geek culture, about trying to shift my mindsets that "I'm not talented at coding", and reshaping my own personal narratives about my career, work and professional identity. I found this with the countless web dev podcasts available out there, most notably Syntax and Remotely Interesting, because they don't just talk about the technology and the latest cool Javascript frameworks, but also all the other non-coding stuff around the coding. It's a real peek into this new scene that I'm breaking myself into, the kind of people and personalities who live there, the inside jokes and lingo they use. It created a sense of belonging, compared to previous times when I always felt like an outsider who was trying out coding, never quite feeling like I fit in (self-imposed mostly). 


Actually, introspecting deeper, I realised these are not three mutually exclusive, distinct stages. You can and should do a bit of all three all of the time, just that the proportions differ at each stage. Beginner stage could be 80% execution and 20% of the other things, and then slowly it can flip around as you grow. It also depends on personality – even at expert level, I like hell wouldn't want to be 'doing' mindset and strategy 80% of the time. That's called management, and it's boring af (to me). 

So what do you think? Does this breakdown and respective focus for each stage accurate for you? Why, why not?