
Coding as Craft: Going Back to the Old Gym by codeman001
Recently, Shopify’s CEO Tobi Lütke shared his thoughts on AI’s role in coding, stating that “reflexive AI usage is now a baseline expectation at Shopify.” The gist of his message was that AI is revolutionizing how we work, and everybody should jump on board this train or risk being left behind. I’m paraphrasing a bit, but not much – check out the post for complete context and content.
This struck a chord with me, but not in the way he intended. In a Slack conversation with fellow Elm engineers, I found myself typing:
Interesting timing. I just switched back to
vim
to get further away from AI interference in my coding. My last talk about AI had the subtitle “automate the boring parts” (inspired by that classic Python book), and that’s what it’s for for me.Coding, however, is not the boring part, it’s my craft and I want to enjoy it and stay sharp. Sure, asking questions and discussing topics with an LLM if that’s all you’ve got at hand is fine. But “reflexive AI usage” sounds like a diagnosis I don’t want next to my name.
If people stop the occasional deadlock of grinding teeth, looking at a problem, crying, going for a walk, praying and screaming until suddenly it makes sense (and you learn something!), I’d call it severe regression, not progress.
The more I reflected on this exchange, as well as other comments from my betters, the more I realized it connects to something deeper about our relationship with technology and craft. It’s time to talk about going back to the old gym.
The Rocky Balboa Principle
Link to heading
In Rocky III, there’s a pivotal moment when Mickey confronts Rocky about how he’s lost his edge: “You used to be like supernatural, but the worst thing happened that can happen to any fighter: you got civilized!”
Mickey’s solution? “Let’s get outta here, back to the old gym!”
This scene has stayed with me because it captures something profound about mastery and skill development. The “old gym” represents the raw, essential conditions where real growth happens. It’s not comfortable. It’s not luxurious. But it’s where the authentic work gets done.
In the context of coding, our “old gym” is the mental space where we wrestle directly with problems, algorithms, and architectures without the cushion of AI generating solutions for us.
Let me be clear: I’m not anti-AI. In fact, I find it incredibly useful – for the boring p
16 Comments
cjs_ac
> The phrase “reflexive AI usage” is what triggered my strongest reaction. “Reflexive” suggests unthinking, automatic reliance. It implies delegating not just tasks but judgment itself.
Does it? When I trained as a schoolteacher, we were required to engage in 'reflexive practice', meaning at the end of the school day, we were expected to sit down and think about – reflect – on what had happened that day. I don't know how the Shopify CEO meant that phrase, but 'reflexive AI usage' has two conflicting meanings – it can be AI usage that is either actively or passively chosen – and we might need some better phrasing around this.
shinycode
> If people stop the occasional deadlock of grinding teeth, looking at a problem, crying, going for a walk, praying and screaming until suddenly it makes sense (and you learn something!), I’d call it severe regression, not progress.
People for which development is not their job will absolutely want to get rid of it as much as possible because it costs money. I really agree with the author, it does feel like a regression and it’s so easy to overlook what makes the most part of the job when it looks like it can be fully automated. Once you don’t have people who are used to do what’s quoted, and there is 500 million lines of code and bugs, good luck with that to ask a human to take a look. Maybe AI will be powerful enough to help debugging but it’s a dangerous endeavor to build critical business around that. If for any reason (political or else) AI got more expensive it could kill businesses (twitter api ?)
lm28469
But then again most IT jobs are the equivalent of flipping burgers at mcdonald's, nobody's asking them to be Michelin starred chefs.
boredemployee
"It’s about maintaining the human element in a craft that’s increasingly automated."
I mean, what can anyone do, anyway? We’ve been on a "quest" toward the total automation of work for decades! and unfortunately these reflections are coming far too late.
didn’t anyone notice what was happening all these years?
Talking with a musician friend, he pointed out that today, studying, producing, and releasing music is almost volunteer work because the vast majority of artists will likely see no return on their investment, especially with AI flooding the music platforms, so I really expect it to happen to many other jobs.
TheChaplain
I like the article.
At the same time, as AI takes over the actual coding practice more and more, I find the situation with multiple programming languages a waste of resources.
If AI could generate binaries, web assembly directly, or even some "AI specific bytecode" then we could skip the steps in the middle and save a ton of energy.
strangescript
Yeah, anytime I am about to do some long multiplication, I start reaching for my calculator and stop, "no, you will go to the multiplication gym, and do this by hand, need to stay sharp"
ericyd
I also appreciate the craft of coding. My suspicion is that eventually it just won't be a thing anymore, even though such a future is not my preference. Not that humans will be completely removed from coding, but writing every line yourself will just be incredibly uncommon and not industry standard. I'm not good at predicting, this is just where my gut is right now.
extensityhn
[dead]
bobbyraduloff
Very good article. I try to (respectfully) push my coworkers in this direction but it’s a bit of a lost cause.
I work mostly on small codebases and you can smell unchecked AI codegen from a mile away. Even small changes become giant refactors.
People who push this have never had to work in such codebases. God forbid your requirements change mid project. Rarely does the sum of separate prompts without full context result in something maintainable and modifiable. You’re cooked.
juujian
This reminds me that I should do more coding challenges. Maybe nothing major, small data wrangling. Stuff like puzzles in the game Human Resource Machine. Advent of code light maybe. So refreshing and fun sometimes.
JSR_FDED
For me it’s not complicated when to use AI. If the task is something where having fluency will make me significantly more productive and nimble in the future, then I’ll go the old gym way.
It’s like communicating in a foreign language- you can do it with AI, but if it’s an essential element of your job then you’re going to invest the time to learn it so it becomes part of you.
jstummbillig
I think this fails to recognize how many more important problems there are in the world, and that the writing of code was not meant to be one of them, but only came into existence to solve them.
Of course, that does not have to be true now. You can certainly do this for personal satisfaction.
But the argument in this article is a bit confused. The step that lies behind "coding" is not of lesser difficulty, on the contrary. Instead of worrying about coding, we can instead worry about the bigger picture, and all the beautiful thinking, contemplating and deadlock it entails.
Only now, we are one step closer to solving a real problem.
lo_fye
>>It won’t design your domain layer with the care and consideration that
>>comes from deep experience and hard-won knowledge.
What if every time you had an Aha! moment, you blogged about it in detail. Many people do. AI ingests those blog posts. It uses what they say when writing new code, or assessing existing code. It does use hard-won knowledge; it just wasn't hard-won by AI itself.
curtisszmania
[dead]
2d8a875f-39a2-4
"Generating boilerplate code, Summarizing documentation, Understanding complex concepts, Debugging tricky error messages, Drafting unit tests, Formatting data"
Thing is, this is probably 99% of the programming work of a junior dev at a place where management thinks like that.
codr7
Even delegating just the boring parts doesn't appeal to me.
Generating boilerplate code – getting frustrated about code is what drives new ideas and improvements, I don't want to lose that friction.
Summarizing documentation – Reading and making sense of written material is a skill.
Explaining complex concepts – I don't want explanations on a silver plate, I want to figure things out. Who knows what great ideas I'll run into on the way there.
Helping debug tricky error messages – Again, a skill I like to keep sharp.
Drafting unit tests – No one knows better than me what needs testing in my code, this sounds like the kind of unit tests no one wants to maintain.
Formatting data – Maybe, or maybe whip out Perl and refresh that skill instead.
Keep delegating everything to AI for a year and I suspect you'll be completely worthless as a developer without it…