[HN Gopher] "Vibe code hell" has replaced "tutorial hell" in cod...
___________________________________________________________________
"Vibe code hell" has replaced "tutorial hell" in coding education
Author : wagslane
Score : 242 points
Date : 2025-10-10 15:48 UTC (7 hours ago)
(HTM) web link (blog.boot.dev)
(TXT) w3m dump (blog.boot.dev)
| om22shree wrote:
| 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
| scott_w wrote:
| 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 wrote:
| 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.
| adamddev1 wrote:
| Maybe this is the answer to the ageism problem people have
| complained about in tech.
|
| In the land of vibe-coders, the old man is king.
| alganet wrote:
| Seniors being able to extract more from any new tool is a
| time proven constant. That hasn't changed.
|
| What happened is that companies tried to push an idea that
| this new AI thing would be inhospitable to whoever is already
| an experienced programmer. The idea of "new land", fair and
| equal to all. Smelling woudn't matter, because all smells
| would be new and unfamiliar.
|
| After insisting on this silly mistake for a while, they
| realized that experienced programmers were actually their
| only viable target audience, and attempted to change their
| approach accordingly. It's embarassing.
| adlpz wrote:
| 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 wrote:
| 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.
| Eisenstein wrote:
| The incentives align: when the success metric is engagement,
| it will be optimized for engagement. It makes perfect sense
| that it is going to agree with you.
| 1718627440 wrote:
| > 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.
| skovranek wrote:
| "Learning must be uncomfortable."
|
| Critical thinking is hard.
| dude250711 wrote:
| Also, not aligned with modern society, since you kind of need
| free speech for that.
| password54321 wrote:
| People just don't want to face the uncomfortable truth that
| they are probably not as smart as they want to believe they
| are.
| mattgreenrocks wrote:
| It's not about being smart as much as staying engaged with
| the problem even when it mentally defeats you several times.
| lordleft wrote:
| I completely agree with this article. AI (in a pedagogic context)
| is best when treated like a super-powered man page.
| collingreen wrote:
| 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
| jasonthorsness wrote:
| > 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").
| wagslane wrote:
| 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 wrote:
| 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 wrote:
| 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.
| amlib wrote:
| So you are telling me you can always properly infer what the
| "black boxes" the AI auto-completed for you does without
| reading the documentation?
|
| I bet you are most likely just blindly trusting the AI
| response and moving on. Sure, the code structure might
| checkout and the calls it completed are sometimes fairly
| generic/predictable, but there will be plenty of situations
| where the behavior is just different enough or the black
| boxes are something you have no idea about what it even does
| and you are too lazy to check the docs and commit the code
| anyway.
| GuB-42 wrote:
| 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.
| zahlman wrote:
| What if you had an AI system that could _order_ the
| exhaustive list according to its likelihood estimate?
| GuB-42 wrote:
| I think it is a good idea, and that's actually how Japanese
| word processors have been working since the late 70s!
|
| The way to input Japanese is to type the word phonetically
| using a regular qwerty keyboard. The computer then finds
| all writings that match and order them by likelihood.
|
| Calling that "AI" may be a little much for 70s tech, but it
| is definitely machine learning, as the machine is able to
| match patterns and take previous choices into account.
| dehrmann wrote:
| > "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 wrote:
| 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 wrote:
| 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.
| 0xbadcafebee wrote:
| 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 wrote:
| > 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.
| peterfirefly wrote:
| How do you remember sin and cos in practice? Draw a unit
| circle, draw a radius at whatever angle with the x axis that
| you want. The point where the radius touches the perimeter
| has the coordinates cos(angle), sin(angle). How do you
| remember the order? Alphabetically, just like the Baltic
| states.
|
| Tan is the slope of the radius line: sin(angle)/cos(angle).
|
| How do you remember the fraction for the slope of a line? I
| use a mnemonic: dydx ("dydex").
| SoftTalker wrote:
| > How do you remember sin and cos in practice?
|
| I draw on the ratios I memorized in high school, e.g.
| sin=opposite/hypotenuse, but 40+ years later sometimes I'm
| not sure so I look it up online.
|
| My needs for trigonometry are separated on a scale of
| years, and at some point knowledge unused is knowledge
| forgotten.
| viccis wrote:
| 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.
| whatever1 wrote:
| 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.
| lezojeda wrote:
| 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.
| A4ET8a8uTh0_v2 wrote:
| << and make a technical presentation to their leadership
|
| Honestly, this may be the only way to go about it.
| LPisGood wrote:
| 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.
| whatever1 wrote:
| Of course it can be solved using the proper tools by a domain
| expert/practitioner (even with chatGPT since the expert will
| know what to ask).
|
| But why didn't the AI expert solve it using chatGPT? If it
| has to land to an expert for reimplementation from scratch
| after wasting a day on reviewing slop, did we gain
| productivity?
| LPisGood wrote:
| Gain on productivity, maybe nothing. I didn't mean to
| comment on the broader scope, just an actionable suggestion
| for GP.
| Jianghong94 wrote:
| 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.
| crazygringo wrote:
| > _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.
| verelo wrote:
| I've been criticized for this by my coworkers in the past,
| but I strongly believe that this is generally true and has
| been for quite a while. Developers, myself included, like to
| think their code is special, set in stone and going to last
| forever. Most the code we write struggles to live a few years
| yet we treat all of it like it's going to last forever. I've
| been an advocate for flipping that and treating it like our
| code will not last long, and when we identify the components
| that will, going back and optimizing them.
|
| I'm pretty confident that most developers, again including
| myself, just really enjoy knowing something is done well.
| Being able to separate yourself from the code and fixate
| solely on the outcomes can sometimes get me past this.
| lemagedurage wrote:
| I think this is true for the edges, but if you build on top
| of software that's not done well, it's a bad time.
| ori_b wrote:
| > Unit testing. LLM's are very good at writing tests and
| writing code that is testable (as long as you ask it)
|
| The unit tests LLMs generate are also often crap, testing
| tautologies, making sure that your dependencies act as
| specified without testing the actual code, etc.
| rmonvfer wrote:
| The only way this might work (IMO) is writing the tests
| yourself (but of course, this requires you to plan and design
| very meticulously in advance) and doing some kind of "blind
| TDD" where the LLM is not able to see the tests, only run
| them and act on the results. Even then, I've had Claude (Opus
| 4.1) bypass tests by hardcoding conditions as it found them
| so I'd say reliability for this method is not 100%.
|
| Having the LLM write the tests is... well, a recipe for
| destruction unless you babysit it and give it extremely
| specific restrictions (again, I've done this in mid to large
| sized projects with fairly comprehensive documentation on
| testing conventions and results have been mixed: sometimes
| the LLM does an okay job but tests obvious things, sometimes
| it ignores the instructions, sometimes it hardcodes or
| disables conditions...)
| didericis wrote:
| I've been saying this for years now: you can't avoid
| communicating what you want a computer to do. The specific
| requirements _have_ to be made somewhere.
|
| Inferring intent from plain english prompts and context is
| a powerful way for computers to _guess_ what you want from
| underspecified requirements, but the problem of defining
| what you want _specifically_ always requires you to convey
| some irreducible amount of information. Whether it's code,
| highly specific plain english, or detailed tests, if you
| care about correctness they all basically converge to the
| same thing and the same amount of work.
| crazygringo wrote:
| > _if you care about correctness they all basically
| converge to the same thing and the same amount of work._
|
| That's the part I'd push back on. They're _not_ the same
| amount of work.
|
| When I'm writing the code myself, it's basically a ton of
| "plumbing" of loops and ifs and keeping track of counters
| and making sure I'm not making off-by-one errors and not
| making punctuation mistakes and all the rest. It actually
| takes quite a lot of brain energy and time to get that
| all perfect.
|
| It saves a _lot_ of time to write the function definition
| in plain English, have the LLM generate a bunch of tests
| that you verify are the correct definition... and then
| let the LLM take care of all the loops and indexing and
| punctuation and plumbing.
|
| I regularly cut what used to be an entire afternoon or
| day's worth of work down into 30 minutes. I spend 10
| minutes writing the design for what will be 500-1,000
| lines of code, 5 minutes answering the LLM's questions
| about it, 5 minutes skimming the code to make sure it all
| looks vaguely plausible (no obvious red flags), 5 minutes
| ensuring the unit tests cover everything I can think of
| (almost always, the LLM has thought of a bunch of edge
| cases I never would have bothered to test), and another 5
| minutes telling it to fix things, like its unit tests
| make me suddenly realize there's an edge case that should
| be defined differently.
|
| The idea that it's the "same amount of work" is crazy to
| me. It's _so much more_ efficient. And in all honesty,
| the code is more reliable too because it tests things
| that I usually wouldn 't bother with, because writing
| _all_ the tests is so boring.
| smrtinsert wrote:
| Doesn't work if black box. You still have to inspect code
| performing the operation
| majormajor wrote:
| They're OK at it. I usually get more thoroughness of
| scenarios than a mediocre human engineer (which is great!)
| but less thoroughness of validation and output checking than
| a good human engineer (which is less so).
|
| But if you have a lot of unit tests and need to make a cross-
| cutting refactor you run into the same problem that you
| always have if all your coverage is at the unit level. Now
| your unit boundary is fundamentally different and you need to
| know how to lift and shift all the relevant tests to the
| relevant new places.
|
| And so far I've been less impressed by the "agents"' attempts
| at cross-cutting integration testing since this usually
| requires selective and clever interface setup and
| refactoring.
|
| LLMs have a habit of creating one-off things for particular
| unit test scenarios that doesn't scale well to that problem.
| simultsop wrote:
| Your first response sounded like:
|
| You got more diabetes? Use more insulin :x (insulins are very
| good handling diabetes) (analogy).
|
| Seniors would tell: the more you get in seniority the more
| you delete code. So I don't think, more cushion for higher
| jumping is the solution, sometimes you don't need to jump
| from that high.
|
| We're moving to Junior Generative Juniors, recursively.
| jasonthorsness wrote:
| "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.
| noosphr wrote:
| 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.
| alexchantavy wrote:
| > 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.
| theobeers wrote:
| "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.
| s_ting765 wrote:
| 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.
| Waterluvian wrote:
| > 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.
| multiplesof4 wrote:
| So the core idea is that "vibe code hell" is when learners lean
| on AI to churn out passing code without building real
| understanding, so the fix is to turn off autocomplete/agents
| while learning and use chatbots only for Socratic guidance,
| citations, and concept checks--embracing discomfort to grow
| fundamentals. Interesting that long-form tutorials are fading
| even as "learn to code" interest stays high, this illustrates how
| LLM "sycophancy" can talk you into opposite conclusions on the
| same facts--hence their push for opinionated aides like "Boots"
| that won't give answers but nudge you to think.
| travisgriggs wrote:
| 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.
| simultsop wrote:
| A few more speculative years, there will be no programming
| left.
| jmhmd wrote:
| 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.
| heisenbit wrote:
| 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.
| travisgriggs wrote:
| I view them as lossy compressors. Kind of like a JPEG for
| algorithms. And while our optical nerve stack tends to be
| pretty good at glossing over and correcting for erroneous
| pixels, it has been my experience that computers do not
| possess that kind of discernment. Thy do exactly as they're
| told. And a "pixel off" here and there in the execution of
| boolean logic can quietly not matter, or it can unravel
| pretty epically.
| jncfhnb wrote:
| 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.
| jrowen wrote:
| 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.
| solomonb wrote:
| > After all, it might just allow me to be more lazy, not more
| productive.
|
| Is this not the true promise of technology?
| gota wrote:
| 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)
| rhetocj23 wrote:
| You learn by doing and thinking.
|
| Not reading and watching.
|
| Pure and simple.
| gota wrote:
| Yes, but even if we all agree the problem with education at
| scale remains - there is a very finite and limited amount of
| 'attention' from craftsmen/masters to distribute, which
| limits the amount of apprentices.
|
| The alternative has been to massify education for 'students'
| (not apprentices) in passive lectures with
| 'exercises/homework', which does not work as well for most
| things and particularly for crafts.
|
| BTW for a very minor portion of the population the 'student'
| route is just as effective as the 'apprentice' route, but
| these are in my experience the exception
| scottyah wrote:
| If you train at the gym with bad form, you will hurt yourself
| in the long run. A person with a personal trainer giving
| feedback at the right time, decreasing the feedback loop from
| years to seconds will always outperform someone trying to
| figure it out on their own(assuming the trainer is
| competent).
| leptons wrote:
| If you are trying to teach yourself programming and never
| read any documentation, you're going to make a mess of it.
|
| If you're trying to work out at the gym on your without
| reading anythi g about it first, you'll probably make a
| mess of it.
|
| There's a lot of info out there about how to train at the
| gym, as well as how to write code. People who know how to
| read can certainly get a long way by reading a few simple
| tutorials.
| 65 wrote:
| I disagree with the reading part, as that's a major component
| of learning.
|
| Programming only clicked for me when I had a goal in mind and
| started reading documentation: change the color of the button
| when I click it. How to do something on click? How to change
| the color of an element? Etc. From there my goals became
| bigger and reading documentation and examples along the way
| got me to where I am today.
|
| Video is the true deception. I was trying to design patterns
| for sewing recently, and as a novice I watched a few videos.
| And none of them ever stuck with me on how to design
| something myself. It was only when I read a book about
| pattern design that the concepts stuck. I think the friction
| of reading, parsing the info, and then acting on it is what
| allows learning to happen.
| rhetocj23 wrote:
| My point is reading does not provide substantial value, it
| provides barely any because you have to net out the
| opportunity cost of time spent reading. The gains are
| realised when you think and do something with the
| information consumed.
|
| Therefore reading and watching are not the key to success.
| AstroBen wrote:
| Reading and watching fills your brain with whats possible
|
| Doing and thinking solidifies it, teaches you to use the
| things you've read about
|
| You need both
|
| When I'm learning something new I like to skim a bunch of
| content upfront to get an idea of what's there
| marcosdumay wrote:
| > fills your brain with whats possible
|
| It doesn't. That's the problem.
|
| It fills your brain with procedure. For a short time.
|
| If you solidify the procedure, you will be able to perform
| that one task. What on software development is still
| useless.
|
| Only at the next step, where you know so much that you can
| think of your own new procedures that you have basic
| competence at software development. There are other
| professions like this, but for most, basic competence
| happens before you even solidify the procedures.
| yunwal wrote:
| If you understand the difference between greedy
| algorithms and non-greedy, you also understand the
| difference between learning by doing and building a solid
| foundation before tackling a problem.
|
| For most simple problems, it's true that the taking the
| seemingly shortest path to solving the problem is good
| enough. There are other problems where you simply have to
| understand the abstractions at a deeper level than you
| can visualize in code. It's there that things like
| reading a textbook or taking a course can help.
| AstroBen wrote:
| Can you give an example?
|
| I mean: if you're learning a new
| language/library/framework it's really useful to have a
| broad idea of what the tooling for it looks like.. what
| features does it offer? You can look up the details when
| you need to
|
| It's really useful to have a broad knowledge of
| algorithms and what problems they're applicable to. Look
| up the details later
|
| If you're going into a new domain.. know the broad, high
| level pieces of it. You don't need to pre-learn the
| specifics of websockets but if you don't even know they
| exist or what they're useful for in web development..
| that's kind of a problem
|
| Even more abstract concepts like how to design code
| there's a lot of good info out there
|
| If every generation had to re-invent the wheel from
| scratch we'd never get anywhere. The problem people have
| is they think ONLY reading is enough
| palata wrote:
| Read/watch, do, fail, think, read/watch, do, fail, think, ...
|
| Learning requires _effort_ and _access to knowledge_. And of
| course, learning requires that you know how to learn. This is
| what school tries to teach.
| anthk wrote:
| Read, eval, print, loop.
|
| Learn, apply, review, repeat.
| majormajor wrote:
| 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."
| abnercoimbre wrote:
| 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/
| deadbabe wrote:
| 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.
| Anonbrit wrote:
| Any dev who consists themselves senior and hasn't developed
| some mentorship skills doesn't deserve the title. Even if
| it's just freeing up half an hour a week to pair program with
| a junior on something or talk through their current
| assignment.
| fragmede wrote:
| performance aversiveness is a personal problem and should be
| worked through
| pfortuny wrote:
| Actually, even before apprenticeship comes drilling. Repeat,
| repeat, repeat.
| Scotrix wrote:
| +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 :-).
| nvarsj wrote:
| 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.
| xboxnolifes wrote:
| > The skillset can be entirely self taught if you're
| intelligent enough.
|
| > You can't say the same for trades like plumber,
| electrician, etc. which still use apprenticeships.
|
| Yes you can, and yet they still have apprenticeships.
| nvarsj wrote:
| Sorry, but in no way can you equate an electrical
| apprenticeship with being self taught. The variety and
| complete insanity of wiring in different installations
| requires wide exposure (under an experienced mentor) to be
| a competent electrician.
| tokai wrote:
| Sure you can be self taught in plumbing. Overall we are just
| much less accepting of big screw ups with plumbing and
| electricity than we are with most software.
| somenameforme wrote:
| I'm skeptical of this. There is an extremely large barrier
| to entry in terms of the cost of the supplies and hardware.
| And how would you even begin to realistically get
| practice/experience working on and solving the countless
| issues plumbers are responsible for, all in different
| contexts with different setups? And then there's also a
| safety issue - plenty of environments and tasks plumbers
| are responsible for can be quite dangerous. Danger and
| self-learning isn't entirely a non-starter, but it's
| certainly an part of the 'balance' here.
|
| By contrast software just isn't comparable at all. You can
| sit at your desk, pay $0, and the only limitations to your
| experience is the amount of time you're willing to
| dedicate.
| littlecranky67 wrote:
| > 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.
| hintymad wrote:
| > 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.
| leptons wrote:
| I'm self-taught and did pretty much all of those things. All
| it took was reading the docs.
| guhidalg wrote:
| I downvoted you because you are exceptional but the rest of
| the world is not. Most people benefit from traditional
| education, software engineering is not different.
| Muvasa wrote:
| BS. Everything I learned from college was me anki and
| youtube. Lectures were wasting me time from actually
| studying. Most people I talked to they said. They didn't
| follow the lecturer at all just sat there like me for the
| attendence. There is no reason why we should continue to
| have mandatory lectures when you can just record them
| like Gilbert Strang did.
| cultofmetatron wrote:
| its not THAT exceptional. I myself know several people
| who bootstrapped themselves into being descent software
| engineers. Traditional education is certainly fine for
| some people but its not the only way for the masses to
| learn. whats missing is the discipline of pushing
| yourself when you have no immediate extrinsic motivation.
|
| You might have had a point a few decades ago when the
| information itself was difficult to fine but with the
| internet and online courses, its easier than ever to
| teach yourself in a "nontraditional" setting.
| jjcob wrote:
| I was a self-taught software developer who already made
| money with programming for ~10 years before I took my
| first computer science classes.
|
| Those classes unlocked a whole new level of programming
| for me. I just didn't know what I didn't know before.
|
| People keep reinventing the same shit if they haven't
| learned about it before.
|
| Sure, you can learn many things online. But for most
| things you just don't even know that they exist, you
| wouldn't know to search for them.
| palata wrote:
| I downvoted you because I kindly disagree. Seems like
| that's how you do it.
| timr wrote:
| > And in our modern world, universities are still the best
| place for such apprenticeship.
|
| I spent a good portion of my life in Universities -- and went
| as far as one can go in terms of educational credentials and
| taught at the university level -- and I cannot disagree more.
|
| Universities produce job skills _incidentally_ , if at all.
| It's simply not their goal [1]. Even today, at the best CS
| programs in the country, it's possible to get a degree and
| still not be better than a very junior engineer at a software
| company (and quite a few graduates are worse).
|
| > 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.
|
| This was not my experience, nor is it what I have seen in
| _most_ university graduates. It 's still quite possible for a
| CS grad to get a degree having only theoretical knowledge in
| these topics, and no actual ability to write code.
|
| This leaves open the question of where "the best place" is to
| learn as-practiced programming [2], but I tend to agree with
| the root commenter that the best programmers come up through
| a _de facto_ apprenticeship system, even if most of them
| spend time in universities along the way.
|
| [1] Their goal is to produce professors. You may not realize
| this if you only went as far as the undergraduate diploma,
| but that is mostly what academics know, and so it is what
| they teach. The difference between the "best" CS programs and
| the others is that they have _some_ professors with actual
| industry experience, but even then, most of them are
| academics through and through.
|
| [2] Code academies suck in their own ways.
| throwup238 wrote:
| _> Universities produce job skills incidentally, if at all.
| It 's simply not their goal [1]. Even today, at the best CS
| programs in the country, it's possible to get a degree and
| still not be better than a very junior engineer at a
| software company (and quite a few graduates are worse)._
|
| Having been self taught in both software and electrical
| engineering, I've experienced a lot of this.
|
| In EE, it's amazing how many graduates come into the job
| without ever having used Altium/KiCAD/Cadence for a
| nontrivial project or who can give you a very precise
| definition of impedance but don't know how to break out an
| engineering calculator to set design rules for impedance
| controlled differential pairs. Or worse yet, people who can
| give you all the theory of switching model power supply but
| can't read datasheets and select parts in practice.
| fragmede wrote:
| Yeah the practical part is what does it. Students need
| time on their particular niche's software programs.
| Outside of Altium/KiCAD/Cadence there's also Mastercam,
| ANSYS HFSS, LTspice /
| SIMetrix/Keysight/CATIA/Synopsys/Dymola, among others.
| ryandrake wrote:
| Yea, I started to learn how to program in my early teens
| and made a lot of progress just messing around on my own.
| Then I went to University for a CSE degree and spent 4
| years basically doing applied math. Yuck. Finally once I
| got out of University and into industry, I started learning
| again practical things like debugging, build systems, unit
| testing, application development, and so on. My programming
| skill growth quickly restarted.
|
| Looking back, I'd consider my University degree to be
| essentially a 4 year pause on growing my programming
| skills.
| dr_dshiv wrote:
| Thank you for saying this clearly. I love universities.
| They are so far from supporting apprenticeships. Even phds
| -- they don't do enough work for the senior professors to
| count as apprenticeships. Maybe postdocs. But the system is
| not great--we need guilds.
| palata wrote:
| I studied computer science in a university, not because I
| wanted to learn programming, but because I wanted to study
| computer science.
|
| I admit that most development tasks don't need the
| knowledge you get from a CS degree, but some do.
|
| But in computer science, it's also totally possible to be
| self-taught. I've learnt _a lot_ on my own, especially
| after university. Computer science is good for that because
| it 's generally accessible: you don't need an expensive lab
| or equipments, you can just practice at home on your
| laptop.
| hn_acc1 wrote:
| I'll disagree with your "disagreement" - of course, I went
| to a relatively unique school: Waterloo computer
| engineering with co-op in the 90s. 8 study semesters, 6
| work semesters. Clearly lets you see what "work" is like,
| and which parts of your studies seem relevant. Obviously,
| no one will use 100% of their engineering courses - they're
| designed to cover a lot of material but not specialize in
| anything.
|
| True, grad school was focused on making professors - I did
| a master's, ended up being a lecturer for a while. Now a
| 20+ year software developer in the valley. But undergrad
| was focused on blending theoretical and practical skills.
| If they didn't, employers would have stopped coming back to
| hire co-op students, and would stop hiring the students at
| a high rate when they graduate.
|
| I COULD have learned a lot of software myself - I was
| already coding in multiple languages before attending and
| had a side-software-contract before ever going in - and
| that was before the "web", so I had to buy and study books
| and magazines and I was able to do that reasonably well
| (IMHO).
|
| Yet I never regretted my time in school. In fact, I had a
| job offer with my last employer before going back to grad
| school, and they hired me as a summer contractor at a very
| nice hourly rate back then.
| hintymad wrote:
| > Even today, at the best CS programs in the country, it's
| possible to get a degree and still not be better than a
| very junior engineer at a software company (and quite a few
| graduates are worse).
|
| I think it's important to differentiate the personal
| achievement of students and the training offered by their
| universities. For instance, the courses offered by CMU and
| MIT are super useful - insightful, practical, intense, and
| sufficiently deep. That said, it does not mean that every
| MIT/CMU graduate will reap the benefit of the courses, even
| though many will.
|
| It goes without saying that it does NOT mean people can't
| teach themselves. I'm just saying universities offer a
| compelling alternative to training next gen of engineers.
| usefulcat wrote:
| I went to a good university with a decent CS program, and I'd
| definitely say I learned a lot more on the job than I did in
| school. I didn't always have any mentors to speak of but I
| did have at least a couple who were good.
| g9yuayon wrote:
| I think both can true. I learned a lot in my university,
| and my learning has been carrying me ever since. Case in
| point, it was never a problem for me to pick up functional
| programming or programming-language concepts in general
| because the courses on programming languages were so
| wonderful. I had no problem tap into formal verifications
| or data science or distributed systems because my
| universities gave me solid fundamentals. Heck, I was not
| even a good student back then. It was Sam Toueg of the
| failure detector fame who taught us distributed systems,
| yet I was lost most of the time and I thought he was
| talking some abstract nonsense. Only after I graduated
| could I appreciate the framework of analyzing distributed
| systems that he taught us.
|
| On the other hand, we certainly learned more after
| graduation (or something is wrong, right?). When I was in
| the AI course, the CS department was all about symbolic
| reasoning I didn't even know that Hinton was in the same
| department. I think what matters is the core training
| stayed with me and helped me learn new stuff year after
| year.
| g9yuayon wrote:
| My own experience: https://www.quora.com/Could-online-coding-
| programs-and-codin...
|
| And my wife's experience: https://www.quora.com/What-is-it-
| like-to-learn-computer-scie...
|
| In short, the training that we got from our universities was
| invaluable, and I always feel fortunate and grateful to my CS
| department.
| vulk wrote:
| 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.
| lispisok wrote:
| 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.
| palata wrote:
| > 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_.
| watwut wrote:
| 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.
| groos wrote:
| '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.
| dang wrote:
| 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._ "
| SoftTalker wrote:
| 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.
| sfarshid wrote:
| tried reproducing the "Sycophant Problem" example in ChatGPT but
| couldn't.
|
| A:
| https://chatgpt.com/share/68e940a1-953c-8011-a8f2-3a1a0c51be...
| B:
| https://chatgpt.com/share/68e94067-ec74-8011-88e5-9d27670f31...
| paxys wrote:
| 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.
| kazinator wrote:
| > _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.
| JohnMakin wrote:
| 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.
| SoftTalker wrote:
| 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.
| zahlman wrote:
| Applying the diataxis (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.
| 0x457 wrote:
| 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 wrote:
| Documentation is not meant for learning. It's to be used as a
| reference. It's like learning medicine by reading a medical
| dictionary.
| j45 wrote:
| Vibe code is one way to learn code review and debugging
| jrowen wrote:
| 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]
| black3r wrote:
| 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.
___________________________________________________________________
(page generated 2025-10-10 23:01 UTC)