What about having an LLM teach you to code?
My daughter (11) is doing a week long Python class, which is not using LLMs.
It got me thinking about how I learned to program in the pre-internet days (laboriously, from books), and then what a marvel it was when you could just search for information, especially for troubleshooting. But for her, the first answer in the Google search is going to be the AI summary, and most of her search tools are going to be AI tools.
I wonder if it would be possible to make an LLM that has a didactic/socratic mode. So if you said, "help me write a program to do madlibs" maybe it would give you a skeleton of a function, then prompt you to come to with a plan, then critique that plan. Or if you said, "I'm getting this error", it wouldn't just fix it, it would explain what the error means and nudge you towards the answer.
Thinking in a larger sense, it could have a rubric of important concepts, even tiers of understanding. It could be using the interactions to track the user's understanding, which could let it then tune how it answers future questions, or even be used to customize assignments.
I recognize that this is potentially replacing a teacher with a machine, which wouldn't be my goal. Good teachers are more holistic in their teaching than a machine is ever likely to be. But for people who don't have access to good teachers, or need more directed support than is available from a teacher, or just want to self study, it seems like it could be a valuable addition.
Until they solve the obsequiousness problem, it would be vulnerable to prompt hacking, so really more of a tool for someone who recognizes the value of learning over just being given the answer.
What do folks think about using such a tool? What would you want it to do, or not do?
Aside: I forgot until I reached the end of this post, but this is also (somewhat) the plot of The Diamond Age, or A Young Lady's Illustrates Primer by Neal Stephenson.
Certainly. You can accomplish most of this with a good system prompt. This is obviously more advanced than would be ideal for an eleven year old, but see Stanford's Agent Guidelines for an idea of where to start.
I don't think a new tool is strictly needed here. You can plug this into any available model through an interface like LM Studio. Or if that UI is too complicated, it can be run as a server and a simpler frontend could sit in front of it.
That said, with much more effort, one could likely write a specific coding teacher tool that examines a student's work and gently corrects or nudges them in the right direction, fully integrated into the IDE. I'm not aware of one that exists yet, but it seems easier than ever to prompt one into existence with a few magic words...
You can go the other way, where you just elimate Googles AI summary. There's a few ways of doing this, like so: https://tenbluelinks.org/
Or using an addon to tack udm=14 to Google searches, which handles the case of people manually visiting Google before search (the former just deals with when you use the omni bar to search).
Gemini, at least, has an explicit teaching mode that works pretty well. I used it for months to study something in detail, in conjunction with real-life study. Pretty similar to what your daughter is looking at, actually.
It's not perfect, of course. You pointed out the social issue - the obsequiousness. Mostly, for me, that manifested as it being like "you've made so much progress this session!" when I knew I hadn't - not an issue so much with the actual lessons, which were generally excellent. (After a lot of prompting work getting it to stop being like "what an insightful question!", that is.) And of course human teachers are also often overgenerous with praise and unwilling to correct you when you're wrong. I do worry a bit about the effect of large amounts of a AI-style flattery on a developing mind, though. If both bad ideas and insightful ideas get called insightful, you'll never learn to distinguish between them. I would want to edit the system context pretty heavily before I let a preteen spend significant time with it.
The other critical issue is the fact that models don't remember anything. They can't really remember where you are, what you've done, etc., even if you use a model with "memory." This is a much bigger challenge that doesn't present itself with humans. You can sort of get around this by having it make you a lesson plan, then giving it back its own plan later and being like "I'm on day 12," but that's pretty clunky in practice. For that reason, models work fantastically to explain specific concepts and answer specific questions, but it's better to have something already prepared that you want to talk over. Again, the concept of man-machine teaming works quite well here.
I'm in favor of the idea, all considered. I'd just proceed carefully and give as much supervision as possible.
I've been using it to learn a new programming language. Ban it from writing code for you and even generating easy copy/paste solutions. All of it can be bypassed with enough effort but definitely can be a tool worth using.
I have basically been doing this for myself off and on to learn Python. I have a simple project I’m working on where I’ve broken an application down into features and functions and have been using a combination of Cursor and Claude to write the code and explain it back to me as a study aid.
It helps that I already have some basic understanding of python, sql, and JavaScript so I have something to build off of already though.
I have some experience teaching coding (c2004). Back then the problem we had the most difficulty solving was finding something people wanted to code. That's is: the best students brought their own problems they wanted code to solve. It was a problem of motivation rather than tools or educational materials.
I do think LLM can be a good teacher.. if this is a hobby-project you're on a good track. If you want to build a business you'll need some primary research on customer-problem fit. LLMs cannot do that.