7 ms·
AI is creating a generation of illiterate programmers
- dartos 2y agoProgramming is a skill that atrophies surprisingly quickly. I spent a year just coasting at a job and not really writing any code. It was quite difficult to get to my same level after starting my new job. Now that I’m back there I’m weary of losing my touch again.
- dns_snek 2y agoDoes it? I've had some months-long gaps where I hadn't written a single line of code and I always felt like I could get back up to speed within a few days. I suppose that depends on where you expect your level to be, are we talking about $300k+ positions at big tech or your average software job? Re-learning a large codebase would take longer, of course, but I'm talking about just getting up to speed like if I was starting a new project.
- dartos 2y agoObviously, it's different for everyone :) But surely you can tell it's not like riding a bike. > just getting up to speed like if I was starting a new project. This is the best case scenario for getting back up to speed. It may sound harsh, but there's not a lot of skill involved in starting new coding projects (it's one of the best things about the craft imo). Of course you'd get back up to speed quickly, especially if you have 10+ years of programming under your belt.
- xboxnolifes 2y ago> It may sound harsh, but there's not a lot of skill involved in starting new coding projects (it's one of the best things about the craft imo). I generally feel the opposite. Starting a new project, not just a prototype, requires a lot of decisions and knowledge that mostly only has to be applied at the beginning of a project. Language choice, core dependency choices, build system, deployment, general project structure, etc. Each one can be changed later on, but the longer a project goes on, the more of an impact these early decisions have, and the more important it is to get them mostly right from the start. On the other hand, when you join an existing project, many decisions of the project are already made and you just write code that resembles existing code.
- dartos 2y agoI think we’re just splitting hairs over what “project” means. But even so, many web projects are as easy as `npx create-next-app` and you have a solid foundation. It’s much harder to start working on an existing codebase. > you just write code that resembles existing code. This is so incredibly wrong. Every line of code you write as an IC on an existing project should take into consideration the existing code, the teams patterns and code style, and the reasoning behind existing systems. The choices that were made that you’re unaware of makes it much harder to write any code, let alone code that also resembles existing code. Decisions don’t require skill, necessarily. Anyone can just choose a web framework or a database. Working within the restrictions of an existing system has a much higher skill floor.
- mclau156 2y agoIts also creating a generation of non-programmers who can now program
- worthless-trash 2y agoI belive you are incorrect. Its making a generation of people who can write prompts and sometimes get a useful program out of it.
- lawlessone 2y agoshhh, think of all the security jobs this will create
- varispeed 2y agoSecurity jobbies using AI to find holes created by developers using AI. Too funny.
- grajaganDev 2y agoI predict that there will be a Security Engineer specialty in finding LLM written or influenced vulnerabilities.
- worthless-trash 2y agoBRB, becoming thought leader in this space.
- babyent 2y agoSystem: "You are a senior staff security engineer and researcher. Use the latest techniques and the internet for any new techniques to find any vulnerabilities in the code below. Do not give any explanations, only the fixed code" User: { AI generated 1600 line handler "getUsers" with sql injection, n+1 queries, an exposed secret, plaintext passwords and credit cards, and lots of unused variables }
- aredox 2y ago
- aredox 2y agoUsing AI to become a better coder is like using Reader's Digest to become a better writer, or build one's taste in literature.
- tmaly 2y agoReader's Digest is great. Do you have a subscription?
- aredox 2y agoI loved reading Reader's Digest when I was young. I shudder at the idea of what I would have become if life made it so that I would only read RD (bc of a lack of time, of support, of curiosity) for the rest of my life. A shallow half-knowledge I would have been contented with, oblivious to what literature is really about. Another similar idea I am culpable of: watching videos of people playing games instead of playing for myself. Not the same experience at all.
- KaiserPro 2y agoI bet there are journals that have roughly the same sentiment for compiled languages vs assembler. and then again on assembler vs machine code. However just like learning to drive, I think there is much scope for forcing the basics once in a while. The old programming blue shell, as it were.
- aiono 2y agoThere is a difference: when you code in higher level languages most of the time (except some domains where you still need to understand assembly) you don't need to understand how generated assembly works. This is not the case with AI generated code. You still need to be able understand, modify and validate the generated code.
- dartos 2y ago> I bet there are journals that have roughly the same sentiment for compiled languages vs assembler Please find one. I highly doubt there are any at all. AI isn’t translating idea to code. It’s guessing as to what the most likely next code is, given a context. Compiling is exactly translating code to machine code, but hiding some (or a ton of) technical details. Those are two wildly different mechanisms to interact with. Assembly and compiled languages require the same precision of thought, just at different levels of technical detail.
- danielbln 2y agoLLMs can absolutely translate ideas to code. How is that even a topic of debate. It might not always be good or maintainable code, but the whole notion of "it's just a next token predictor" is so trite at this point.
- dartos 2y agoYou're misunderstanding what I mean. Sorry, I have trouble articulating this idea. "Idea" was probably not the best word, but I'm not sure of a better one. LLMs can, in effect, translate some ideas into code. Under the hood, though, they are not. They are predicting next tokens based on context. There are impressive and obviously useful emergent properties of how good they are at predicting tokens, but that is what they are doing. There's no question there. That's a fact. It's not a direct translation, however, as is the case with compiled languages. Compiled languaged directly translate the idea you communicate to them into machine/byte code in a deterministic, predictable, and importantly tractable way. LLMs do not do that. They aren't abstracting what the computer can do so that you can more effectively write instructions. as you say > It might not always be good or maintainable code What if your idea _was_ good and/or maintainable machine/byte code? What if you needed to examine the output code and ensure some quality of it. With a compiler, if you can communicate in a programming language what exactly what you want, it will _always_ produce machine/byte code that matches that. LLMs just don't do that. It's just not how statistical models work.
- sschueller 2y agoI recently needed to create a Dockerfile which I have done many times before. Instead of opening the documentation I used ChatGPT. It took 3 times longer than if I had done it by hand because I just kept copy and pasting each error back to ChatGPT ending up in a dead end having to start over from scratch. As soon as you have a requirement that is not the 90% of cases you can quickly end up in a dead end especialy if you have more than one such requirement. Once the LLM starts hallucinating you can easily get into corner where you will need to reset and start from scratch.
- rvnx 2y agoI used to be like you. This is why you may want to try Cursor paired with Claude for this. Set Cursor in "agent" mode (with Claude as a model). Ask what you need. It will automatically test your Docker deployment and configuration. Then you become like me, a monkey clicking "Accept". But a happy monkey.
- chudGPT 2y agoEventually as your project grows in complexity, what you're asking of the model will exceed the intrinsic limits of what the model can do, and you won't be able to troubleshoot your problems yourself because you didn't learn anything along the way.
- wseqyrku 2y ago> As soon as you have a requirement that is not the 90% of cases you can quickly end up in a dead end You framed that as a criticism of ChatGPT, I think that is indeed the point the OP is making. IMO if this is something you used to do you could get a nice starting point with a single prompt and then go from there, then that would take 3 times less compared to reading the documentation from get-go.
- medhir 2y agoyeah, I’ve had many moments in my AI-driven development cycles looping with the LLM in a dead end, eventually giving up and falling back to regular old programming. I think LLMs are great for reducing the friction with just starting a task, but they end up being more of a nuisance when you need to dig into more nuanced problems.
- calmworm 2y agoAnd high level programming languages created a generation of programmers who can’t code in assembly or machine language.
- aithrowawaycomm 2y agoThat wouldn't be the case if ordinary compilers outputted buggy code 5% of the time like a SOTA LLM does. (I am being quite generous to LLMs here)
- ohplease 2y ago> 5% of the time that would be a generous invented statistic if it only was addressing the inherent stochastic nature of llm output, but you also have to factor in the training data being poisoned and out of date in my experience the error rate on llm output is MUCH higher than 5%
- atx2bos 2y agoexactly. Programming languages are all just levels of abstraction above the analog/digital interface. While it is important to understand the fundamentals of coding, if we expected every software engineer to be well versed in assembly that wouldn't necessarily result in increased productivity. LLMs are just the next rung up on the abstraction ladder. There will always be people interested in the gritty details of low level languages like Assembly, C, that give you a lot more granular control over memory. While large enterprises and codebases, as well as niche use cases can absolutely benefit from these low level abstraction specialists, the avg. org doesn't need an engineer with these skills. Especially startups, where getting the 80% done ASAP is critical to growth.
- dns_snek 2y agoWhat's the minimum set of skills that separates an idea person from a programmer? If someone who can't read, write, or debug code can still be called a programmer, which unique skills do they still possess?
- Tenoke 2y agoThey wouldn't needed to be 'literate' just how many programmers today don't need to know assembly or low level languages or compilers for their jobs.
- parpfish 2y agoWhat does gpt dependence look like for people that have non-programming office jobs where they just email all day? Do they just copy paste emails and office menus into an agent and send responses? Do they actually make any decisions themselves, or do they just go with whatever?
- slightwinder 2y agoI saw someone recently explaining it this way: we now have tools to inflate keywords and prompts into fancy side-long text, which we then feed to tools which will shrink those text into short summaries. So I guess office jobs are now grinding machines, where one side has keywords, the other side extracts keywords, and in the middle there is an enormous waste of resources to fit some manager's metrics.
- parpfish 2y agoWe spent years developing smarter compression tools, but AI has taught us that people actually want inflation tools
- slightwinder 2y agoSmells like an opportunity for a new product to serve all sides. Let the people send prompts, which are then inflated locally on receiver-side with custom prompt-modifications, before they are shrunken again. This way you get fancy small text for the transport, the sender doesn't have to waste money on AI, and the sender can personalize their response, or also save money by just reading the prompt directly. And finally, some company can make money from this. Win-win-win-win I would say.
- Havoc 2y ago>What does gpt dependence look like for people that have non-programming office jobs where they just email all day? There isn't any such dependency (yet). Despite strong corporate push I'd say the average person I work with uses it maybe once a week - usually research or summarization. The inroads LLMs are making on programming aren't translating to other office jobs cleanly. Think it's largely because other areas don't have an equivalent source of training data like github It'll no doubt come, but for now all programmers seem to have mostly automated themselves out of a job not others from what I can tell. >Do they actually make any decisions themselves There is little to no GPT decision making happening despite all the media chat about AI CEOs and similar bullshit. Inspiration for brainstorming is about as close as it gets
- lettergram 2y ago> We’re not becoming 10x developers with AI. > We’re becoming 10x dependent on AI. There’s a difference. This is true, but I also don't need 10x the ability to write cursive any more. I used to have great hand writing, now it's a very poor. That said, my ability to communicate has only increased throughout my life. Similarly, my ability to spell has probably diminished with auto-correct. Yes, you will become dependent on AI if you're a developer, because those who use AI will take your job (if you don't) and be significantly more productive than you. It sucks, but that's reality. My grandfather started programing on physical cards, he knew a lot of stuff I had no idea about. That said, I'd be able to run circles around him in the programming (and literal) sense today. The question is really what skills do you need to know to still execute the job with AI effectively. I'd argue that doesn't change between AI and not having AI. As a seasoned engineer, I spend probably 60% of my time designing, 30% managing/mentoring/reviewing and 10% coding. That probably wont change much with AI. I'll just be able to get a lot more done with the coding and design in the same timeframe. My skillsets likely will remain the same, though writing small functions may diminish slightly.
- palmfacehn 2y agoAgree here: >...and 10% coding. Disagree here: >AI will take your job (if you don't) and be significantly more productive than you Physically typing out the code is one of the last steps. Before that can happen the problem which is to be solved must be identified. An appropriate approach to the problem must be formulated. Look around at some of the deranged hype in this AI cycle or look back on previous hype cycles. Many of the proposed "solutions" do not solve the problems of consumers. Solutions in search of a problem are as abundant as novel tech. These things dominate the zeitgeist. Perhaps they help inspire us, but they are not guaranteed to solve immediate problems. There's an important distinction between problem solving skills, tools and the most probable token. To innovate is to do something new. AI, on the other hand, does the most probable thing.
- grajaganDev 2y agoLeetcode has created a generation of illiterate programmers.
- caseyy 2y agoYes but we already have illiterate programmers and there are companies who hire them, and the majority that recognises what they are and don’t. I’m talking about the code copy-pasters who cannot really reason about the problems they’re given nor understand how the code they pasted works. My point is that this is not a new phenomenon and I don’t think it will fool those that weren’t fooled by it before.
- zimbatm 2y agoThis is true for any type of assistance. We have had the same arguments about calculators a long time ago.
- sitzkrieg 2y agocalculators dont spit out nonsense learners will not catch
- AnimalMuppet 2y agoOh yes they do! (Granted, it's either because learners input nonsense, or because they fat-fingered when inputting sane numbers... which I suppose are the same thing when you come down to it.)
- pixxel 2y agoIncorrect inputs and it will. Double-checking source numbers and correct key presses was commonplace.
- tart-lemonade 2y agoI've heard this argument about spell checkers in Word, browsers, etc as well. Anecdotally, I wouldn't be surprised if there was some truth to it: in the early 2010s I saw tons of people saying "defiantly" that meant to type "definitely", and I couldn't figure out why. Then I misspelled "definitely" once and saw the spell checker suggested "defiantly", and it finally clicked. Spell checkers have definitely improved since then (I can't remember the last time I saw the definitely/defiantly mix-up), but I can't help but wonder how bad suggestions have affected the way people understand languages. A similar phenomenon exists on TikTok with words taking on contradictory or even opposite meanings, though this doesn't seem to be caused by spell check so much as constant incorrect usage rewriting the definition in people's minds (like "POV: you're getting mugged" when it should actually be "POV: you're mugging someone" or "POV: you're a bystander watching someone get mugged").
- insane_dreamer 2y agoThere is truth to it. My 12 year old is a horrible speller (like 3rd grade level) and doesn't care because he says he can "just use grammerly". There is a dumbing down effect, for sure.
- ookblah 2y agoimo we are seeing two types of programming viewports emerge. i mean maybe it's just me but i quite like this new normal where i'm an "intermediary". i review every line that comes out and research things if they don't make sense or i'm confused. and a lot of times it helps me figure out how to approach a problem or refine an existing one. i'm still architecting everything and diving in. i guess if you liken progamming to like i dunno, chopping your own tree down, turning it into 2x4s to build a house then yeah, it seems like your skills are atrophying. i do not miss the "joy" of writing random boilerplate 100s of times or variations of the same function. i do however fear for the the new generation who maybe didn't cut their teeth on having minimal guidance. i can totally see people just coasting and blindly pasting things, but that's always sort of existed on stack exchange, etc.
- TechDebtDevin 2y agoMy rule with LLMs is to use them only after reading documentation. It's easy to ask them for some boilerplate for something you haven't done in a long time, however, I think its better to just take five minutes to go read whatever spec/documentation is out there and then ask the LLM to write whatever code if you want.
- remoroid 2y agoCoding will become AI dominated at many levels. A lot of people on here don't want to hear that because they have an ego about their exclusive coding skills. Your compensation will decrease. You may be fired. The coding ability of the average 'senior' developer is not impressive, and the title will not protect you.
- phkahler 2y agoThe only thing AI can code is glue code. But that is the majority of what people write these days. I've avoided that kind of work and AI disappoints me every time I've tried it with one exception - text to images.
- philomath_mn 2y ago> The only thing AI can code is X I am curious, do you think it will stay this way? AI couldn't code anything 2.5 years ago, why should it stop with glue code? Yesterday I fed the first 3 questions from the 2024 Putnam Exam [0] into a new open source LLM and it got 3/3. The progress is incredible and I don't expect it to suddenly stop where it is. [0] https://kskedlaya.org/putnam-archive/ https://kskedlaya.org/putnam-archive/
- diogene_laerzio 2y agoThe results are already public aren't they. Couldn't have just read out the solution?
- philomath_mn 2y agoExam was administered on December 7th 2024, so it is possible this is in the training data but unlikely. The open source model as worked through the problem step by step (it was R1 so I could read its chain of thought). That could be an elaborate ruse, but also unlikely.
- phkahler 2y agoI expect it to get better some day, but not really good in the next 10 years. I've been calling BS on fully autonomous driving for a decade and I still believe it takes AGI to do that and I think that's still a long way out. LLMs literally grew out of autocomplete, and aside from having a huge amount of information they still don't understand, and certainly don't learn during inference.
- deleted 2y ago[deleted]
- jarsin 2y agoAI devs are the new drag and droppers. I remember all those devs who could only do tutorials using visual tools like VB6 and ASP forms. Once the requirements went beyond the basics the project always got handed off to a real dev.
- xena 2y agoI've ended up only using inline generative AI completions to do programming when I'm either on a strict deadline or making a demo for a conference/meetup talk. Otherwise I limit myself to pasting in/out of a chat window. This helps balance things out so that I can meet deadlines when I need to, both otherwise retain my programming/SRE skill. That being said, one of my top google searches are things like "kubernetes mount configmap as files" because I don't quite do them often enough to have them totally internalized yet.
- parpfish 2y agoI also use inline code generation, but it just seems like a more intelligent version of the code-aware autocomplete my IDE already provides. I love it, but it doesn’t feel like I’m atrophying because I’m still “driving”. It just saves a lot of keystrokes
- _Algernon_ 2y agoTangent: I remember hearing of a sci-fi story where a city has been automated for generations and stuff is starting to fall apart while nobody knows how to fix it. Does anyone know what the name is? I have been unable to find it for a while.
- xena 2y agoBlame! https://tvtropes.org/pmwiki/pmwiki.php/Manga/Blame https://tvtropes.org/pmwiki/pmwiki.php/Manga/Blame
- ThrowawayR2 2y agoPerhaps you're thinking of Forster's "The Machine Stops"? There's been plenty of submissions to HN in the past, with links to the story text, and user comments: https://hn.algolia.com/?dateRange=all&page=0&prefix=false&query=%22The%20Machine%20Stops%22&sort=byPopularity&type=story https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
- _Algernon_ 2y agoThis may be it. Thanks!
- grahamj 2y agoX to doubt. So far at least, to do anything nontrivial you still have to understand code. Sure it will raise the bar for what someone without such understanding can make, but a lot of that can already be done with code-free tools. What most people who would call themselves programmers are working on is far beyond what AI can do today, or probably in the foreseeable future.
- sys32768 2y agoEventually won't AI be trained on a massive corpus of source code and be tuned to actually program something as good as a lot of the existing bloatware out there that businesses pay out the nose for?
- red_admiral 2y agoThere are a lot of questions here that also apply to teaching CS. Do we want our graduates to still know the old way? Perhaps for job interviews and days when GPT is down and for problems it can't solve yet. The "no AI without understanding the solution" rule is a start here.
- insane_dreamer 2y ago> We’re not becoming 10x developers with AI. Of course not. The ultimate goal of AI is to get rid of the developers altogether and reduce costs (more profits!). You think BigTech are spending hundreds of billions just to make developers more productive while retaining them? That's not a profitable strategy. The copy/paste with LLM interactive stage is just a transitional stage as the LLM improves. We'll be past that in 5 years time. No, AIs won't replace all developers -- you still need people doing the systems designs that the AI can implement code for. But it could easily reduce their numbers by some large percentage (50%? 80%?). Edit: I would no longer advise my kids to get a degree in Computer Science.
- philomath_mn 2y ago> you still need people doing the systems designs that the AI can implement code for Given the rate of improvement up to that point, how much longer do you think this would be the case?
- insane_dreamer 2y agoI think that will get chipped away at incrementally, but you're right, eventually all you'll need is a list of requirements. I'd put that 30-50 years away, but some people might say sooner.
- tommy_axle 2y agoFor using requirements, much sooner. See Genatron.
- flerchin 2y agoWhatever you do, you get better at. Let's not wring our hands and fret over the generation of programmers that don't write assembly anymore.
- koakuma-chan 2y ago> First, I stopped reading documentation. Why bother when AI could explain things instantly? Because AI doesn't have the latest documentation.
- danielbln 2y agoIn my editor I do /fetch <docs url> and can then happily ask the LLM questions and/or have it use the docs when writing code. We don't need purely rely on zero shot prompts and pre-training data.
- EmersonL 2y agoIt's all in how you use it. Copy/paste driven development has long been a meme in the programming community. For me, AI is like pairing with a very knowledgeable and experienced developer that has infinite time, infinite patience, and zero judgements about my stupid questions or knowledge gaps. Together, we tackle roadblocks, dive deep into concepts, and as a result, I accept less compromises in my work. Hell, I've managed to learn and become productive in Vim for the first time in my career with the help of AI.
- ickelbawd 2y agoYes. But still you’re going to make AI tools anyway… ffs. I think AI is just giving cover to all the incompetent people in your org, and in fact will create more incompetence via the effect you yourself noticed. Eventually you’ll find many if not most of your coworkers are just wrappers around an LLM and provide little additional benefit—as I am finding.
- matthewfelgate 2y agoBut is a programmer who uses AI to program the same as a Typescript programmer who doesn't understand JavaScript well? Or a Python programmer who doesn't know C? Or a C programmer who doesn't know assembly code? Or an assembly coder who doesn't make his own PCBs? Is AI orchestration just adding another layer of abstraction to the top of the programming stack?
- weikju 2y agoNot until their outputs become predictable and reproducible. Then a form of English or whatever other language becomes your programming language with its quirks and special syntax to get the right result.
- abeppu 2y agoI think there's a weird disconnect between the author's experience (the automated tools are good but they induce dependency) and my own experience (the tools are bad, produces code that doesn't type-check, produces explanations that don't make sense, or suggest back to me the half-broken code I already have). I continue to believe that these tools would be more reliable if rather than merely doing next-token-prediction on code, we trained on the co-occurrence of human-written code, resulting IR, and execution traces, so the model must understand at least one level deeper of what the code does. If the prompt is not just a prose description but e.g. a skeleton of a trace, or a set of inputs/outputs/observable side effects, then simultaneously our generative tools only allow outputs which meet the constraints, with the natural and reasonable cost that the engineer needs to think a little more deeply about what they want. I think if done right, this could make many of us better engineers.
- rsynnott 2y agoI think it's particularly weird that many of these tools simply do not seem to know about the type-checker at all. You'd think that'd be basic, at least for the likes of essentially fancy autocompletes like copilot; if the thing you're going to output does not type check, do not output it.
- AnimalMuppet 2y agoThat would require actually understanding types. GPTs don't understand anything - not really. They know the words and how the words connect to each other, and that's all. What you want - what everybody wants - is a GPT plus. In this case, GPT plus a compiler's parsing ability. I don't think that's what we have, though. What we have is a GPT that was trained on more and better code snippets. That's not good enough.
- danielbln 2y agoThe tooling can take that over. Code has been generated that fails the type check? Let the type system of the IDE spit out diagnostics, feed it back to the LLM and let it output correct code. This can be made automatic, same with automated testing. The problem with people sneering at LLM assisted coding is that they miss the developments and advancements in tooling and integration. Copy pasting from the ChatGPT browser tab and hoping for the best is not where it's at anymore.
- hybrid_study 2y agoIs this yet another thought that overemphasizes the immediate now? AI is developing so quickly it's difficult to see a whole generation of programmers being affected by negative transient aspects of this.
- smitty1e 2y agoThe last guy who traditionally "knew everything" was Erasmus. The shame is not in outsourcing the skill to, e.g. make a pencil[1]; rather, the shame is not retaining one's major skill. In IT, that is actually thinking. [1] https://www.youtube.com/watch?v=67tHtpac5ws https://www.youtube.com/watch?v=67tHtpac5ws
- tennisflyi 2y agoYes. Things can be too easy
- vrighter 2y ago'Instead, I’m starting with “No-AI Days.” One day a week where...' That's not enough. You will inevitably hit a problem which you will leave for "tomorrow" because tomorrow is not a No-AI day.
- ivolimmen 2y agoI have never used any AI for coding. It would feel like using side wheels on my bike. I have tested ChatGPT at one point but I did not even try coding stuff.