7 ms·
Using AI Generated Code Will Make You a Bad Programmer
- deleted 11mo ago[deleted]
- crimsoneer 11mo agoI think this is a slightly silly take. Yes, taking the bus to work will make me a worse runner than jogging there. Sometimes, I just want to get to a place. Secondly, I'm not convinced the best way to learn to be a good programmer is just to do a whole project from 0 to 100. International practice is a thing.
- takira 11mo agoAgreed mostly, especially in terms of efficiency. I have, however, been seeing more people recently with a built in dependency on their IDEs to solve their problems.
- oofbey 11mo agoUsing a compiler will also make you much worse at writing assembly code. Doesn’t bother me at all. Haven’t written any assembly since the 20th century.
- 29ebJCyy 11mo agoHaving someone else write the code is about as far from intentional practice as can be. I do think the “becoming dependent on your replacement” point is somewhat weak. Once AI is as good as the best human at programming (which I think could still be many years away), the conversation is moot.
- mrkeen 11mo agoMaybe it's more like being a taxi driver using a self-driving car.
- darkwater 11mo agoYep, this is the only analogy that makes sense. And if, like in the taxi situation, you are the owner of the taxi license, then you win because you keep making money but now you don't have to drive. But if OTOH you are just driving for a salary, bad news, you need to find another job now. Maybe if you are a very good driver, good looking and with good manners, some rich guy can hire you as his personal driver but otherwise...
- OptionOfT 11mo agoNo, it's more akin to running around the neighborhood for 3 miles vs driving to the gym and run on a treadmill there for 3 miles.
- PunchyHamster 11mo agoAI bus sometimes will just decide to take you to different city on a whim tho
- true2octave 11mo ago> It's probably fine--unless you care about self-improvement or taking pride in your work. I’m hired to solve business problems with technology, not to self-improve or get on my high horse because I hand-wrote a silly abstraction layer for the n-th time
- darkwater 11mo agoAnd you/we will be replaced by an AI that will solve the business problem (the day they get so good to actually do that, which might happen or not but... who knows?)
- rybosworld 11mo agoAnd the person that hand-writes the code won't be replaced?
- darkwater 11mo agoYes, as well. There aare probably 2 ways to see te future of LLMs / AI: they are either going to have the capabilities to replace all white collar work, or they are not. If you think they are going to replace us, then yo ucan either surrender or fight back, and personally I read all these anti-AI posts as fighting back, to help people realize we might be digging our own grave. If, OTOH, you see AI as a force-multiplier tool that's never going to completely replace a human developer then yes, probably the smartest thing to do is to learn how to master this new tool, but at the same time keep in mind the side effects it might bring, like atrophy.
- shadowgovt 11mo agoMy personal goal has been to dig that grave ever since I could hold a shovel. We've always been in the business of replacing humans in the 3-D's space (dirty, dangerous, dull... And to be clear. data manipulation for its own sake is dull). If we make AI that replaces 90% of what I do at my desk every day... We did it. We realized the dream from the old Tom Swift novels where he comes up with an idea for an invention and hands the idea off to his computer to extrapolate it, or the ship's computer in Star Trek acting like a perfect engineering and analytical assistant to take fuzzy asks from humans and turn them into useful output.
- deleted 11mo ago[deleted]
- alexgotoi 11mo ago[flagged]
- jumpman_miya 11mo ago[dead]
- frizlab 11mo ago> I love to write code. I very much do not love to read, review, and generate feedback on other people's code. I understand it's a good skill to develop and can be instrumental in helping to shape less experienced colleagues into more productive collaborators, but I still hate it. Same. Writing code is easy. Reading code is very very hard.
- eduction 11mo agoWhat an odd thing for them to put in the article. This is an example of AI generated code making someone a better programmer (by improving their ability to read code and give feedback). So it contradicts the title. They could rename it "Using AI Generated Code Makes Programming Less Fun, for Me", that would be more honest. The problem for programmers is (as a group) they tend to dislike the parts of their job that are hardest to replace with AI and love the stuff that is easiest for machines to copy. It turns out meetings, customer support, documentation, tests, and QA are core parts of being a good engineer.
- frizlab 11mo agoI don’t know about other people, but I tend to love architecting and code. Coding time, after architecting, is the “reward” for the brain. Just write what you’ve painstakingly engineered, let your brain rest. This is how I work. Honestly the writing time (the one I’m promised I'll gain on by using AI), is something like 10% of my coding time. And it’s the only time I’m “resting” so yeah. I don’t want to get rid of it. Nor do I need it. And I especially do not want to check on the “intern” to verify it did what I imagined. Nor do I want to spend time explaining what I imagined. I just do it.
- dahateb 11mo agoI find a that actually a disturbing assumption. I've learned a lot from reading other peoples code, seeing how they were thinking and spotting errors, so the good and the bad. I believe that in order to actually write good code its important to actually understand what is the context of the task which basically requires a lot of code reading, which is also sometimes quite enjoyable when you have competent authors. Reading code is an essential part of the game. If you cannot do that you'll just create huge balls of mud with or without ai usage. Though using ai will speedrun the mud so yeah, there is an argument for not using it.
- kevin42 11mo agoIs it just me, or does anyone else use AI not just to write code, but to learn. Since I've been using Claude I've learned a lot about Rust by having it build things for me, then working with that code. I've never been a front end guy, but I had it write a Chrome plugin for me, then I used that code to learn how it works. It's not a black box to me, but I don't need to look up some CSS stuff I've never used. I can prompt Claude to write it and then I can look at it then "Huh, that's how it works". Better than researching it myself, I can see an example of exactly how it's done, then I learn from that. I'm doing a lot of new things I never would have done before. Yes, I could have googled APIs and read tutorials, but I learn best by doing, and AI helps me learn a lot faster.
- okokwhatever 11mo agoThis is the smartest answer in this polarized thread
- RationPhantoms 11mo agoAbsolutely. It's a tireless rubik's cube. One that you can rotate endlessly to digest new material. It doesn't sigh heavily or not have the mental bandwidth to answer. Yes, it should not be trusted with high precision information but the world can get by quite well on vibes.
- mmoll 11mo agoThat may be dangerous. The more obscure the topic, the more likely it is that the AI will come up with a working but needlessly convoluted solution.
- kevin42 11mo agoCompared to what though? I have ended up with needlessly convoluted solutions when learning something the old-fashioned way before. Then over time, as I learn more, I improve my approach. Not everyone has access to an expert that will guide them to the most efficient way to do something. With either form of learning though, critical thinking is required.
- 11mo ago
- jgbuddy 11mo agoA bad programmer maybe, but a better / faster developer.
- PunchyHamster 11mo agowell, faster, till you have to touch old code that now neither you nor AI understands
- jf22 11mo agoAI's are amazing at understanding even the utterly horrific bad code. I've refactored the sloppiest slop with AI in days with zero regressions. If I did it manually it could have taken months.
- monkaiju 11mo agoNot in my experience... I am more productive and produce better output than the devs i know that rely on AI tooling
- threethirtytwo 11mo agoExactly 2 years ago I remember people calling AI stochastic parrots with no actual intellectual capability and people on HN weren’t remotely worried that AI would take over there jobs. I mean in 2 years the entire mentality shifted. Most people on HN were just completely and utterly wrong (also quite embarrassing if you read how self assured these people were, this is like 70 percent of HN at the time). First AI is clearly not a stochastic parrot and second it hasn’t taken our jobs yet but we can all see that potential up ahead. Now we get articles like this saying your skills will atrophy with AI because the entire industry is using it now. I think it’s clear. Everyone’s skills will atrophy. This is the future. I fully expect in the coming decades that the generation after zoomers have never coded ever without the assistance of AI and they will have an even harder time finding jobs in software. Also: because the change happened so fast you see tons of pockets of people who aren’t caught up yet. People who don’t realize that the above is the overarching reality. You’ll know you’re one of these people if AI hasn’t basically taken over your work place and you and your coworkers aren’t going all in on Claude or Codex. Give it another 2 years and everyone will flip here too.
- data-ottawa 11mo agoHow is AI not a stochastic parrot? That’s exactly what it is. That never precluded it from being useful.
- mmoll 11mo agoExactly. After all, how can WE confidently claim that we’re more than stochastic parrots?
- throwway120385 11mo agoYeah -- stochastic just implies a probabilistic method. It's just that when you include enough parameters your probabilities start to match the actual space of acceptable results really really well. In other words, we started to throw memory at the problem and the results got better. But it doesn't change the fundamentals of the approach.
- RationPhantoms 11mo ago
- kerkeslager 11mo agoI think, for those of us who have been in this industry for 20 years, AI isn't going to magically make me lose everything I learned. However, for those in the first few years of their career, I'm definitely seeing the problem where junior devs are reaching for AI on everything, and aren't developing any skills that would allow them to do anything more than the AI can do or catch any of the mistakes that AI makes. I don't see them on a path that leads them from where they are to where I am. A lot of my generation of developers is moving into management, switching fields, or simply retiring in their 40s. In theory there should be some of us left who can do what AI can't for another 20 years until we reach actual retirement age, but programming isn't a field that retains its older developers well. So this problem is going to catch up with us quickly. Then again, I don't feel like I ever really lived up to any of the programmers I looked up to from the 80s and 90s, and I can't really point to many modern programmers I look up to in the same way. Moxie and Rob Nystrom, maybe? And the field hasn't collapsed, so maybe the next generation will figure out how to make it work.
- fellowniusmonk 11mo agoSo this author loves the easy part (writing code), hates the hard part (reading and reviewing), and lacks so much self awareness that he is going to lecture people on skill atrophy? If you want to be an artist be an artist, that's fine, don't confuse artististry with engineering. I write art code for myself, I engineer code professionally. The author wraps with a false dichotomy that uses emotionally loaded language at the end: "You Believe We have Entered a New Post-Work Era, and Trust the Corporations to Shepherd Us Into It". I mean, what? Why can't I think it's quickly becoming a new era _and_ not trust corporations? Why does the author take that idea off the table? Is this logic or rhetoric? Who is this author trying to convince? SWE life has always had smatterings of weird gatekeeping, self identities wrapped up in external tooling or paradigms, fragile egos, general misanthropy, post-hoc rationalization, etc. but... man watching the progressions of the crash outs these last few years has been wild.
- shadowgovt 11mo agoThis is a key insight. In my day job, I use best practices. If I'm changing a SQL database, I write database migrations. In my hobby coding? I will never write a database migration. You couldn't force me to at gunpoint. I just hate them, aesthetically. I will come up with the most elaborate and fragile solutions to avoid writing them. It's part of the fun.
- jonas21 11mo agoYou could make the same argument that "Using Open-Source Code Will Make You a Bad Programmer" -- and in fact, a generation ago, many people did.
- shadowgovt 11mo agoI've also heard similar arguments about "Using stackoverflow instead of RTFM makes you a bad programmer." These things are all tradeoffs. A junior engineer who goes to the manual every time is something I encourage, but if they go exclusively to only the manual every time they are going to be slower and produce code more disjoint and harder to maintain than their peers who have taken advantage of other people's insights into the things the manuals don't say.
- billy99k 11mo agoIt doesn't make you a bad developer, it just stops novel and innovative ways of doing something, because the cheaper way is to just use what's free.
- shadowgovt 11mo agoAt some point, "novel and innovative" becomes Rube Goldberg, not I.M. Pei. I think for software engineering, the far more common issue is that there's already a best practice and the individual engineer hasn't chanced to hear about it yet than the problem on the desk is in need of a brand-new mousetrap.
- ThrowawayR2 11mo ago> "...many people did..." I'm trying to think of any examples of someone who said that "a generation ago" at all? I assume that they were some sort of fringe crackpot.
- NitpickLawyer 11mo agoI am old enough to have heard this before. C makes you a bad programmer. Real men code in assembler. IDEs make you a bad programmer. Real men code in a text editor. Intellisense / autocomplete makes you a bad programmer. Real men RTFM. Round and round we go...
- HPsquared 11mo agoI'll always remember a lab we had in university where we hand-wrote machine code to do blinkenlights, and used an array of toggle switches to enter each byte into memory by hand.
- monkaiju 11mo agoThose are all syntactic changes, AI attempts to be semantic, totally different.
- CharlesW 11mo agoThe examples are semantic shifts. Assembler → C wasn't just a syntax swap (functions are semantic units, types are meaning, compilation is optimization reasoning, etc.). "Rename this symbol safely across a project" is a semantic transformation. And of course, autocomplete is semantic. AI represents a difference in degree, but not kind. Like the examples cited by the parent, AI further moves us from lower-level semantics to higher-level semantics.
- monkaiju 11mo agoFair enough that semantic might not be the best word, but the point is that none of those tools attempt to actually do anything involving _understanding_, thats all for the human. Autocomplete is based on heuristics that are replicable given the same inputs, LLM-based AI is not. Your instructions are not "compiled" like in languages, they're mathsticated
- saubeidl 11mo agoAll of this is true, but all of the examples that came before were deterministic, so once you understood the abstraction, you still understood the whole thing. AI is different.
- jf22 11mo agoThe same way the loom made bad weavers. Anybody know any weavers making > 100k a year?
- ralferoo 11mo agoI guess yours might have been intended to be a facetious comment, but a quick google for designer weaving shows up a UK company as the first hit for me that sells their work for approximately $1500 per square foot. If the demand for this work is high, maybe the individual workers aren't earning $100k per year, but the owner of the company who presumably was/is a weaver might well be earning that much. What the loom has done is made the repeatable mass production of items cheap and convenient. What used to be a very expensive purchase is now available to more people at a significantly cheaper price, so probably the profits of the companies making them are about the same or higher, just on a higher volume. It hasn't entirely removed the market for high end quality weaving, although it probably has reduced the number of people buying high-end bespoke items if they can buy a "good enough" item much cheaper. But having said that, I don't think weavers were on the inflation-adjusted equivalent of 100k before the loom either. They may have been skilled artisans, but that doesn't mean the majority were paid multiples above an average wage. The current price bubble for programming salaries is based on the high salaries being worth paying for a company who can leverage that person to produce software that can earn the company significantly more than that salary, coupled with the historic demand for good programmers exceeding supply. I'm sure that even if the bulk of programming jobs disappear because people can produce "good enough" software for their purposes using AI, there will always be a requirement for highly skilled specialists to do what AI can't, or from companies that want a higher confidence that the code is correct/maintainable than AI can provide.
- jf22 11mo agoI think this comment supports the point I was trying to make...
- mohsen1 11mo agoI'm just enjoying the last few years of this career. Let me have fun! Joking aside, we have to understand that this is the way software is being created and this tool is going to be the tool most trivial software (which most of us make) will be created with. I feel like the industry is telling me: Adopt of become irrelevant
- jf22 11mo agoI already miss the fun heads down days of unraveling complex bugs. Now I'm just telling AI what to do.
- wrs 11mo agoActually kind of worse: adopt and become irrelevant.
- xtracto 11mo agoMeh, I am also old enough to have experienced what the GP post mentioned, and I remember also when Visual Basic 6 was released, a similar sentiment appeared: Suddenly, every cousin 13 year old could implement apps for their Uncle's dental office, laboratory, parts shop billing, tourism office management, etc. Some people also believed that software developers would become irrelevant in couple of years. For me as an old programmer, I am having A BLAST using these tools. I have used enough tools (TurboBasic, Rational Rose (model based development, ha!), NetBeans, Eclipse, VB6, BorlandC++ builder) to be able to identify their limits and work with them.
- wrs 11mo agoThat's great! I am also having a blast, and trying hard to take advantage of the new capability while not turning into the programmer equivalent of the passengers of the BNL Axiom. We aren't the intended audience for this post.
- alunchbox 11mo agoI get your points here; I've had a similar discussion with my VP of Engineering. His argument is that I'm not hired to write `if` statements, I'm hired to solve problems. AI can solve it faster that's what he cares about at the end of the day. However I agree there's a different category here under the idea of 'craft'. I don't have a good way to express this. It's not that I'm writing these 'if' statements in a particular way, it's how the whole system is structured and I understand every single line and it's an expression of my clarity of the system in code. I believe there a split between these two and both are focusing on different problems. Again I don't want to label, but if I *had to* I would say one side is business focused. Here's the thing though - your end customers don't give a fuck if it's built with AI or crafted by hand. The other side is the craftsmanship, and I don't know how to express this to make sense. I'm looking for a good way to express this - feeling? Reality? Practice? IDK, but I do understand your side of it; However, I don't think many companies will give a shit. If they can go to market in 2 weeks vs 2 month's you know what they'll choose.
- deleted 11mo ago[deleted]
- rbbydotdev 11mo agoWhile I agree with much of the sentiment, I believe a point will approach where the amount of code and likely its complexity; due to having been written by ai, will require ai to work with and maintain
- monkaiju 11mo agoBut theyre worse at navigating nuance and complexity than humans...
- antfarm 11mo agoI have always found it way easier to write code than to understand code written by someone else. I use Claude for research and architectural discussions, but only allow it to present code snippets, not to change any files. I treat those the same way I treat code from Stack Overflow and manually adapt them to the present coding guidelines and my aesthetics. Not a recipe for 10x, but it gets road blocks out of the way quickly.
- d--b 11mo agoFWIW, AI writes React code much better than I ever could (or would want to know)
- ErroneousBosh 11mo agoYeah. Come and talk to me when AI can actually write code, though.
- focusgroup0 11mo agoAdapt, accept, or be replaced
- billy99k 11mo agoThis is the future of code. I know plenty of 50-something developers out of work because they stuck to their old ways and the tech world left them behind.
- monkaiju 11mo agoIts honestly a phenomenal time to be a developer that doesnt use AI tooling. Its easier now than ever to differentiate yourself from increasingly knowledge-less devs who can only recite buzzwords but cant actually create, maintain, and improve remotely complex systems.
- bloppe 11mo agoIt has long been understood that programming is more about reading code than writing code. I don't see any issue with having LLMs write code. The real issue arises when you stop bothering to read all the code that the LLM writes.
- lelanthran 11mo ago> The real issue arises when you stop bothering to read all the code that the LLM writes. Fluency in reading will disappear if you aren't writing enough. And for the pipeline from junior to senior, if the juniors don't write as much as we wrote when young, they are never going to develop the fluency to read.
- bloppe 11mo agoI think you have this backward. Someone who never reads might forget how to write. Someone who never writes, but reads all the time, will not forget how to read.
- lelanthran 11mo ago> I think you have this backward. Someone who never reads might forget how to write. Someone who never writes, but reads all the time, will not forget how to read. You are saying something completely different to what I am saying; are you really saying that someone who writes all the time will forget how to read? You understand that the act of writing is in fact partially reading?
- Ragnarockooo 11mo agoIt's more about moving to higher levels of abstraction than reading vs writing
- lelanthran 11mo ago> It's more about moving to higher levels of abstraction than reading vs writing There is no "moving higher" with LLMs, is there? I am already at the higher level of abstraction needed to delegate to a subordinate and check their work. Whether that subordinate is man or machine is not really relevant.
- ramesh31 11mo ago>It's probably fine--unless you care about self-improvement or taking pride in your work. I did, for a very long time. Then I realized that it's just work, and I'd like to spend my life minimizing the amount of that I do and maximizing the things I do want to do. Code gen has completely changed the equation for workaday folks. Maybe that will make us obsolete, and fall out of practice. But I tend to think the best software engineers are the laziest ones who don't try to be clever. Maybe not the best programmers per se, but I know whose codebase I'd rather inherit.
- outside2344 11mo agoAnyone want to wade in and claim CodeSense made us worse developers too?
- deleted 11mo ago[deleted]
- macinjosh 11mo agoWow folks really aren’t getting that your perfectly idiomatic, well formatted, agonized over code isn’t needed any more. People care if their software works. They don’t care how beautiful the code is. AI can churn out 25 drafts faster than 99% of devs can get their boilerplate setup for the first time. The new skill is fitting all that output into deployable code, which if you are experienced in shipping software is not hard to get the model to do.
- QuadrupleA 11mo agoAs a 25+ year veteran programmer that's been mostly unimpressed with the quality of AI-generated code - I've still learned from it. Just read each line it generates carefully. Read the API references of unfamiliar functions or language features it uses. You'll learn things. You'll also see a lot of stupidity, overcomplication, outdated or incorrect APIs calls, etc.
- deleted 11mo ago[deleted]
- visarga 11mo agoCoding agents are going to become better and used everywhere, why train for the artisanal coding style of 2010 when you are closer to 2030? What you need to know is how to break complex projects in small parts, improve testing, organize work and the typical agent problems and capabilities. In the future no employer is going to have the patience for you to code manually.
- xp84 11mo agoMaybe everyone is using these agentic tools super heavily, and it’s way different for them, but I just use AI to do all the boring stuff, then I read it and tweak it. It just accelerates my process by 2-5x since I don’t have to implement boring and tedious things like reading or writing a csv file, so I can spend all my coding time on the actually important parts, the novel parts. I don’t commit 1,000 lines that i don’t know how it works. If people are just not coding anymore and trusting AI to do everything, i agree, they’re going to hit a wall hard once the complexity of their non-architected Frankenstein project hits a certain level. And they’ll be paying for a ton of tokens to spin the AI’s wheels trying to fix it.
- hmans 11mo ago[dead]
- beeboop0 11mo ago[dead]
- lazarus01 11mo agoSome things LLMs can do are amazing and some things they fail at miserably. I do enjoy programming and low level programming helps you build a mental model on what a system is capable of. If you know what a system is capable of, you can form higher levels of abstraction, that the LLM will never figure out. AI in its plain definition is the automation of human cognitive process. Having AI work on cognitively demanding tasks gives you energy to focus on other things, like higher levels of abstraction. I cover a wide set of domains, LLM is much better at some of them, worse at others. I learn from my mistakes, I also learn from the LLM mistakes. If your intention is to be a good programmer, you will use it as a tool to learn and be productive. I love the stack overflow experience, but now they are a data provider to llms. This is the shift in how technology is being used, even according to stacks ceo, “I think we will see a lot of job displacement in the next two years” Adoption for code gen and workflow execution is too significant to be ignored.
- irthomasthomas 11mo agoPerhaps a bad programmer but a better engineer?
- jbbryant 11mo agoNope, it will make you employable. Because those that don't won't be able to compete. I have 20 years experience and I have seen this before....
- rocksandsticks 11mo agoIf you're asking another entity (human or AI) to generate code for your project, then you're becoming a manager, not a programmer. I think we can all agree that "becoming a manager will make you a bad programmer", but somebody's got to be the manager. Now, whether a person wants to be a manager or not, or whether they do a good job at it, is another question.
- mrdootdoot 11mo agoThey make some engineers 10x more productive and some engineers 10x less productive. LLMs give you all the rope you want to hang yourself. Some engs I work with have their strengths, but using an LLM just totally ruins them. I watched one miss a deadline by a month - letting Claude take them down OOM rabbit holes for a simple python ETL script. When I did finally stop and try to help what I saw was incredible. Claude churned out all of this OOM/garbage collection with prediction nonsense - totally gaslighting this engineer. They didn’t even stop to question and have the thought Python did its own GC - why are they writing code to do it? Whats wrong with my logic? Claude certainly didn’t bring it up… This individual would have performed better without an LLM - just writing from scratch on their own being forced to think step by step and understand the implementation and the tools they were using. This has been great for Years for this eng. Flip side is I’ve seen good engineers do incredible things. I’m worried this widens the skill gap. I hope these individuals, like The Eng I mentioned with the script, can figure out a productive way to leverage LLMs. It’s definitely a new skill to use agentic coding tools.
- cindyllm 11mo ago[dead]