← Writing

On: Skill atrophy due to over-reliance on AI

On deskilling, tacit knowledge, and why handing too much coding to LLMs can leave you with working software you no longer inhabit.

LinkedIn post by Will Wilson on accountability, deskilling, and tacit knowledge lost to AI coding
Accountability, deskilling, and tacit knowledge

The second and third points in this post fully describe my current disposition to AI-assisted (read that as LLM-assisted) coding. While I’ve increasingly used it over the past 12 months, I’ve found myself getting even more wary of handing off coding tasks because of the seeming erosion of knowledge.

Yes, getting things done requires knowing what you need and how to instruct or guide the agent and consistent practice has resulted in me being able to one-shot development objectives which leads to shorter turnaround times. The con is, I come away feeling like I robbed myself the opportunity to craft the solutions myself. More often than not, my development approach before AI was to draft a solution, implement it and iterate upon it - giving me multiple opportunities to improve my knowledge and grasp of the problem space. When I instruct AI to do things, sure, I’d review the output and more often than not, it produces code that works but I miss out on the iterative process (learning what works and what doesn’t; figuring out the why behind different solutions).

I’ve got two personal hobby projects (of fairly the same size) that I’ve been working on for the past 12 months. One is fully handwritten and if I’m woken up in the middle of the night and presented with an issue, I know exactly where things might have gone wrong because I know that codebase intimately and I have a well mapped out mental graph of the different execution paths. For the second project, I’ve essentially taken the role of a product manager - describing what I want and verifying expected behaviour via extensive test suites. By reviewing the tests, I know that the system behaves exactly as I need it to and edge-cases are covered but looking into the codebase itself, it would take me a considerable amount of time to get things done if I wanted to make any tweaks and that’s because while the code is functionally correct, it’s conceptually alien.

Some would say it’s a skill issue (and I won’t even debate that because I’ve written more complex systems in the past) but I’ll argue the opposite. If I’ve decided not to exercise my skill of creating solutions in code, it’s a natural progression to expect that skill to atrophy and that’s my main issue.

My two cents.

Contact Download resume