Jack Bodine

Using LLMs to Reverse Skill Atrophy

May 2025

Renaissance painting depicting a brewing storm over a landscape.

A couple of weeks ago a blog post titled “Avoiding Skill Atrophy in the Age of AI” blew up online. It warned that over-reliance on LLMs causes the user’s programming (or other) skills to decay over time; a phenomenon a lot of people have been seeing in themselves and others. For months now, I’ve found myself struggling with data science fundamentals: NumPy, pandas, and Matplotlib. These three Python libraries should feel like second nature after years of using them almost daily for my studies and work. Yet around the time I started experimenting with AI-code assistance like Copilot and Cursor, even routine tasks would send me back to documentation I’d once known by heart. I’ve seen this over-reliance in my peers too, sometimes not even knowing how to create any Matplotlib plot at all without having their IDE spit out an AI-generated template for them to edit. This problem, skill decay, is a burgeoning industry-wide crisis affecting professionals, researchers, and students alike, and finding a solution is crucial.

The blog post, written by Addy Osmani, suggests a couple of useful ways to avoid skill atrophy; however all of the methods put forward require limiting one’s own usage of LLMs. One suggestion is not using AI-generated code for the basics, another is keeping track of AI-assists with pen and paper. While these suggestions surely help fight skill atrophy, they are difficult to implement. It is hard to get someone to discard what feels like an efficiency boost. And if they already are noticing skill atrophy, giving up their crutch will feel like a major setback. Instead, I’d like to propose a different solution, one that turns LLMs from the cause of skill atrophy into the solution.

An LLM-Powered Solution

For the past month I’ve been doing automated daily programming warm-up challenges. Generated each day by an LLM and customized to hit all of your weak points. Using ChatGPT’s scheduled tasks feature, every day at 9:30am I get a variety of fundamental Python challenges, taking between 20 and 40 minutes in total. And every day I complete these challenges without any AI assistance. Once I’m done, I give my solutions back to ChatGPT and it assesses what works well and what doesn’t; it gives me feedback and, importantly, remembers what I struggled with for tomorrow’s challenge. This type of personalized challenge and feedback was previously only possible with a private tutor or perhaps an advisor with too much time on their hands.

The image below shows an example set of warm-ups. At first it took me at least half an hour to complete. Now I can do this warm-up in less than 5 minutes!

Example warm-up exercises

I’ve found these warm-ups to be invaluable. They allow me to practice the basics in new ways every day. This helps me solidify libraries through rote memorization. It also starts each day by encouraging me to think about small puzzles which puts me in a good mindset. Also they help to build confidence in different tasks. Many tasks that I previously would’ve turned straight to the AI-Assistance window for, I now feel and know I can do faster than trying to understand and fix some AI-generated lines. They even introduce me to new concepts I’ve never learned about. The feedback I get from the LLM also teaches me more efficient ways of doing basic tasks. Learning can often be difficult and exhausting, but these feel refreshing and energizing.

Tips

I have my challenges set to cover several different pandas, NumPy, Matplotlib and seaborn features each day. And once these concepts have become more developed in my mind, I plan on introducing PyTorch and scikit-learn warm-ups as well. The great thing about this approach is that it’s customizable to the skills you use. I spend every day using these Python libraries, so it makes sense that they are what I should practice, but of course you should tailor your warm-ups to the skills you need to use and perhaps have been offloading to LLMs.

A couple of notes if you want to try this yourself. (1) In my prompt for generating the challenges, I’ve instructed my LLM to not direct me to any specific functions or approaches. For instance, I don’t want the instructions to include ‘Use pandas .rolling(7, centered=True) to compute the rolling average of temperatures in the DataFrame.’ Instead I’d prefer just ‘Calculate the 7-day rolling average for temperatures over the last two weeks.’ There is value in needing to recall functions and design approaches on your own. (2) If you get stuck, ask for the smallest possible hint to get you moving again. I’ve noticed that LLMs try to be as helpful as possible, sometimes even giving me the full solution when I ask for some minor syntax help.

While doing these warm-ups, it’s important that you have auto-suggestions disabled or are using a traditional text editor like Neovim. I used to turn off auto-completions during my warm-ups, but now just keep them off permanently. I had found that writing code during the warm-ups felt the most streamlined. I realized that autocomplete, even the non-AI-powered suggestions, would keep causing me to stop what I was writing to read and evaluate some suggestion, thus taking me out of my flow. It’s much less frustrating and easier to concentrate when you can just type your thoughts without being interrupted. This workflow also helps because when I do need to turn to AI, it’s a conscious effort as I’ve gotten stuck on one particular thing, and thus will be able to learn from the solution. Turning off auto-suggestions naturally encourages the solutions proposed by Osmani in his blog post. And by getting to that point via exercises, it feels more liberating rather than limiting.

Closing Thoughts

Even if you aren’t suffering from skill atrophy or using any AI tools in your workflows, I still recommend you try this out and see what it can teach you. I feel very fortunate that AI-assisted coding and writing tools didn’t come out until after I had finished my undergraduate studies. With the amount of pressure that high school and bachelor’s students face, I don’t blame them for turning to these tools to help them complete coursework. But I am fearful that many will fail to pick up basic skills and will then face immense difficulty trying to move to more difficult concepts. However, as I’ve seen with this process, when done right, LLMs can contribute to your skills rather than take them away.

< Return to blog