10 ms·
AI is incredibly dangerous because it can do the simple things very well, which prevents new programmers from learning the simple things ("Oh, I'll just have AI
by recursivedoubts 9mo ago
AI is incredibly dangerous because it can do the simple things very well, which prevents new programmers from learning the simple things ("Oh, I'll just have AI generate it") which then prevents them from learning the middlin' and harder and meta things at a visceral level.
I'm a CS teacher, so this is where I see a huge danger right now and I'm explicit with my students about it: you HAVE to write the code. You CAN'T let the machines write the code. Yes, they can write the code: you are a student, the code isn't hard yet. But you HAVE to write the code.
- Quothling 9mo agoI'm an external examiner for CS students in Denmark and I disagree with you. What we need in the industry is software engineers who can think for themselves, can interact with the business and understand it's needs, and, they need to know how computers work. What we get are mass produced coders who have been taught some outdated way of designing and building software that we need to hammer out of them. I don't particularily care if people can write code like they work at the assembly line. I care that they can identify bottlenecks and solve them. That they can deliver business value quickly. That they will know when to do abstractions (which is almost never). Hell, I'd even like developers who will know when the code quality doesn't matter because shitty code will cost $2 a year but every hour they spend on it is $100-200. Your curriculum may be different than it is around here, but here it's frankly the same stuff I was taught 30 years ago. Except most of the actual computer science parts are gone, replaced with even more OOP, design pattern bullshit. That being said. I have no idea how you'd actually go about teaching students CS these days, considering a lot of them will probably use ChatGPT or Claude regardless of what you do. That is what I see in the statistic for grades around here. For the first 9 years I was a well calibrated grader, but these past 1,5ish years it's usually either top marks or bottom marks with nothing in between. Which puts me outside where I should be, but it matches the statistical calibration for everyone here. I obviously only see the product of CS educations, but even though I'm old, I can imagine how many corners I would have cut myself if I had LLM's available back then. Not to mention all the distractions the internet has brought.
- halfmatthalfcat 9mo agoLet them use AI and then fall on their faces during exam time - simple as that. If you can't recall the theory, paradigm, methodology, whatever by memory then you have not "mastered" the content and thus, should fail the class.
- candiddevmike 9mo ago> I'm an external examiner for CS students > Hell, I'd even like developers who will know when the code quality doesn't matter because shitty code will cost $2 a year but every hour they spend on it is $100-200. > Except most of the actual computer science parts are gone, replaced with even more OOP, design pattern bullshit. Maybe you should consider a different career, you sound pretty burnt out. There are terrible takes, especially for someone who is supposed to be fostering the next generation of developers.
- pitched 9mo agoIt can take some people a few years to get over OOP, in the same way that some kids still believe in Santa a bit longer. Keep at it though and you’ll make it there eventually too.
- Quothling 9mo agoI don't foster the next generations. I hire them. External examiners are people in the industry who are used as examiners to try and match educations with the needs of the industry.
- lucianbr 9mo ago> I don't particularily care if people can write code like they work at the assembly line. I care [...] That they can deliver business value quickly. In my experience, people who talk about business value expect people to code like they work at the assembly line. Churn out features, no disturbances, no worrying about code quality, abstractions, bla bla. To me, your comment reads contradictory. You want initiative, and you also don't want initiative. I presume you want it when it's good and don't want it when it's bad, and if possible the people should be clairvoyant and see the future so they can tell which is which.
- orev 9mo agoIt’s like weightlifting: sure you can use a forklift to do it, but if the goal is to build up your own strength, using the forklift isn’t going to get you there. This is the ultimate problem with AI in academia. We all inherently know that “no pain no gain” is true for physical tasks, but the same is true for learning. Struggling through the new concepts is essentially the point of it, not just the end result. Of course this becomes a different thing outside of learning, where delivering results is more important in a workplace context. But even then you still need someone who does the high level thinking.
- arghwhat 9mo agoI do appreciate the visual of driving a forklift into the gym. The activity would train something, but it sure wouldn't be your ability to lift.
- Lerc 9mo agoA version of this does happen with regard to fitness. There are enthusiasts who will spend an absolute fortune to get a bike that is few grams lighter and then use it to ride up hills for the exercise. Presumably a much cheaper bike would mean you could use a smaller hill for the same effect.
- arghwhat 9mo agoFrom an exercise standpoint, sure, but with sports there is more to it than just maximizing exercise. If you practice judo you're definitely exercising but the goal is defeating your opponent. When biking or running you're definitely exercising but the goal is going faster or further. From an an exercise optimization perspective you should be sitting on a spinner with a customized profile, or maybe do some entirely different motion. If sitting on a carbon fiber bike, shaving off half a second off your multi-hour time, is what brings you joy and motivation then I say screw it to further justification. You do you. Just be mindful of others, as the path you ride isn't your property.
- frankc 9mo ago
- jillesvangurp 9mo agoWhat you as a teacher teach might have to adapt a bit. Teaching how code works is more important than teaching how to code. Most academic computer scientists aren't necessarily very skilled as programmers in any case. At least, I learned most of that after I stopped being an academic myself (Ph. D. and all). This is OK. Learning to program is more of a side effect of studying computer science than it is a core goal (this is not always clearly understood). A good analogy here is programming in assembler. Manually crafting programs at the machine code level was very common when I got my first computer in the 1980s. Especially for games. By the late 90s that had mostly disappeared. Games like Roller Coaster Tycoon were one of the last ones with huge commercial success that were coded like that. C/C++ took over and these days most game studios license an engine and then do a lot of work with languages like C# or LUA. I never did any meaningful amount of assembler programming. It was mostly no longer a relevant skill by the time I studied computer science (94-99). I built an interpreter for an imaginary CPU at some point using a functional programming language in my second year. Our compiler course was taught by people like Eric Meyer (later worked on things like F# at MS) who just saw that as a great excuse to teach people functional programming instead. In hindsight, that was actually a good skill to have as functional programming interest heated up a lot about 10 years later. The point of this analogy: compilers are important tools. It's more important to understand how they work than it is to be able to build one in assembler. You'll probably never do that. Most people never work on compilers. Nor do they build their own operating systems, databases, etc. But it helps to understand how they work. The point of teaching how compilers work is understanding how programming languages are created and what their limitations are.
- DHPersonal 9mo agoI only learn when I do things, not when I hear how they work. I think the teacher has the right idea.
- moritzruth 9mo agoYes, I do too, but the point they were trying to make is that "learning how to write code" is not the point of CS education, but only a side effect.
- criddell 9mo agoThey don't always do the simple things well which is even more frustrating. I do Windows development and GDI stuff still confuses me. I'm talking about memory DC, compatible DC, DIB, DDB, DIBSECTION, bitblt, setdibits, etc... AIs also suck at this stuff. I'll ask for help with a relatively straightforward task and it almost always produces code that when you ask it to defend the choices it made, it finds problems, apologizes, and goes in circles. One AI (I forget which) actually told me I should refer to Petzold's Windows Programming book because it was unable to help me further.
- stavros 9mo agoI'd prefer it to tell me it can't help me rather than write random code that I then have to spend time debugging.
- nso 9mo agoI agree 100%. But as someone with 25 years of development experience, holy crap it's nice not having to do the boring parts as much anymore.
- dfxm12 9mo agoAs a teacher, do you have any techniques to make sure students learn to write the code?
- WalterBright 9mo agoIf I was a prof, I would make it clear to the students that they won't learn to program if they use AI to do it for them. For the students who wanted to learn, great! For those who just wanted to slide through with AI, I wouldn't care about them.
- GoatInGrey 9mo agoIn-person analog checkpoints seem to be the most effective method. Think internet-disabled PCs managed by the school, written exams, oral exams, and so forth. Making students fix LLM-generated code until they're at their wits' end is a fun idea. Though it likely carries too high of an opportunity cost education-wise.
- smj-edison 9mo agoI'm taking CS in college right now, and when we do our projects we're required to have a editor plugin that records every change made. That way when they grade it, they see how the code evolved over time, and not just the final product. Copying and posting has very distinct editor patterns, where organically developed code tends to morph over time.
- bdangubic 9mo agowhich editor plugin are you using?
- smj-edison 9mo agoI looked to see if BYU had made the source code available, but it doesn't look like they've published it. It's called code recorder, and before we do an assignment we have to enable recording. It generates a .json file that lists every single edit made in terms of a textual diff. They must have some sort of tool that reconstructs it when they grade. Sorry I don't know more! Edit: I expect it wouldn't be super hard to create though, you'd just have to hook into the editor's change event, probably compute the diff to make sure you don't lose anything, and then append it to the end of the json.
- WalterBright 9mo agoI remember reading about a metal shop class, where the instructor started out by giving each student a block of metal, and a file. The student had to file an end wrench out of the block. Upon successful completion, then the student would move on to learning about the machine tools. The idea was to develop a feel for cutting metal, and to better understand what the machine tools were doing. -- My wood shop teacher taught me how to use a hand plane. I could shave off wood with it that was so thin it was transparent. I could then join two boards together with a barely perceptible crack between them. The jointer couldn't do it that well.
- darknavi 9mo agoIn middle school (I think) we spent a few days in math class hand-calculating trigonometry values (cosine, sin, etc.). Only after we did that did our teacher tell us that the mandated calculators that we all have used for the last few months have a magic button that will "solve" for the values for you. It definitely made me appreciate the calculator more!
- WalterBright 9mo agoAlso, in college, I'd follow the derivation that the prof did on the chalkboard, and think I understood it. Then, doing the homework, I'd realize I didn't understand it at all. Doing the homework myself was where the real learning occurred.
- MarsIronPI 9mo agoI guess there's a reason why you don't spend most of your time at school in class with a professor.
- WalterBright 9mo agoThe general rule was 2 hours of homework for each hour of lecture. With a 5 class load, it worked out to 45 hours a week. This kind of workload was a shock to me. It more than a year to adapt to it.
- 9mo ago
- robmccoll 9mo agoYes! You are best served by learning what a tool is doing for you by doing it yourself or carefully studying what it uses and obfuscates from you before using the tool. You don't need to construct an entire functioning processor in an HDL, but understanding the basics of digital logic and computer architecture matters if you're EE/CompE. You don't have to write an OS in asm, but understanding assembly and how it gets translated into binary and understanding the basics of resource management, IPC, file systems, etc. is essential if you will ever work in something lower level. If you're a CS major, algorithms and data structures are essential. If you're just learning front end development on your own or in a boot camp, you need to learn HTML and the DOM, events, how CSS works, and some of the core concepts of JS, not just React. You'll be better for it when the tools fail you or a new tool comes along.
- deleted 9mo ago[deleted]
- deleted 9mo ago[deleted]
- pmarreck 9mo agoI haven't done long division in decades, am probably unable to do it anymore, and yet it has never held me back in any tangible fashion (and won't unless computers and calculators stop existing)
- tudelo 9mo agoI am rather positive that if you were sat down in a room and couldn't leave unless you did some mildly complicated long division, you would succeed. Just because it isn't a natural thing anymore and you have not done the drills in decades doesn't mean the knowledge is completely lost.
- pmarreck 9mo agoIf you are concerned that embedding "from first-principles" reasoning in widely-available LLM's may create future generations that cannot, then I share your concern. I also think it may be overrated. Plenty of people "do division" without quite understanding how it all works (unfortunately). And plenty of people will still come along who love to code despite AI's excelling at it. In fact, calling out the AI on bad design or errors seems to be the new "code golf".
- Archer6621 9mo agoThat makes sense. Some skills just have more utility than others. There are skills that are universally relevant (e.g. general problem solving), and then there are skills that are only relevant in a specific time period or a specific context. With how rapidly the world has been changing lately, it has become difficult to estimate which of those more specific skills will remain relevant for how long.
- moregrist 9mo agoI haven’t had the need to in decades either but I can still do it. Similarly with the standard algorithms for multi-digit addition, subtraction, and multiplication. I think learning these algorithms was useful not because we use these tools ourselves but because it taught us useful concepts: very practical step-by-step algorithms, and a hands-on introduction to decimal places and powers of ten. There are other ways to learn these things but I learned them in elementary school by doing hundreds of arithmetic problems over 4-5 years. That knowledge stays with me even if I don’t pull out long division for anything practical.
- Isamu 9mo agoSame with essay assignments, you exercise different neural pathways by doing it yourself. Recently in comments people were claiming that working with LLMs has sharpened their ability to organize thoughts, and that could be a real effect that would be interesting to study. It could be that watching an LLM organize a topic could provide a useful example of how to approach organizing your own thoughts. But until you do it unassisted you haven’t learned how to do it.
- nonethewiser 9mo agoThe natural solution is right there in front of us but we hate to admit it because it still involves LLMs and changes on the teaching side. Just raise the bar until they struggle.
- nonethewiser 9mo agoBut what has changed? Students never had a natural reason to learn how to write fizz buzz. It's been done before and its not even useful. There has always been a arbitrary nature to these exercises. I actually fear more for the middle-of-career dev who has shunned AI as worthless. It's easier than ever for juniors to learn and be productive.
- acessoproibido 9mo agoI'm not so sure. I spent A LOT of time writing sorting algo code by hand in university. I spent so much time writing assembly code by hand. So much more time writing instructions for MIPS by hand. (To be fair I did study EE not CS) I learned more about programming in a weekend badly copying hack modules for Minecraft than I learned in 5+ years in university. All that stuff I did by hand back then I haven't used it a single time after.
- phailhaus 9mo agoYou didn't write sorting code or assembly code because you were going to need to write it on the job. It gave you a grounding for how datastructures and computers work on a fundamental level. That intuition is what makes picking up minecraft hack mods much easier.
- acessoproibido 9mo agoThat's the koolaid, but seriously I don't really believe it anymore. I only had to do this leg work during university to prove that I can be allowed to try and write code for a living. The grounding as you call it is not required for that at all,since im a dozen levels of abstraction removed from it. It might be useful if I was a researcher or would work on optimizing complex cutting edge stuff, but 99% of what I do is CRUD apps and REST Apis. That stuff can safely be done by anyone, no need for a degree. Tbf I'm from Germany so in other places they might allow you to do this job without a degree
- phailhaus 9mo agoBut nobody go to college specifically training to do CRUD apps. The point is to give you broad training so that you can do CRUD apps and other stuff too. It is a very bad idea to give extremely specific training at scale, because then you get a workforce that has difficulty adapting to changes. It's like trying to manage a planned economy: there is no point in trying to predict exactly what jobs you will get, so let's make sure you can handle whatever's thrown at you.
- 9mo ago
- andrewflnr 9mo agoSimilarly, it's always been the case that copy-pasting code out of a tutorial doesn't teach you as much much as manually typing it out, even if you don't change it. That part of the problem isn't even new.
- danmaz74 9mo agoWhen learning basic math, you shouldn't use a calculator, because otherwise you aren't really understanding how it works. Later, when learning advanced math, you can use calculators, because you're focusing on a different abstraction level. I see the two situations as very similar.
- olliepro 9mo agoWhat abstraction levels do you expect will remain only in the Human domain? The progression from basic arithmetic, to complex ratios and basic algebra, graphing, geometry, trig, calculus, linear algebra, differential equations… all along the way, there are calculators that can help students (wolfram alpha basically). When they get to theory, proofs, etc… historically, thats where the calculator ended, but now there’s LLMs… it feels like the levels of abstractions without a “calculator” are running out. The compiler was the “calculator” abstraction of programming, and it seems like the high-level languages now have LLMs to convert NLP to code as a sort of compiler. Especially with the explicitly stated goal of LLM companies to create the “software singularity”, I’d be interested to hear the rationale for abstractions in CS which will remain off limits to LLMs.
- goostavos 9mo agoI had my first interview last week where I finally saw this in the wild. It was a student applying for an internship. It was the strangest interview. They had excellent textbook knowledge. They could tell you the space and time complexities of any data structure, but they couldn't explain anything about code they'd written or how it worked. After many painful and confusing minutes of trying to get them to explain, like, literally anything about how this thing on their resume worked, they finally shrugged and said that "GenAI did most of it." It was a bizarre disconnect having someone be both highly educated and yet crippled by not doing.
- drob518 9mo agoLots of theory but no practice.
- sally_glance 9mo agoMore like using a calculator but not being able to explain how to do the calculation by hand. A probabilistic calculator which is sometimes wrong at that. The "lots of theory but no practice" has always been true for a majority of graduates in my experience.
- drob518 9mo agoSurely, new grads are light on experience (particularly relevant experience), but they should have student projects and whatnot that they should be able to explain, particularly for coding. Hardware projects are more rare simply because they cost money for parts and schools have limited budgets, but software has far fewer demands.
- stahorn 9mo agoSounds a little bit like the stories from Feynman, e.g.: https://enlightenedidiot.net/random/feynman-on-brazilian-education-system/ https://enlightenedidiot.net/random/feynman-on-brazilian-edu... The students had memorized everything, but understood nothing. Add in access to generative AI, and you have the situation that you had with your interview. It's a good reminder that what we really do, as programmers or software engineers or what you wanna call it, is understanding how computers and computations work.
- mellosouls 9mo agoSure (knowing the underlying ideas and having proficiency in their application) - but producing software by conducting(?) LLMs is rapidly becoming a wide, deep and must-have skill and the lack thereof will be a weakness in any student entering the workplace.
- FloorEgg 9mo agoAI does have an incredibly powerful influence on learning. It can absolutely be used as a detriment, but it can also be just as powerful of a learning tool. It all comes down to keeping the student in the zone of proximal development. If AI is used by the student to get the task done as fast as possible the student will miss out on all the learning (too easy). If no AI is used at all, students can get stuck for long periods of time on either due to mismatches between instructional design and the specific learning context (missing prereq) or by mistakes in instructional design. AI has the potential to keep all learners within an ideal difficulty for optimal rate of learning so that students learn faster. We just shouldn't be using AI tools for productivity in the learning context, and we need more AI tools designed for optimizing learning ramps.
- ray_v 9mo agoLots of interesting ways to spin this. I was in a computer science course in the late 90s and we were not allowed to use the C++ standard library because it made you a "lazy programmer" according to the instructor. I'm not sure if I agree with that, but the way that I look at it is that computer science all about abstraction, and it seems to me that AI, generative pair programming, vibe coding or what ever you want to call it is just another level of abstraction. I think what is probably more important is to learn what are and are not good programming and project structures and use AI to abstract the boilerplate,. scaffolding, etc so that you can avoid foot guns early on in your development cycle.
- bluGill 9mo agoWhen in school the point is often to learn how to write complex code by writing things the standard library does. Though also in the 90's the standard library was new and often had bugs
- GoatInGrey 9mo agoThe counterargument here is that there is a distinction between an arbitrary line in the sand (C++ stdlb is bad) and using a text-generating machine to perform work for you, beginning to end. You are correct that as a responsibly used tool, LLMs offer exceptional utility and value. Though keep in sight the laziness of humans who focus on the immediate end result over the long-term consequences. It's the difference between the employee who copy-pastes all of their email bodies from ChatGPT versus the one who writes a full draft themselves and then asks an LLM for constructive feedback. One develops skills while the other atrophies.
- amunozo 9mo agoThat's why it's so important to teach how to use them properly instead of demonizing them. Let's be realistic, they are not going to disappear and students and workers are not stopping using them.
- sltr 9mo agoLLMs are not bicycles for the mind. They are more like E-bikes. More assist makes you go faster, but provides less exercise. https://www.slater.dev/2025/08/llms-are-not-bicycles-for-the-mind/ https://www.slater.dev/2025/08/llms-are-not-bicycles-for-the...
- deleted 9mo ago[deleted]
- GoatInGrey 9mo ago"Why think when AI do trick?" is an extremely alluring hole to jump headfirst into. Life is stressful, we're short on time, and we have obligations screaming in our ear like a crying baby. It seems appropriate to slip the ring of power onto your finger to deal with the immediate situation. Once you've put it on once, there is less mental friction to putting it on the next time. Over time, gently, overuse leads to the wearer cognitively deteriorating into a Gollum.
- ash_091 9mo ago> "Why think when AI do trick?" > grug once again catch grug slowly reaching for club, but grug stay calm
- victorbjorklund 9mo agoYea, I doubt I could learn to program today if I started today.
- byronic 9mo agoI was so lucky to land in a CS class where we were writing C++ by hand. I don't think that exists anymore, but it is where I would go in terms of teaching CS from first principles
- zenlot 9mo ago[dead]
- bstar77 9mo agoCompletely disagree. It’s like telling typists that they need to hand write to truly understand their craft. Syntax is just a way of communicating a concept to the machine. We now have a new (and admitidly imperfect) way of doing that. New skills are going to be required. Computer science is going to have to adapt.
- habinero 9mo agoNo, it's like telling typists they need to know how to read. Very different lol.
- JimmaDaRustla 9mo agoIt doesn't PREVENT them from learning anything - said properly, it lets developers become lazy and miss important learning opportunities. That's not AIs fault.
- leros 9mo agoI see junior devs hyping vibe coding and senior devs mostly using AI as an assistant. I fall in the latter camp myself. I've hired and trained tons of junior devs out of university. They become 20x productive after a year of experience. I think vibe coding is getting new devs to 5x productivity, which seems amazing, but then they get stuck there because they're not learning. So after year one, they're a 5x developer, not a 20x developer like they should be. I have some young friends who are 1-3 years into software careers I'm surprised by how little they know.
- saturnite 9mo agoIf I find myself writing code in a way that has me saying to myself "there has to be a better way," there usually is. That's when I could present AI with that little bit of what I want to write. What I've found to be important is to describe what I want in natural language. That's when AI might introduce me to a better way of doing things. At that point, I stop and learn all that I can about what the AI showed me. I look it up in books and trusted online tutorials to make sure it is the proper way to do it.
- daxfohl 9mo agoNot only that, it's constitution. I'm finding this with myself. After vibe coding for a month or so I let my subscription expire. Now when I look at the code it's like "ugh you mean now I have to think about this with my own brain???" Even while vibe-coding, I often found myself getting annoyed just having to explain things. The amount of patience I have for anything that doesn't "just work" the first time has drifted toward zero. If I can't get AI to do the right thing after three tries, "welp, I guess this project isn't getting finished!" It's not just laziness, it's like AI eats away at your pride of ownership. You start a project all hyped about making it great, but after a few cycles of AI doing the work, it's easy to get sucked into, "whatever, just make it work". Or better yet, "pretend to make it work, so I can go do something else."
- m463 9mo agoI just think it's like hitting the snooze button.
- syphia 9mo agoAgreed. I think the divide is between code-as-thinking and code-as-implementation. Trivial assignments and toy projects and geeking out over implementation details are necessary to learn what code is, and what can be done with it. Otherwise your ideas are too vague to guide AI to an implementation. Without the clarity that comes from thinking with code, a programmer using AI is the blind leading the blind. The social aspect of a dialogue is relaxing, but very little improvement is happening. It's like a study group where one (relatively) incompetent student tries to advise another, and then test day comes and they're outperformed by the weirdo that worked alone.
- acbart 9mo agoYes, exactly. I'm having a frustrating time reminding senior teachers of this, people with authority who should really know better. There seems to be some delusion that this technology will somehow change how people learn in a fundamental way.
- xnx 9mo ago> You CAN'T let the machines write the code People said this about compilers. It depends what layer you care to learn/focus on. AI at least gives us the option to move up another level.
- habinero 9mo agoCompilers are deterministic and have predictable, dependable behavior. And people can and do still write lower level code when it matters, because they understand when it matters.
- fn-mote 9mo agoThe problem is: now they also need to learn to code with an LLM assistant. That goes beyond "coding it by yourself". Well, it's different, anyway. Another skill to teach.
- godelski 9mo agoIt feels like coding agents have just abstracted the old programming problem of "computers do what you tell them, not what you mean to tell them"
- andai 9mo agoPart of the issue here is that you can look at something and think "oh yeah I understand that, it makes perfect sense!", but then completely fail to reproduce it yourself.
- f1shy 9mo agoThis is a good point. Letting people learning to code to use AI, would be like letting 6 to 10 yo in school just use pocket calculators and not learn to do basic arithmetic manually. Yes IRL you will have a calculator at hand, yes, the calculator will make less mistakes, still, for you to learn und understand, you have to do it manually.