On Shortcuts
I used a shortcut to build this new version of my website: I got some help from Claude. It helped me get this up and running way faster than I'd have done myself. I'm not totally sure how I feel about that.
As an early-career developer, my instinct has been to avoid shortcuts. When we talk about shortcuts, they seem bad: "Do it right -- no shortcuts." "He's a good boss, but he took some shortcuts to get to where he is." What's actually going on there? What kind of behavior are we objecting to?
I think our fundamental problem with shortcuts can be described as "getting an unearned result without putting in the work." This really cuts to the heart of why I've spent years resisting using AI as a developer: from my perspective, you can't get the result without the work, because the result is becoming a highly-skilled developer, and a result like that necessitates a long journey. The result IS the work.
But the development landscape has changed, and AI has become a mainstay in both teams and individual workflows. AI development still looks like a shortcut in some circumstances, but has gained legitimacy as an efficiency tool in others. I've found that kind of perplexing. How do you tell the difference between a shortcut and a newer, more efficient way of doing things? What even is that difference?
In trying to think through this, I often reflect on the period before I learned React when I was wrapping my head around DOM manipulation. A friend of mine told me I should just skip straight to React; once I learned it, I wasn't going to need DOM manipulation anyway. It was the old way of doing things. But I was determined not to take shortcuts! So, I kept on studying DOM manipulation. Then, once I learned React, it quickly became obvious how right he was. I haven't gone back to DOM manipulation. That's just not how the vast majority of webapps are developed anymore.
There's no universe in which I'd be better off resisting React and still trying to write webapps exclusively using DOM manipulation. I'd be shooting myself in the foot, both making stuff way slower and depriving myself of a marketable skill. I'm increasingly thinking I shouldn't resist using AI as a productivity tool either.
So if that's true: what's the right strategy? How do I use it and stay comfortable that it's truly not shortcut-taking? The strongest diagnostic I've come up with is this: is my AI-driven work meeting common professional expectations for a junior developer, or is it circumventing/violating some of those expectations?
Let's start with the quintessential case of bad AI-coding behavior: building a feature with ChatGPT that works superficially and submitting a PR full of code I didn't write and barely read. The primary sin here isn't that an LLM wrote the code instead of me. The first and foremost issue is that I can't responsibly maintain, enhance, or troubleshoot code that I don't understand -- a fundamental expectation for any merged code. If I submit AI code that meets this expectation, code that I've read, reasoned about, and sanity-checked, I feel much more confident that I'm not shortcutting.
Not every important expectation comes with an obvious "this is gonna piss somebody off / hurt my reputation" alarm bell. For example, seniors rightfully expect juniors to learn and hone their skills as time goes on. I think that expectation can easily be violated when AI coding hinders this process. So it's much less visible, but if your AI coding is hurting your ability to learn...yeah, that might count as shortcutting.
This year I've done my best to develop some strategies to use Claude to speed up my output while still learning as much as possible. I discuss some of those specific strategies in my article about vibe coding, but the big picture here is that smart use of AI doesn't mean you're escaping doing work. It's still work. It's still hard. But AI can accelerate the work and mitigate some of the friction, like that annoying environment issue that's stopping you from even writing the code you sat down to work on. Fixing that was already something you'd outsource to stackoverflow anyway. In the age of AI, you can just outsource it faster.
I'm going to stay a little skeptical of AI. I think there's a lot we stand to lose by using it uncritically, and I'm personally determined not to let myself escape the work. But from our 2026 vantage point, we can see that there's a lot we stand to gain too. The developers who are going to come out on top once we find some kind of "new normal" (if we ever do) will be the ones who use AI thoughtfully, getting the most out of it while being careful to lose the least.