Kyle Chui's Blog

AI is making me dumber. Should I care?

As someone that is relatively new to software engineering1, I often worry that my mind will atrophy the more AI assists me in writing programs. There is no doubt in my mind that AI is already better than me at a large swath of programming tasks, and will only get better as time goes on. The current situation feels like I'm "damned if I do, damned if I don't"---if I use LLMs to write all my code for me, then I might understand less about the systems and technologies I work with; if I don't leverage these tools, then I risk falling behind my peers that do. So that begs the question:

How much should I use AI to help me write programs?

Tools make you dumber

As the adage goes, "use it or lose it". Tools have always made people more productive, at the cost of the specific skill that is being automated away. For example, my memory is a lot worse now when compared to a decade ago. When I was a kid, without convenient access to electronics, I would remember all sorts of things---phone numbers, library card numbers, and even license plates. Nowadays, with contact books in my phone and autofill in the browser, I can't even recall my own credit card information.

In the software world, I think of tools as falling on a gradient from least to most helpful, where the more capable a tool is, the greater the cognitive cost. For example, in the "less helpful, less bad for my brain" end of the spectrum, editor autocomplete makes me a little faster at authoring code. However, I might think less about the names of my variables and functions, leading to code that is less readable and maintainable2. If autocomplete can just figure it out for me, then why not just name all my variables a jumbled mess of keywords, instead of putting effort into thinking of a minimal descriptor?

Moving towards the "more capable, more bad for my brain" end of the spectrum, the internet has been a huge boon for my productivity, allowing me to find all sorts of documentation and syntax without needing to invest large swaths of time and energy trying to remember it all. However, this reliance on documentation also means that I can't easily write medium-sized programs unassisted anymore.

I see AI tooling as the next step in this capability spectrum. It lets me give a rough, high-level overview of what I would like to have, and it does most of the heavy-lifting for me. Even more so than with the internet, my mental skills to structure and organize small pieces of code are atrophying. This can be particularly bad for new technologies that I am not accustomed to, because I have not yet acquired the taste to determine if the model's output is good.

Tools lift the ceiling of your ability

I don't think that becoming dumber is inherently a bad thing. While tools make you selectively worse in some areas, they also provide two great benefits.

First, by assisting with or automating away lower-level tasks, tools free up your mind to focus on higher-level, more effortful tasks. Instead of racking my brain for the correct CLI flags and arguments for ast-grep, I can focus on the higher-level purpose and design of the script.

Second, it decreases the overall activation energy needed to perform a given task. People get tired, distracted, or just have bad days. If the tool makes a task easier, then all of a sudden it becomes possible to perform the same task in more contexts. For example, I can kick off a coding agent to do some basic task at the end of the day, when I may have already exhausted my mental capacity. Even if I learn half as much when working on each task, I may be able to attempt more than twice as many tasks in the first place, yielding a net benefit.

So how should I balance the productivity boost gained from these tools against the skill atrophy that using them incurs?

Using tools with intent

I've taken to asking myself how much I care about the specific skill that is atrophying, and comparing the cost to what I am getting out of leveraging these tools. When I was recently updating some documentation, I fed everything into an LLM and had it look for inconsistencies and ambiguities in my writing. I don't care much for the mechanical skill of trawling through hundreds of lines of text, keeping in mind if the topics have been introduced in the correct order, or if there are subtle formatting mistakes. In this case, tool use decreases the barrier to entry for improving my documentation, allowing me to cheaply sanity-check it when I otherwise would not. However I wouldn't want to let it write all of my documentation for me3, since I care about the skill of thinking about things from the user's perspective, and trying to provide a good user experience.

Similarly, I'm still quite wary of using LLMs to write features for me from start to finish, because I don't consider myself good enough at programming to justify weakening that skill. On occasion I've found it quite helpful at making a series of mechanical changes throughout a codebase, especially if I can visualize the end result beforehand (i.e. navigating files and typing is the bottleneck for accomplishing the task).

I've heard others describe this as using tools with intent. Clarifying the purpose of a task helps me figure out what to do, e.g.:

To answer the initial question, I think that I will continue to be wary of using AI to complete tasks start to finish, until I am more confident in my own abilities. It's an amazing tool that can be used to accelerate learning and development, but also an evil temptation that can rob me of opportunities to grow. It's become apparent to me that being thoughtful about how I approach my work is more valuable than ever before, and I hope to keep re-evaluating as time goes on, instead of Delivering Shareholder Value:tm: at all costs.


Thanks to Ryan and Jishnu for reading an early draft of this.

  1. At the time of writing, I have just shy of 2 years of professional work experience, and have not invested that much more time into working on personal projects.

  2. Yes, this is a bit contrived. But I do think that it is true, even if only marginally so.

  3. This also depends on time constraints, since having some documentation is typically a lot better than having none at all.