Code Katas are small exercises which can help you to practice coding skills in a safe environment. They are fun little problems with quirky themes that should hold your attention and be enjoyable to work on. I’ve personally been doing code katas for more than 20 years and I still find it fun and useful to solve them. I can practice all kinds of skills like refactoring, simple design, working in small steps and of course trying out different tools and programming languages.
One coding skill these exercises has turned out to be worse than useless for learning, is how to get the best from Gen AI Coding Assistants, Genies and Agentic AI. The trouble is, the Large Language Models (LLMs) behind all those tools behave differently in code katas, so you can’t learn habits or skills that transfer to the kinds of production code you work on normally. The basic problem is code katas are too small and there are too many examples of solutions in the LLM training data.
I still find practicing on code katas is useful though, to train all those other skills I mentioned. For that to be effective though, I like to temporarily turn off the AI tools in my IDE, so I don’t get distracted by them. I thought it would be a good idea to note down what I turn off, and how I do this in JetBrains tools like IntelliJ, Rider and PyCharm. I found it was a bit tricky to find all the settings you need to adjust, so I hope these notes will help others too.
I don’t want to completely uninstall the AI support, since I do use it in other situations. I found it works to selectively turn off just a few parts of it while I work on code katas.
Full Line Completion
This can be really distracting, because it may offer to complete the line with a whole solution to your code kata. If you accept it then you won’t be sure your tests cover all the code that it’s written, and you may be working in a larger step than you’d like to. One of the reasons you do a code kata is to practice taking smaller steps.
AI-Generated Name Suggestions
At some level all code is made of words and it really matters which ones you choose. Often in a code kata you’re practicing naming things well. The AI assistant will generate suggestions based on a whole host of text it finds in your IDE and on the internet. It will come up with rather good suggestions for a code kata, which it may not in real code.
Generate Code with AI Assistant
Similar to Full Line Completion, this setting is where the AI offers to generate a whole code snippet that you can use. Again the problem is it will do more than you need and jump too quickly to a solution you may not have tests for. It might come up with a design in one go, that you’d prefer to develop in small steps. It took me a while to realize these suggestions were being triggered by a keyboard shortcut and weren’t being turned off when I disabled line completion.
How to do this in JetBrains IDEs
Those are the three settings I want to turn off for code katas, in this part I’ll show exactly how to do that in JetBrains IDEs. It’s very similar for all of IntelliJ, Rider and PyCharm, which are the main ones I use. The screenshots below are IntelliJ but hopefully you’ll find equivalent settings in whichever flavour of IDE you’re using.
‘Full Line Completion’ needs turning off for the programming languages you are using in your code kata:

I don’t mind so much if the AI creates a title for any shelved changelists but I don’t want it to suggest names for classes and methods, or complete lines for me while I’m doing a code kata. AI generated name suggestions are controlled in the top-level settings for the AI Assistant. I uncheck ‘Enable cloud completion suggestions’ and ‘Provide AI-generated name suggestions’.

Lastly, I don’t want the AI assistant to generate blocks of code for me. I can usually avoid that just by not pressing on the AI icon and not initiating a chat with the AI assistant. However, it also gets triggered on a keyboard shortcut, which defaults to Tab. I found it useful to re-assign that shortcut to a key I was less likely to press.

Do you see the little yellow highlight showing the tab key next to ‘Generate Code with AI Assistant’? I have subsequently changed it to trigger on > (right angle bracket) instead of tab. I’m less likely to press that without meaning to.
Just to show you what happened before I did this, this is a screenshot of me typing the word ‘create’ in a method call. The popup just above where I’m typing is showing the variables I have declared locally in this class. I’ve just spotted the one I want to use – ‘createWorkingOverlay’ – so I instinctively hit ‘tab’ to select it.

Unfortunately you can see there is also some small grey text on the same line where I’m typing that says ‘Tab to generate with AI’. I didn’t even notice it, so I hit ‘tab’, then unexpected things happen. The AI tool steals the focus and starts generating code, which takes ages, and I found it didn’t even come up with the correct variable name in the end!
What am I still missing?
These are the settings I’m working with at the moment when I do code katas. Perhaps you’ve also experienced that it’s better to turn off AI tools when practicing. Is there anything else that you recommend when doing code katas in modern IDEs? Do join a conversation with me on social media. Also, technical coaches regularly join me for discussions through the Samman Society – this is a link to our next Open Space online meeting. Perhaps I’ll see you there.