Skip to content
Muhammet Şafak
tr
Journal 3 min read

The Changing Craft of Writing Code in the Age of AI

How much of writing code have AI tools taken over, and what is left for the developer? A reflection on the shifting craft.


It has been roughly three years since I first tried an AI coding tool. Back then it was curiosity; today it is an ordinary part of daily work. That span has been long enough to move past the question “do these tools actually work?” and ask something more real: which part of writing code have they taken over, and what remains for the developer?

What has been taken over: production

One thing is clear: the physical production of code has gotten cheaper. Scaffolding a function, writing out a familiar pattern, filling in the repetitive parts of a test — these used to take time; now they do not. I have been doing this job for seventeen years, and I always knew that typing speed was never the real bottleneck. That is now even more obvious.

If a developer’s value was “writing code fast,” that value has eroded. But for me, it was never there to begin with.

What remains: judgment

What has not changed — and has actually grown more important — is reasoning. The tool proposes a solution; deciding whether that solution is the right solution is still the developer’s job. That decision demands three distinct skills:

  • Framing the problem correctly. The tool answers the question you ask; if you ask the wrong question, you get a flawless but useless answer. The real work is in framing the question right.
  • Auditing the output. Generated code can be confidently wrong. Reading it, understanding it, stress-testing edge cases — this skill is more critical now than ever before.
  • Seeing the whole. The tool solves the piece in front of it; seeing how that piece fits into the rest of the system is still a human responsibility.

The shifting craft

So the craft has not disappeared — it has shifted. In the past, mastery meant fluently translating a solution from thought into code. Now mastery means evaluating a solution, quickly rejecting the bad ones, and fitting the good ones into the larger whole. Less “writing,” more “judging.”

There is a danger here: reasoning atrophies when it goes unused. If a junior developer hands off all production to the tool, they may never build the foundation needed to audit the output. That is why I still dig into an unfamiliar topic myself before asking the tool. I use it as an accelerator, not a replacement.

Where the tool looks safest may be where it is most wrong

There is a pattern I have noticed in recent months: the more confident the tool looks, the more carefully I need to watch. Common patterns — a REST endpoint, form validation, a database query — it writes solidly. But if the problem has something distinctive about it, the tool produces a “standard” solution without noticing, and the standard solution answers a question you never asked.

Last month, a suggested currency-conversion function managed decimal precision with float arithmetic. It would have worked fine on small amounts; on large amounts, rounding errors would accumulate and produce incorrect results. The tool had written it in a way that looked safe; catching it required prior experience in that domain.

This points to something essential for keeping the relationship with the tool healthy: maintaining critical distance. No matter how good the tool becomes, validating its output remains the developer’s non-negotiable responsibility. “The tool wrote it, so it must be correct” is the mindset that neutralizes years of experience faster than anything else.

Conclusion

AI has not ended the act of writing code — it has made the valuable part of writing code more visible. That part has always been judgment: deciding what to build, why to build it, and whether it has been built correctly. As production gets cheaper, judgment gets more expensive. That is exactly where I intend to keep investing as a developer.

Tags: #araclar
Share:

Comments

Sign in with your GitHub account to join the discussion. Comments are stored in GitHub Discussions.

Related Posts

Search the site

Start typing to search posts, projects and pages.

Esc to close Powered by Pagefind