Expecting coding to have the same speed and ease as nocode is setting up my learning for frustration
I started learning programming since September 2019. A Udemy course in web development to learn the basics of HTML, CSS, JS, PHP, mySQL, Bootstrap. After which, I did another series of Youtube tutorials to learn Rails. Then I did something which I now see as a mistake – instead of doubling down on all the coding skills learned, I got distracted and went back to using nocode tools to make products.
Yes, it was fun and all, and I’m still proud I made those products. But that really took attention away from my quest to solidify my skills in coding. Worse, nocode skewed my expectations on how fast and easy coding should be.
Because with nocode, I could launch minimum viable products in days, or even hours. The rush of creation, and the satisfaction of seeing something completed and out in the wild so quickly, was addictive. So addictive that I started to expect the same speed and ease for programming too. And when it didn’t, I got turned off learning it and doing it.
Thing is, it’s a false dichotomy to have to choose between nocode and programming. They are useful in different contexts. Nocode is great for non-technical folks to create products without the steep learning curve. It’s fast to market, and can be done cheaply. But customising it later might be hard when you hit the limits of the nocode platform you used. Programming might be slow to start, but the language is flexible and can adapt to the different features you might not even know you want to build in the future. The sky’s the limit. Whereas with nocode, there might be a upper limit.
My mental block was from expecting programming to be like nocode. As fast, as easy, as ubiquitous, but none of limits of customization. I was being unrealistic about the nature of the tool, and that made me turn away from something which holds the key to my bigger ambitions and aspirations when it comes to making products. Looking deeper, nocode appealed to me as I was impatient with my progress.
This week, I spent about a week working on a coding problem for JAMstack sites. My JAMstack sites are made using Stackbit, which is like a nocode tool, but now that I want to customize it, I’m running into problems. Even something as simple as adding open graph images for individual pages was really daunting. I was unfamiliar with React and GatsbyJS, and after 3 days of trying, I was ready to give up. Not because it was really technically daunting, but because it was emotionally daunting. I had unrealistic expectations for how fast I should be solving it. But when I finally solved it, with help from a friend, that thrill and sense of satisfaction was undeniable. After that I found myself going back to look at the code repository to fix more bugs and add more features. That’s addictive in itself too, and much more grounded on hard work and commitment, than impatience.
So perhaps a craftsmanship mindset will temper my impatience better. Because as much as I love progress, I love the thrill of being good at something, and solving something tricky.
Rails, React, or even plain vanilla HTML... Here I come.
Follow my daily writings on Lifelog, where I write about learning to code, goals, productivity, indie hacking and tech for good.