Quick question: how did you learn to code? It probably wasn’t bribing someone a year or two ahead of you in CS to finish all your homework, but that’s exactly what ‘vibe coders’ are doing — even in class. Odds are, you learned by working through exercises, following tutorials, and doing it yourself. Finding good tutorials isn’t getting any easier in the age of LLMs, and that’s where [Deven Jarvis]’s Lathe comes in: it’s a project to get an LLM to make the tutorial for you. Instead of doing the work for you, it gets the clanker to show you how to do it yourself.
Everyone’s different, so this may not apply to you, but it’s a journey/destination sort of problem. Some people just want a piece of software, and they can vibe code until the oceans dry up and will have no interest in this project. Other people take great joy in learning how to do things; [Deven] is one of those. A good tutorial is a great way to learn, since it artificially softens the learning curve compared to just jumping into a project with a man page or a datasheet.
Of course you’re still faced with the hallucination problem, something [Deven] admits in his excellent write-up. As he points out, the advantage is that you can call whatever model you plug into Lathe on its BS, and try and get a correct answer. Try that on Reddit, or most other places online. Sure, the tutorials aren’t going to match the best human-generated content, and [Deven] admits that. He’s using it for topics (like slicer design) that don’t have easy tutorials online — and sadly, his prediction that nobody is going to bother making good learning resources like they used to when they’ll just be scraped by LLMs is very likely true. It’s not that your options are vibe code or vibe-generated tutorial, but if that’s the direction the world is going, we’ll take the tutorial, thanks.
Getting the LLM to hold your hand through a tutorial might not appeal to the most Butlerian among us, but it’s a big step from that to the full cognitive surrender some people worry about.

The best way to better understand something is to teach it. For example if you make a lot of notes and convert those in a list of instructions and/or a cheat sheet you will understand.
I wouldn’t use an LLM to do that for me.
This is the answer.
First you learn the pieces. The. You assemble them so someone else could understand them. Then you see if the assembly makes sense and refine. Then you actually go teach someone else.
This make me a study guide tries to skip all of those steps. What’s sad about it for me is, there is so much free high quality content to learn from online for almost any topic. What good is this knowing it can hallucinate?
I agree.
Trying to explain to others how to use software you wrote can be very enlightening. Using LLMs to make docs or commit messages skips this opportunity to spot your own mistakes.
Documentation has been open-source weak point for a long time. Some do better than others. e.g. BSD, etc.
I agree, but most people can’t jump from “how do I do this” to “let me explain this” without actually going through the step of “do the thing”. A well-written tutorial can be a very good step along that road– but [devin] finds, and I kind of agree, that those are getting harder to find these days. So he’s got a hack that gets him tutorials.
Sounds like a way to quickly mass poison the training data sets that AI tools ingest, yeah, let’s all do this, it cannot fail. Either this was a joke article or i’m autistic and didn’t get the joke?
If I can’t trust the plagiarism blender to extrude code I can trust, what makes you believe that I would trust its teachings?
I’m growing very tired of so much content about AI on Hackaday, especially since a lot of it ranges from useless to offensive, not gonna lie
Ptorne is a notrious ai booster and has a ridiculous online presence. The articles are tailor made to upset people because the boy is a troll
OK, but who is Ptorne? Do you believe that to be an alias of [Deven Jarvis], or the author of the piece?
I love the reference to Erlang as an odd choice because sometimes learning something in an odd way helps you do the mapping yourself
Saw a video yesterday about WhatsApp and BSD+Erlang. Some impressive stuff.
https://youtu.be/Qxft3E-jnKw?t=412
I’ll pass.
It is difficult enough to scrape things together when doing something new, without having to try and filter out bullshit generate by a random text maker.
This is the biggest problem with using LLMs. People all want to tell you how wonderfully well the LLM did in generating a text to explain things, but the people who use the explanations are the least capable of evaluating the generated text.
If you know nothing about, say, how to silver solder stainless steel wire and you ask a chatbot, it will give an answer – quite likely a detailed answer. Since you don’t know how to silver solder, you think the description from the chatbot looks good. You go and get tools and materials, and try to make stuff – and discover that none of what the chatbot told you is actually correct.
People who know don’t know their hats from a hole in the ground are all gushingly enthusiastic about how well chatbots work.
People other people look at the chatbot output and shake their heads at such bullshit.
This can be very true, but you should note that the guy who wrote this program is a professional coder, and is using it to generate learning materials for coding tasks he hasn’t yet mastered– that is, exactly the sort of person who could spot the flaws and make good use of the tool.
‘Professional coder’
That means nothing.
He once got a job coding something, somewhere.
In my experience, about half of ‘working coders’ can’t code.
A much higher % of applicants can’t code.
Best way to learn is by doing. Interest in Radio got me into writing code, first in python with the Yardstick One many many years ago, then C, C++, and golang when building my own radio hardware. The more you do the more you learn and understand. Today I have code in a majority of major radio projects, some are major features, some are bug fixes, and I write financial automation code for a living.
(I also write other tools and utilities as needed outside of radio). Its crazy how once you can write code you can look at things being described in talks, and write an implement if none if publicly available.
In learning C++, I have found “learncpp.com” to be very well-structured. However, I’m not at the point where I can look at a more complex (maybe overly complex) line of code and understand every aspect of it and why it was coded that way. I’m wondering if “lathe” can analyze a program and then be directed to a single line of code where each element and expression is thoroughly explained. This would include how it works, where else in the code it is connected to (with further explanations) and why this coding method was used … possibly offering alternative coding techniques such as simpler, faster, less memory usage, best practices, etc.
Documentation has been a HUGE complaint in the open source community for decades. That’s all I feel I want to say about this.
This reminds me of the most accurate proverb in life:
This that can, do.
Those that can’t, teach.
Those that cant teach, teach the teachers.
Applies to AI as well….
This is the closest I’ve seen for what I want to use AI for, hopping into open source projects without feeling overwhelmed trying to parse the entire structure of their codebase.
Pull the repo, set an AI to looking at it, then have it tell you where the code handles what you want to modify.
Like someone else mentioned documentation can be sorely lacking for many projects. Which makes it more difficult to do even something basic if you don’t know how to actually integrate it with the rest of the software.
Hallucinations would obviously still be an issue but a general hand wave in the correct direction is better than nothing when dropped into a random forest.
That’s what the search function in an editor is for. Search for keywords in the code, read the code and comments, get an understanding of what does what and where, find other keywords, search again, learn the structure of the code.
I just make loops and have surrendered cognitively (at least for building and testing)
I totally agree about the “plageurism blender” comment regarding what AI tutorials can do for you. Love that term. It’s a mish/mash. Like industrial fast food production. Looks good but Low nutritional value. If you really want to learn to code you need to slow down, look at sample code and read the methods and ideas of accomplished system designers and programmers. It’s a method tested through time. I wrote a book ages ago called Programmers at Work and never would have expected, but it’s got newfound relevance during this new software revolution, both for their insights, and the way they approached software development in constraint-driven environments. It will be released in a month by Simon & Schuster/8080 Books.
It’s a lot like programming in that some people have various difficulties trying to put prose together. And an LLM really can put prose together. Can break writer’s block or can produce a rough draft that you can finish, or can polish off your own rough draft. Valid use cases.
But man, inaccurate documentation is the absolute worst. I even like ALSA but i hate that it got popular before anyone wrote any documentation about it and now it’s frickin mature and even old and still there’s no documentation (you wouldn’t believe how many non-documents are out there though, masquerading as such)
i think this sounds reasonable. I have seen things were, you have documentation but it’s just alphabetized list of functions, and it’s physically possible to learn the topic from that but it’s not great. But the LLM can chew on that and put out a turorial. Since tutorials for coding involve writing and testing code you’d find out pretty quick if the tutorial was hallucinated. Don’t get me wrong, I’ve found tutorials or better written documentation in general; but slicing data in Erlang does sound like one of those things were there may not have been a good tutorial around.
i marginally disagree. a list of functions is GREAT if it’s complete and any of the meaning is also provided. though golly i hate “set_speed(int hz); /* sets the speed in hertz */” sort of documentation
but an AI-generated tutorial is absolutely useless because no one tested it and it is wrong.
i mean, you see my sleight of hand..you say it’s easy to tell if the tutorial is wrong so obviously someone will test it before publishing it. i’m saying, it’s AI generated so obviously no one tested it before shipping it. sigh.
but that’s where we’re at, just like a frosty flakes commercial “part of a balanced breakfast” showing a photo with a glass of orange juice and some sausage and a small salad. the thing is, the sort of person who eats a salad with their breakfast isn’t ever going to eat frosty flakes, and vice versa. i really do agree with you, in principle AI could write the tutorial and then your subject matter expert could proofread it but in practice i’m just not convinced that’s gonna happen enough times to justify writing about it