Programming Tutorials Are Dead. Now What?
A week ago I wrote Programming Tutorials Are Dead.
Some of the responses pointed out two things I agree with. Developer education was already getting harder to sell before LLMs showed up, and replacing mediocre tutorials with AI slop obviously is not an improvement.
I do not think AI caused every problem in developer education. It did change my workflow though, especially what I do after I learn something. I still read a ton of technical stuff.
What I do after I read something
Section titled “What I do after I read something”I still like books. Reading a book makes me sit with somebody else’s thinking longer than asking a model for the answer, and sometimes that is exactly what I want.
Video is harder for me. I regularly look at a 45-minute technical video and think, “I wish I could know what this person said without spending 45 minutes finding out.”
Same thing with a huge PDF when the part I care about is buried somewhere in the middle.
But the bigger change is what happens when I find something useful.
If an article overlaps with a system I already built, I usually open an agent in that repo and ask:
How close is what I already have to this?
Or:
How would this fit what is already here?
Most technical content still stops right before that.
The author explains the idea, gives me code, maybe includes a sample app, and then I am supposed to carry the rest into my application.
If somebody spent years figuring out where webhook processing goes wrong, which billing state should be local, or why one tenancy setup becomes painful later, I want that knowledge available while the agent is looking at my actual code.
“Read this and use it as context” works, but it feels like we can do better now.
The input matters a lot
Section titled “The input matters a lot”One response to the first article used the idea that average input tends to get average output from an LLM.
Not a hard rule, but it is a useful way to think about it.
Ask an agent:
Add billing to my Rails app.
and it has a bunch of decisions to make for you.
What gets billed? Is Stripe the source of truth for access? What happens when a subscription is past due? What can a webhook change?
The agent is going to answer those questions somehow, whether you noticed they were questions or not.
Now give it material from somebody who has already made those decisions, explains why, points out the bad paths, and says what should still be true when the work is done.
It might be the same model, but now it has a much better starting point.
I do not think cheap code generation makes expert material less useful. If anything, I care more about the decisions behind the code now that generating another version of the code is cheap.
An AI starter kit, a tool around an LLM, or some SaaS wrapping the same models everybody else can use can still be worth paying for if the useful part is the context and workflow somebody put around the model.
A giant prompt full of bullshit still is not expertise. Somebody has to know what should go into it.
Teach me, then give the agent something too
Section titled “Teach me, then give the agent something too”I do not think the person and the coding agent need exactly the same material.
For me, the human side should explain why something is built that way, what the reasonable alternatives are, where it tends to fail, and enough that I can review what gets built.
The agent needs more direct instructions. What should it inspect first? What should it preserve? Where should it not improvise? How do we know the change actually worked?
That is more useful than adding a chatbot next to a course or throwing a “Prompts” chapter at the end.
This is basically how I ended up adding agent companions to Webhooks in Rails and Billing in Rails, and why Rails Baseline ships with so much context for agents. I did not start by deciding those products needed “AI features.” I got annoyed that the useful part kept stopping at “okay, now apply this yourself.”
I am also less worried about perfect first-pass code than I used to be. If the behavior is right, the important boundaries are right, and the tests cover what matters, I can always ask for another pass to clean up an awkward method or make something faster.
I am more worried about the agent quietly making an important product or architecture decision without me noticing.
This gets strange for beginners because an agent can let someone build much farther than they understand. I do not think the answer is making people stop for an architecture quiz before every prompt. Nobody is going to work that way.
People are still going to move fast. The education around that probably needs to do more than teach the part the agent can already execute for them.
I do not need the book to turn into an AI product
Section titled “I do not need the book to turn into an AI product”I would still buy a good technical book.
I would also pay for good agent context if it saves me from rediscovering mistakes somebody else already made.
Sometimes I want to read the whole thing. Sometimes I want an agent to summarize the video, search the PDF, compare the sample code with my app, or apply one part of it to the repo I already have open.
The book or article does not have to turn into some weird AI product. I just want the useful parts of it to keep going after I close the tab.
And if that material is going to help with implementation, it probably cannot freeze forever either. Dependencies change. Framework conventions change. APIs change. The models get better.
Maybe the update is new agent context. Maybe it is a changed recipe or better verification. Maybe it is just saying, “yeah, don’t do it this way anymore.”
I would rather have that than pretend a sample app stays canonical because the video still exists.
So, now what?
Section titled “So, now what?”Anyway, I do not think one thing replaces the tutorial. I still want the article, book, or video.
I also want something that can take the useful parts of that expertise into the codebase with me, help apply it there, and verify what happened.
“I read a good article earlier. Do something like that” feels like a pretty dumb integration layer.