top | item 45540313

"Vibe code hell" has replaced "tutorial hell" in coding education

283 points| wagslane | 4 months ago |blog.boot.dev

161 comments

order

gota|4 months ago

Minor part of the article, but the thing about "tutorial Hell" is very true:

> Students would watch (or fall asleep to) 6-hour videos, code along in their own editors, feel like they got it, and then freeze up the moment they had to write anything from scratch. Classic tutorial hell.

This is why, across history, the tried and true method of learning a craft is an apprenticeship. You, the junior, tag along a senior. You work under a shop that is led by a senior-senior that is called a master. Apprentices become craftsmen, craftsmen become masters. AFAIK, the master does not 'offload' project guidance into non-craftsmen, it is an expected part of the craftsmen role to be project/product managers/owners.

I've said this a million times to close friends and at this point I'm only half joking. We, and I'm including myself in the 'developer' crowd although I may not deserve it, have really dropped the ball in not being a 'guild' since way back when. At least since the late 1980's; and certainly since before the Original Boom of software dev as a profession (I'm assuming it was late 90's? I know not)

(Although I suspect that if that were the case we'd have fewer developers throughout the 00s and 10s, which may have impacted the development of the field itself in unexpected, but likely negative, ways)

majormajor|4 months ago

Creating new projects from scratch can trip up even experienced professional developers because in most jobs you come in, work an existing codebase, and iterate. Even if you need a new service or app, you often start with a copy-paste or a common template. When the team needs something more new, usually there's just one person who sets that up. Setting up the whole project from scratch and making all the 0-to-1 choices is much less common.

An apprentice model doesn't really change that. Your average electrician gets called to many more "here's new construction that we're wiring from scratch" jobs than your average corporate engineer gets "we need to set up a new project from scratch without copying any of our existing files or folders."

hintymad|4 months ago

> This is why, across history, the tried and true method of learning a craft is an apprenticeship.

And in our modern world, universities are still the best place for such apprenticeship. Not the ones per Mark Trevor's words (https://marktarver.com/professor.html), of course, but a self-respecting university will train their students with progressively challenging and practical assignments. We started with implementing simple data structures and algorithms and solving simple puzzles all the way to implementing toy OSes, databases, persistent data structures, compilers, CPUs, discrete simulations, machine learning models. We started with implementing functions and individual components and quicly to building things from scratch. I'm forever grateful to the training I received in my univerity.

vulk|4 months ago

I use LLMs for teaching me how code exactly like that, I am the apprentice and the LLM move forward only If I say so, it does only explaining and teaching I do the writing. I much prefer it than looking for the next course or tutorial. The tutorial hell is mainly a problem of the people who decided that they can be teachers. From the countless books and courses I have purchased nothing actually teaches you anything, the whole model of teaching someone how to code is completely wrong in my opinion. At this point it is just plain frustration I rather prefer to tell the LLM to look for the latest documentation of a language or just go and look the documentation myself, a library, or whatever, and come up with a plan from it. My only gripe is that I am not sure if the LLM hallucinates and it is actually looking at the thing I pointed to or just spits the things that It was pre-trained on.

Scotrix|4 months ago

+1 I dropped school relatively early (I was extremely bored and the way of education was certainly somewhere close from the Stone Age times). I did an apprenticeship as software engineer with some (extremely useless) school component. Most of the time in the late 90ties was trial and error, for me, the master and the master of masters. Playing around with Linux and make it ISDN routers with servers for websites built in HTML, Perl, PHP. This was devops (before it got hyped) and real engineering by figuring stuff out with almost no documentation, a lot of crazy creativity and push the boundaries of what’s possible. And it reminds me just a little like today’s world with AI and vibe coding just on a complete different level and with significant more pressure…fun times :-).

lispisok|4 months ago

Tech has the issue where any sort of gatekeeping is seen as bad because people in the field have so much hubris they think they can never be replaced and there has been a coordinated effort by capital to flood the field with labor to drive salaries down. You could go further and say the complete lack of professional standards is why we have this leetcode humiliation ritual interview process which has nothing to do with the actual job has become the gatekeeper.

rhetocj23|4 months ago

You learn by doing and thinking.

Not reading and watching.

Pure and simple.

abnercoimbre|4 months ago

A bit of a shameless plug: join a coding community [0] putting in-person meetups above online interactions [1]. It doesn't have to be ours, just any group of developers invested in the idea of craftsmanship. This may not solve your concerns directly but it's a step in the right direction.

From where I stand, we're never going to find what you want in the workplace for reasons which predate LLMs: job hopping, remote/hybrid work, incurious managers etc.

[0] https://handmadecities.com/meetups

[1] https://abner.page/post/exit-the-feed/

palata|4 months ago

> This is why, across history, the tried and true method of learning a craft is an apprenticeship.

I would argue that, across history, the tried and true method of learning a craft is access to knowledge.

It used to be that you had to sit next to a master to access the knowledge of the master. Now in many fields, you can just find it on the internet and learn at home, at your pace.

Everyone is different, what's best for you may not be what's best for me. But what is absolutely necessary is access to knowledge.

pfortuny|4 months ago

Actually, even before apprenticeship comes drilling. Repeat, repeat, repeat.

deadbabe|4 months ago

My problem with apprenticeship is that my workflow simply isn’t optimized for performative demonstration. It’s messy, haphazard, and a junior would have to sit around watching me do a whole lot of nothing at times. I don’t want to teach, I want to get work done.

Juniors need to just accept they will have to learn the hard way, on their own, asking occasional questions and looking at tutorials until stuff sticks.

nvarsj|4 months ago

Uncle Bob has been saying this for decades.

But - I'm not really sure it's necessary in software. The skillset can be entirely self taught if you're intelligent enough. There are an abundance of resources and all it requires is a terminal. Good software engineering principles can be covered in a 200 page book.

You can't say the same for trades like plumber, electrician, etc. which still use apprenticeships.

watwut|4 months ago

I am honestly very glad there was nothing like that when I was young. I could learn by doing things, reading things and maybe messing up and fixing after myself.

I also do not think history shows that was the most effective. That is how it was done when it was the only option.

littlecranky67|4 months ago

> This is why, across history, the tried and true method of learning a craft is an apprenticeship.

Citation needed - at least for anything software development. Every single respectable software dev I met around my age bracket or older (40+), was self-taught. Mostly because in the 80s or 90s there wasn't much opportunity. But computers shipped with handbooks how to program them, at that time.

travisgriggs|4 months ago

Disclaimer: I use Zed Pro and GPT daily to code. I have been coding for money since 1989.

I view the rise of these tools and particularly efficacy in programming as an indictment against modern programming. The modern web is both amazing and horrific. If bureaucratic is "using or connected with many complicated rules and ways of doing things" (Britannica), then modern programming may be the ultimate poster child. Sure, we love to slap this on "civil institutions", but the fact that I need an automaton, answers based on probability, to guide me in how to navigate doing some of the simplest things, is pretty sad (IMO).

I used to counsel aspiring new programmers, "It's not about knowing a certain language or framework. Your single most important asset will be an aptitude to constantly keep relearning. Some trends will stand out along the way, but you'll never quit learning new tools and languages".

Maybe it's just my age, but it feels like we've overflowed at some point.

Early programming was too electrical, too mathematical, so pioneers sought to close the gap between coding and human think. And yet, after years of speculative funding, what we're left with, is a whole different set of problems.

jmhmd|4 months ago

I agree with this sentiment. I have always wished, maybe naively, for the type of computing environment that makes possible things you see in sci-fi movies and shows, where someone can simple "route all power to the forward lazers!" or "use the power cells from your rifle to keep life support systems online!" This imaginary world where technological components are trivially interchangeable, compatible, reusable. My impression is that if you even asked a smartphone hardware engineer to replace a broken iPhone camera with a leftover working camera from an Android phone that, at best it would be an extraordinarily difficult task, and at worst, just may not be possible.

jrowen|4 months ago

I'm not entirely sure what you're saying. That usage of bureaucratic seems strange. I think your counsel is more true than ever. Moving forward, search is the meta-skill. The information is readily available, you can do anything if you know how to find it.

The automaton is not categorically different from the book or the teacher.

The fact that some number of people aren't adept at these things is an invariant of human nature, don't blame the tools getting better.

jncfhnb|4 months ago

A non trivial problem is that documentation is difficult to write, search, and read. And that makes learning hard. Whereas AI makes learning easy. I’m fairly frequently impressed at how well it understands unreal engine.

heisenbit|4 months ago

A lot what has been heaped upon us is accidental complexity in Brook‘s silber bullet sense. LLM‘s cut straight through it, collapsing the silos of knowledge (and eco systems) build around languages and frameworks.

simultsop|4 months ago

A few more speculative years, there will be no programming left.

whatever1|4 months ago

Organizations now generate 10x the amount of code, because everyone can do it.

But we have exactly the same number of reviewers. How the heck are we gonna deal with it when we cannot use LLMs for sanity checking LLM code?

Like literally yesterday I had a not-technical person who used codex to build an optimization algorithm, and due to the momentum it gained I was asked to “fix the rough edges and help with scaling”.

The entire thing was trash (was trying to do naive search in a combinatorial problem with 1000s of integers, and was violating constraints with high probability, including the integrality). I had to spend all my day reviewing it and make a technical presentation to their leadership that it is just a polished turd.

crazygringo|4 months ago

> How the heck are we gonna deal with it when we cannot use LLMs for sanity checking LLM code?

Unit testing. LLM's are very good at writing tests and writing code that is testable (as long as you ask it), and if you just check that the tests are actually calling the code and doing so with all the obvious edge cases and that the results are correct, that's actually quite fast to review -- faster than reviewing the code.

And you can include things like performance testing in tests as well.

We're moving to a world where we work with definitions and tests and are less concerned with the precise details of how code is written within functions. Which is a big shift in mindset.

noosphr|4 months ago

The same way that we dealt with Excel programming. Ignore it until it blows up, then spend hundreds of thousands trying to fix it before the company goes bankrupt.

jasonthorsness|4 months ago

"But we have exactly the same number of reviewers."

LLMs can help with reviews as well. LLMs are not too bad at reviewing code; GPT 5 for example can find off-by-one, missed returns, all sorts of problems that are localized. I think they have a harder time with issues requiring a higher-level global understanding. I wonder if in the future you could fine-tune an LLM on a big codebase (maybe nightly or something) and it could be the first-level reviewer for all changes to that codebase.

Jianghong94|4 months ago

OR problems are hard because whoever try to vibe coding it probably don't realize they fall into a specific algorithm and can prompt llm to do thatl; what's worse is that even if you tell them so they won't be able to understand the math behind it and would much prefer their vide coding solution.

A4ET8a8uTh0_v2|4 months ago

<< and make a technical presentation to their leadership

Honestly, this may be the only way to go about it.

LPisGood|4 months ago

The problem can probably almost certainly be solved to provable optimality using HiGHS or even CBC - the open source Python package PuLP comes with CBC.

If you want to be seen as the hero who solves things instead of the realist who says why other solutions won’t work, this could be worth exploring.

lezojeda|4 months ago

It's basically a scheme letting less scrupulous people offload work on others while at the same time making good impressions to manager, PMs and CEOs who want to automate our job and fire us.

adlpz|4 months ago

I thought this was going to be yet another post about how AI is ruining Junior devs so we'll have a Senior replacement crysis in a few years.

It sort of is, indirectly, and I agree with pretty much everything.

But the bit about sycophancy was particularly enlightening. I actually thought "plain" ChatGPT-like interfaces could be good for learning. But the Youtube ROAS example is really powerful. If the student can skew the teacher's conclusions so much just by the way they phrase their questions/answers, we're going to mislead new programmers en masse.

I'm not even sure that the extensive prompting they say they use for their "Boots" is good enough.

I guess in the age of AI you still need someone to repeatedly reject your pull requests until you learn. And AI won't be that someone, at least for now.

A4ET8a8uTh0_v2|4 months ago

I think I agree. From personal experience, even when I ask for scathing critique, the need to placate and make me feel better seems to bleed through ( both on 4o and 5 as far as I could tell ). I am not sure what to make of it.

We go back to this original prediction that the tool will help those, who both want help and are painfully aware of LLMs peculiar issues.

1718627440|4 months ago

> But the bit about sycophancy was particularly enlightening.

I always try to stay above this by prompting the question twice, with the opposite biases. But I of course don't know, which hidden biases I have that the LLM still reinforces.

jasonthorsness|4 months ago

> Don’t use: > AI auto-complete in your editor > Agent mode or agentic tools for your educational projects

While I am not learning "coding" as a beginner anymore, I am constantly learning new frameworks, language features, algorithms etc. as is the norm in the industry, and I disagree it's bad to use AI auto-complete. Pre-AI IntelliSense-style autocomplete from Visual Studio or ReSharper makes learning new libraries and language features much easier. ReSharper for example will suggest taking advantage of new language features when you write something an older way, and many times this was my introduction to that new feature.

The new AI-based autocomplete can be even better; it demonstrates one way to do something and regardless of whether you use it or not, you can learn from it. You have to be curious enough to actually read what it is doing, but if you lack that curiosity it isn't AI's fault (before AI this was just "copy-pasting from Stack Overflow").

GuB-42|4 months ago

The advantage of traditional auto-complete over AI is that it will typically list everything that fits: all methods, all variables and constants in scope, etc... It can even fetch the documentation if available. It is great for learning because it tells you all your options without deciding for you.

AI autocomplete essentially searches stackoverflow for you and pastes the first answer without context, adjusting it to match your code. If you are learning, just do the stackoverflow search yourself, or prompt you favorite chatbot if you insist on using AI, so you can have at least some explanation about why it is done like this.

wagslane|4 months ago

Yeah I think there's some nuance. As a relatively experienced dev I still use autocomplete when using a new language, but I think it's different when you already have a strong grasp of coding fundamentals. Learning your 3rd or fourth language when you already understand the constructs is much different than baby's first for loop

vpShane|4 months ago

100%. I enjoy AI Agentic programming because I make new things to tinker with and/or try out ideas. I'm not trying to code to push to some production, and I'm not worried about what others think of my code.

I want to be able to say I've tried and done things when speaking with highly technical people. I've been a 'programmer' since I was 10, I'm 35 now but never joined the work force as a programmer; I don't know why, but now that AI is here, the love for coding, tinkering, making system level things, trying things like WASM which may be the future of our www; these all give me that joy. I found my limitations as a programmer and excelled because I have different skillsets.

I love learning that doing something MY way is a good idea, but has been thought of and some amazing programmer already built the ground-work for it.

My Cursor AI agent even setup git for me for my projects so I can easily push with my SSH keys: do I know I can do that myself? Yes. Do I want to? no.

> ReSharper for example will suggest taking advantage of new language features when you write something an older way, and many times this was my introduction to that new feature.

That's actually news to me and sounds amazing. I started coding with C syntax when I was young. You learn habits then, it sticks with you.

I'm since enjoying python for backend things, flask for little webserver stuff and javascript for front-end things.

WASM Python ain't there yet, but I _love_ tinkering. I _love_ finding bugs. I _love_ poking and prodding at how things work. I'm almost always re-inventing the wheel with concepts but you know what? At least it's mine and I can tinker and learn.

Some of us enjoy the craft as a hobby and learning. Even within my teams some are more sophisticated tech wise than I am; to get on their level remotely requires me to tinker.

Often times, I find a solution for my problems that were the most simple; engineering minds like to overcomplicate things.

stavros|4 months ago

Very much agree. AI autocomplete is the best thing ever, because it spares you from having to read the docs but it's few enough lines that you can review and make sure it does what you intended.

It won't write big chunks, so it won't hinder your learning.

scott_w|4 months ago

I'm biased as I've not been a beginner dev for nearly 20 years, however I have found Copilot is pretty helpful for is learning Rust. In combination with Intellisense, it helps ease some of the mental overhead of the syntax, letting me focus on learning the important bits of the language. It helped me go from opening up a book on Rust to having a working tool in about a week.

I won't pretend that it's turned me into a senior engineer, of course, but it's definitely gotten me over the 0 to 1 problem much quicker than I think I could have without it nudging my code in the right direction.

For what it's worth, I don't ask Copilot to write the code, I just use it as an advanced auto-complete, reading the suggestion to see if I agree with it before hitting tab.

adlpz|4 months ago

I think it's become a running theme: senior devs who have been coding for a while now are able to extract value from these tools because, even if you don't know Rust, you know how to code.

BS code smells the same in any language.

Beginner devs don't even know what smelling means.

f311a|4 months ago

I thought the same until I tried coding things manually in Rust. It was so hard to write Rust without any assistance. I turned off AI to learn things properly. It was an illusion that I know what I'm doing until I disabled AI.

theobeers|4 months ago

“If AI doesn’t literally take all the white-collar jobs over the next few years, we won’t just have a stock market bubble to deal with. We’ll have a drought of educated workers.”

Indeed. For me this feels like an “I saw the best minds of my generation” moment.

viccis|4 months ago

This is true of lots of educational shortcuts. I've noticed students misusing college tutors. They have the tutors do their homework and explain it, then they think they're good to go and ready for the exam. Problem is that any solution seems obvious after it's explained, but to have to come up with it yourself is a separate skill than simply understanding it.

dang|4 months ago

I tried to find a representative phrase in the article that would make a good replacement for the baity title*, but I didn't find one, so I did a best guess. If anyone can suggest a better (i.e. accurate and neutral) title, we can change it again.

* in keeping with https://news.ycombinator.com/newsguidelines.html: "Please use the original title, unless it is misleading or linkbait."

black3r|4 months ago

While I agree with the premise that "vibe code hell" has replaced "tutorial hell", they are very much not the same. To expand on that, let's start with the fact, that a good coder needs both "skill" and "knowledge".

Tutorials (at least the good ones) give you some knowledge - the tutorial often explains why they do what they do and how they do it, but don't give you any skill, you just follow what other people do, you don't learn how to build stuff on your own.

Vibe coding on the other hand gives you some skill - how to build stuff with AI, but don't give you necessary coding knowledge - the AI does all the decisions for you and doesn't explain why it did what it did, or how it did it, it just does it for you.

"I can't do anything without Cursor's help" is not really the problem. The problem is that vibe coders create some stuff and they don't understand how that stuff works. And I believe this is much bigger problem than knowing how stuff works but not knowing how to use it.

Learning doesn't need to be "uncomfortable". Learning needs to be "challenging". There is a difference. The suggested approach here vaguely reminds me of the "you must first learn how to code in a notepad before using an IDE" approach.

While the real takeaway should be "you must first learn how to learn, before properly learning something". To learn something properly, you need 2 things: To know what to learn, and to know when you've learned it. To know what to learn you need a curriculum - this obviously depends on your specialization for coders, and can be more crude or more detailed, but you still need something to follow so that you can track your progress. "When you've learned it" for coders is when you can explain what some code does to a colleague and answer questions about said code. It doesn't matter if you wrote it, or someone else wrote it, or an AI wrote it. Understanding code you didn't write is even more important than understanding your own code.

Waterluvian|4 months ago

> feel like they got it, and then freeze up the moment they had to write anything from scratch.

I had a deep rooted emotional response to this. One of the most gruelling and somewhat distressing experiences of learning to program was going through a tutorial, kind of getting it, then trying to make my own spin of the same idea and getting completely stuck.

But I’m also convinced that this gruelling process was the highest density learning I’ve ever done. I’ve learned much more since then, and a lot of considerably more complex things. But I’ve never matched the same density of learning.

The closest was probably high school math. That deeply uncomfortable “this hurts my brain and is stressing me out” feeling that I suspect isn’t normal for everyone.

om22shree|4 months ago

read through the article, pretty much agree with everything you have said ... there are certain skills that AI can't even hope to teach or solve especially in the field of DevOps/Cloud ... too often it recommends the more expensive answer out of the box simply because its the most popular.

Its trained on masses ... well, unfortunately, masses are wasting a lot of dough

paxys|4 months ago

Agree with everything in the article, but this isn't a new phenomenon. As long as I can remember (20 years, probably longer), for every student or professional who is seriously and diligently learning to code there are many orders of magnitude more who are simply there to take shortcuts and pad their resume. Vibe coding is just the latest iteration of this. This is why CS programs have such low graduation rates. This is why coding bootcamps don't produce many industry-ready engineers. Coding is hard, and the salaries of software engineers, even in the AI age, reflects this.

alexchantavy|4 months ago

> They’re doing sweet battle with bots that are more interested in getting their newly-generated test suite to pass than solving the user’s problem in the simplest way possible.

Makes having good tests even more important. One technique I've found super helpful for coding with agents is to make the agent do TDD.

Basically ask the agent to come up with the test cases first, manually review those to make sure they make sense, then have the agent game itself to write code to pass the tests. I feel like doing TDD on my own manually is very tedious but having it be AI-assisted helps me move a lot faster.

SoftTalker|4 months ago

When I was a beginner in school we got "hello world" as an example, and were on our own from there.

Of course things were much simpler. You had an editor, and a compiler that you ran from the command line. At some point you would learn about Makefiles, but not before you would appreciate their value.

And there was no CI, no source control, no IDEs, no TDD frameworks.

I can see that throwing a brand new developer into something like Visual Studio would be overwhelming. Even I find it overwhelming after three decades. I still use emacs and a shell.

0x457|4 months ago

Tutorial hell...if I had a dollar for every "Anyone has a tutorial on how to build X" where X is some very specific business idea.

I feel the same about "what books do you recommend reading to learn Y" Have you tried looking at the online documentation?

Usually see it from people that have formal CS education. They learned one way to learn things and refuse to adapt to real life.

Muvasa|4 months ago

Documentation is not meant for learning. It's to be used as a reference. It's like learning medicine by reading a medical dictionary.

dehrmann|4 months ago

> "I don’t understand the docs, anyone have a video?"

As an experienced dev, I hate this trend. I don't need my hand held for 10 minutes; I need to see three specific lines of config that may or may not be somewhere in the video.

havefunbesafe|4 months ago

I think this is similar for anyone who reads a lot of documentation: A 90 minute video explaining documentation and quickstarts can usually be read in 30 minutes and you don't have to constantly pause/restart/rewind.

SoftTalker|4 months ago

A video can be helpful to me in some cases. Demonstrating how to set up a project or run a utility that scaffolds something. Or even some basic coding idioms. But these should be focused and short, i.e. 5-10 minutes. Show one thing, maybe a couple of examples of common scenarios, and that's it.

groos|4 months ago

'Learning must be uncomfortable' - this is the key reason there are some professions which pay more than others. Some people are willing to bear the mental discomfort while others aren't. A lot of people are far more willing to bear physical discomfort but that's almost never monetarily rewarded.

kazinator|4 months ago

> We’ll have a drought of educated workers.

That's scary, because you cannot escape from the repercussions just by not being one of the dummies who relinquished all learning to AI.

You depend on being surrounded by other people who know what they are doing. And not just immediately surrounded, but in a broader scope.

skovranek|4 months ago

"Learning must be uncomfortable."

Critical thinking is hard.

password54321|4 months ago

People just don't want to face the uncomfortable truth that they are probably not as smart as they want to believe they are.

dude250711|4 months ago

Also, not aligned with modern society, since you kind of need free speech for that.

0xbadcafebee|4 months ago

I commend all the ideas the author has here about better education. I agree it's a big problem. But perhaps the biggest problem is the idea of one curriculum.

I grew up with a learning disability. I was extremely curious and able to hyper-focus on learning, but only when I found it interesting or easy to pick up and run with ideas. Other kids didn't have the same problem as me, so they excelled while I dragged behind. What I learned (after attending 5 schools in 2 years) is that I have to find my own path to learning that works for me.

It's impossible for me to focus on dense text. You could point a gun at my head and I still couldn't absorb the information. I need spatial learning. Moving pictures, flow charts, multi-level cutaways. Lists and sections broken up into hierarchies with clear simple headings and compartmentalized concepts. This way my brain can organize a literal map of the information for me to traverse later. But some other people might find that a nightmare.

At the same time, I learned programming extremely slowly, because I only used the methods that were easy to me. I just gave myself projects to accomplish and used trial and error to slowly learn how the language worked, along with a book for reference. It took me years to finally understand the academic underpinnings of how languages (and software) worked. I wish I could've seen a map of the different concepts, to reinforce what I needed to know to learn the next thing.

But there's also different kinds of information which need different learning methods. What's a sine, cosine, and tangent? I honestly still don't know, because the words themselves are foreign to me. For that I would need some kind of Duolingo-style repetitious-card-memory-trick-thing to even remember what word is what concept.

I don't know any framework to break up any subject into multiple course methods. And AI can't do it either. AI sucks at visualizations, and it doesn't have a deep understanding of how to teach things in multiple ways. EdTech needs to be extremely careful not to put all its cards into one "thing" if that thing can't do what people need. (That said: AI is great at quickly explaining things you don't know, and providing you an insanely fast path to the information you need)

In terms of CS itself, I feel like what we're lacking is a big-ass wikipedia or knowledge base. A lot of it is in Wikipedia, but not nearly detailed or interlinked enough. Once you have all the content, then you can reorganize them into different curriculums for different learning styles. But these are two separate problems. The tutorials are way too shallow, and the dense academic verbiage is far too detailed. You need a way to intermix them that's tailored to the user.

peterfirefly|4 months ago

> What's a sine, cosine, and tangent? I honestly still don't know, because the words themselves are foreign to me.

They are conversion functions between different fraction-based ways of measuring angles.

You can draw a right triangle for the angle you want to build and you can measure it based on the ratio of any two sides of the triangle.

You can also view the angle as a fraction of a circle. It's up to you decide whether a full circle counts as 360 or 2pi (or 400 or 1 or whatever).

sin/cos/tan and their inverses let you convert between the two. Both are useful, neither is always better. The conversions let you use whichever is easier.

The sine/cosine names don't really make sense in Indo-European languages because they are based on terribly mangled old Arabic. No, they do not come from the Latin word "sinus" = bay or bend. Yes, they probably did affect the direction of the mangling because there was this nice Latin word that looked like it ought to have something to do with it... but they started out as Arabic.

The name of the tangent function comes from the geometric tangent as a line that touches a curve. Tangent comes from a Latin word that means to touch -- hence why they keys on a keyboard are called that in some languages. If you do some fancy geometric drawing involving a unit circle, a radius, and an angle, then the tangent function naturally appears as the length of a line segment that 1) just touches the perimeter of the circle and 2) is at a right angle to the radius.

jrowen|4 months ago

Socrates expressed strong reservations about books and writing, primarily because he believed they weaken memory and true understanding, leading to a false sense of knowledge and a reliance on external "marks" rather than internal wisdom. [Pasted from Gemini]

s_ting765|4 months ago

Vibe code hell is the wrong term to be used here. Vibe coding is used in reference to people now rediscovering low code and who have no interest at all in learning about nor owning the code the LLM generated.

solomonb|4 months ago

> After all, it might just allow me to be more lazy, not more productive.

Is this not the true promise of technology?

lordleft|4 months ago

I completely agree with this article. AI (in a pedagogic context) is best when treated like a super-powered man page.

collingreen|4 months ago

A super powered man page that has wrong info often enough you need to have ways to verify either through simple experiments or alternate sources

JohnMakin|4 months ago

If you are writing a tutorial, please for the love of all that is holy do not just make it a bunch of copy/paste steps without much or any explanation. Make me work through it, debug it, take me down the wrong path on purpose for the "aha!" moments. Leave copious amounts of explanation and documentation. Tell me what can go wrong and how I can fix it. I do not want a video. I hate videos. I know not everyone does and people learn differently but videos suffer even worse from the copy/paste problem, I'm essentially just parroting what I'm watching usually without much explanation either. And also, going back and referencing is difficult without taking copious notes.

"Now we do x,y, z, and voila! here you have it, a fully fledged (whatever)." Ok, but what did you just do? Why doesn't it work on my machine? etc. I've seen tutorials that do this stuff right and it's a very obvious night and day difference.

zahlman|4 months ago

Applying the diátaxis (https://diataxis.fr) wisdom here: what you describe is really a how-to guide rather than a tutorial. These are also important, and you should seek them out (and ask for them) when they're what you want.

Tutorials fundamentally exist to serve a different purpose: to orient people within the subject matter, when they don't even know what question to ask. Going through steps in order is important so that the student can focus. Intentionally going down wrong paths can be counterproductive for the neophyte, because it means having about as much experience doing the wrong thing as the right thing. Debugging is a general skill, but technology-specific debugging can and probably should be taught separately from the "happy path".

A properly done tutorial will properly show the steps, and will have been tested to ensure that it can in fact be expected to work on everyone's machine. The parameters for success will be controlled as tightly as possible.

SoftTalker|4 months ago

With any tutorial, don't just passively read it or copy/paste the code.

Take notes as you go. Type the code manually. Experiment with variations of the code. It does help your brain encode the information.

j45|4 months ago

Vibe code is one way to learn code review and debugging

drakeballew|4 months ago

Great writeup. As a beginner hobbyist, I have found AI to be extremely frustrating to work with much of the time, but extremely enjoyable and actually my best tutor/teacher when I use it the way the author describes, as a conceptual guide rather than an author.

Kind of an aside, I also think that ChatGPT is a great car-ride companion, and that the "conversation mode" that currently exist is pretty bad, primarily due to its response length limitation. If you're driving and verbally chatting with ChatGPT, having it only give you 500 word responses is infuriating because you can't really get into any level of depth without going in constant circles, which isn't a problem that text-based chats have to the same extent.