5 ms·
AI made coding more enjoyable
- chrisjj 7mo ago> AI made coding more enjoyable ...just not for users.
- sergiomattei 7mo agoI feel the same way. > That includes code outside of the happy path, like error handling and input validation. But also other typing exercises like processing an entity with 10 different types, where each type must be handled separately. Or propagating one property through the system on 5 different types in multiple layers. With AI, I feel I'm less caught up in the minutia of programming and have more cognitive space for the fun parts: engineering systems, designing interfaces and improving parts of a codebase. I don't mind this new world. I was never too attached to my ability to pump out boilerplate at a rapid pace. What I like is engineering and this new AI world allows me to explore new approaches and connect ideas faster than I've ever been able to before.
- awepofiwaop 7mo agoAre you not concerned that this world is deeply tied to you having an internet connection to one of a couple companies' servers? They can jack up the price, cut you off, etc.
- sergiomattei 7mo agoSeeing how things are moving, I'm expecting for compute requirements to go down over a longer time horizon, as most technologies do. I'd rather spend my time preparing for this new world now.
- fogzen 7mo agoNot going to last long though, at least not professionally. AI will do the spec and architecture too. The LLM will do the entire pipeline between customer or market research to deployment. This is already possible with bug fixes pretty much. And many features too depending on the business.
- sarchertech 7mo agoIt AI gets to that level generally, there won’t be a customer, a market research department, or a software company at all. But if AI is capable of that it’s not a big step to being capable of doing any white collar job, and we’ll either reorganize our economy completely or collapse.
- sergiomattei 7mo agoI don't know. LLMs are great at writing code; but you have to have the right ideas to get decent output. I spend tons of time handholding LLMs--they're not a replacement for thinking. If you give them a closed-loop problem where it's easy to experiment and check for correctness, then sure. But many problems are open-loop where there's no clear benchmark. LLMs are powerful if you have the right ideas. Input = output. Otherwise you get slop that breaks often and barely gets the job done, full of hallucinations and incorrect reasoning. Because they can't think for you.
- perrygeo 7mo ago> explore new approaches and connect ideas faster This is the hidden super power of LLM - prototyping without attachment to the outcome. Ten years ago, if you wanted to explore a major architectural decision, you would be bogged down for weeks in meetings convincing others, then a few more weeks making it happen. Then if it didn't work out, it feels like failure and everyone gets frustrated. Now it's assumed you can make it work fast - so do it four different ways and test it empirically. LLMs bring us closer to doing actual science, so we can do away with all the voodoo agile rituals and high emotional attachment that used to dominate the decision process.
- sodapopcan 7mo agoThat's only because no one understood agile or XP and they've become a "no one actually does that stuff" joke to many. I have first hand experience with prototyping full features in a day or two and throwing the result away. It comes with the added benefit of getting your hands dirty and being able to make more informed decisions when doing the actual implementation. It has always been possible, just most people didn't want to do it.
- empath75 7mo agoI basically just _accidentally_ added a major new feature to one of my projects this week. In the sense that, I was trying to explain what I wanted to do to a coworker and my manager, and we kept going back and forth trying to understand the shape of it and what value it would add and how much time it would be worth spending and what priority we should put on it. And I was like -- let me just spend like an hour putting together a partially working prototype for you, and claude got _so close_ to just completely one-shotting the entire feature in my first prompt, that I ended up spending 3 hours just putting the finishing touches on it and we shipped it before we even wrote a user story. We did all that work after it was already done. Claude even mocked up a fully interactive UI for our UI designer to work from. It's literally easier and faster to just tell claude to do something than to explain why you want to do it to a coworker.
- danielvaughn 7mo agoThe way I like to think about it is to split work into two broad categories - creative work and toil. Creative work is the type of work we want to continue doing. Toil is the work we want to reduce. edit - an interesting facet of AI progress is that the split between these two types of work gets more and more granular. It has led me to actively be aware of what I'm doing as I work, and to critically examine whether certain mechanics are inherently toilistic or creative. I realized that a LOT of what I do feels creative but isn't - the manner in which I type, the way I shape and format code. It's more in the manner of catharsis than creation.
- matthewkayin 7mo agoYou cannot remove the toil without removing the creative work. Just like how, in writing a story, a writer must also toil over each sentence, and should this be an emdash or a comma? and should I break the paragraph here or there? All this minutia is just as important to the final product as grand ideas and architecture are. If you don't care about those little details, then fine. But you sacrifice some authorship of the program when you outsource those things to an agent. (And I would say, you sacrifice some quality as well).
- danielvaughn 7mo agoIt all depends on how you split the difference. I wouldn't call the emdash vs comma problem toil. It's fine-grained and there are technical aspects to the decision, but it's also fundamentally part of the output.
- CuriouslyC 7mo agoYou can remove a lot of toil from the writing process without taking away a writer's ability to do line edits. There's a lot of outlining, organization, bookkeeping and continuity work AI automates in the early draft/structural editing process. Most writers can't even get a first draft of anything done, and labor under the mistaken assumption that a first draft is just a few minor edits away from being the final book. The reality is that a first draft might be 10% of the total time of the book, and you will do many rounds of rereading and major structural revision, then several rounds of line editing. AI is bad at line editing (though it's ok at finding things to nitpick), so even if your first draft and rough structural changes are 100% AI, you have basically a 0% chance of getting published unless you completely re-write it as part of the editing process.
- data-ottawa 7mo agoI quite agree with this. I’m working on library code in zig, and it’s very nice to have AI write the FFI interface with python. That’s not technically difficult or high risk, but it is tedious and boring. Realistically having a helper to get me over slumps like that has been amazing for my personal productivity.
- furyofantares 7mo agoI love everything about coding. I love architecting a system, and I love tending all the little details. I love to look at the system as a whole or a block of code in isolation and find nothing I want to change, and take pride in all of it. I also love making products. LLM-agents have made making products, especially small ones, a lot easier, but sacrifice much of the crafting of details and, if the project is small enough, the architecture. I've certainly enjoyed using them a lot over the last year and a half, but I've come to really miss fully wrapping my head around a problem, having intimate knowledge of the details of the system, and taking pride in every little detail.
- xaviervn 7mo agoMe too, and I'm glad to see that this point keeps being brought up. I noticed that what shapes my satisfaction (or dissatisfaction) about working with AI depends on whether have understanding of what's being built or not. For a prototype, it's pretty amazing to generate a working app with one or two prompts. But when I get serious about it, it becomes such a chore. The little papercuts start adding up, I lose speed as I deal with them, and the inner workings of the app becomes a foreign entity to me. It's counterintuitive, but what's helping me enjoy coding is actually going slower with AI. I found out that my productivity gains are not on building faster, but learning faster and in a very targeted way.
- jeandejean 7mo agoThat's it? That post shouldn't be on HackerNews tbh...
- tomhow 7mo agoSure, but please just flag submissions rather than posting comments like this. The guidelines are explicit about this: Please don't complain that a submission is inappropriate. If a story is spam or off-topic, flag it. If a story hangs around on the front page even after you've flagged it, you can always email us (hn@ycombinator.com) and we'll take a look. That will get our attention much more quickly than a comment.
- zooi 7mo agoI used to share this sentiment but the more I used AI for programming, the less I enjoyed it. Even writing "boring" code (like tests or summaries) by hand increased my understanding of what I wrote and how it integrates into the rest of the codebase, which I think is fun. Letting a robot write code for me, however tedious it would be to write manually, made me feel like I was working in someone else's codebase. It reminds me of launching a videogame and letting someone else play through the boring parts. I might as well not be playing. Why bother at all? I understand this behaviour if you're working for a company on some miserable product, but not for personal projects.
- some-guy 7mo agoI generally agree with you. As a recent father with a toddler, and two parents with a full time job, I’ve found that the only way I can make time for those personal side projects is to use AI to do most of the bootstrapping, and then do the final tweaks on my own. Most of this is around home automation, managing my Linux ISO server, among other things. But it certainly would be more fun and rewarding if I did it all myself.
- nkassis 7mo agoThis feels like the same moment for me when I realized I couldn't keep using Gentoo and needed to move on to a Linux distribution that was ready to go without lots of manual effort. I have a family and kids I need those hours. I had the same feeling as OP of losing a fun learning activity. No longer progressing on Linux knowledge just maintaining. Granted it was good enough level to move on but it's still a loss. I do the same as you with AI now, it's allowing me to build simple things quickly and revise later. Sometimes I never have to. I feel similarly that I'm no longer progressing as a dev just maintaining what I know. That might change I might adapt how I approach work and find the balance but for now it's a new activity entirely. I've talked to many people over the years who saw coding as a get shit done activity. Stop when it's good enough. They never approached it really as a hobby and a learning experience. It wasn't about self progression to them. Mentioning that I read computer books resulted in a disgusted face "You can just google what you need when you need it". Always felt odd to me, software development was my hobby something I loved not just a job. Now I think they will thrive in this world. It's pure results. No need to know a breath of things or what's out there to start on the right foot. AI has it all somewhere in it's matrix. Hopefully they develop enough taste to figure out what's good from bad when it's something that matters.
- mrwh 7mo agoNot to be that curmudgeon (who am I kidding), but it's made reviewing code very much less enjoyable, and I review more changes than I write. Engineers merrily sending fixes they barely understand (or, worse, don't think they need to understand) for the rest of us to handle, and somehow lines-of-code has become a positive metric again. How convenient!
- munk-a 7mo agoIt has always been my opinion (and born out by our statistics internally, when counting self-review in the form of manual testing and automated test writing) that reviewing code (to the level of catching defects) often takes more time than actually building the solution. So I have a pretty big concern that the majority of AI code generation ends up adding time to tasks than it saves because it's optimizing the cheap tasks at the expense of the costly tasks.
- pjm331 7mo agoas much as you or i may be against it, inevitably AI coding will move away from human review and toward more automated means measuring program correctness this was already happening even before AI - human review is limited, linting is limited, type checking is limited, automated testing is limited if all of these things were perfect at catching errors then we would not need tracing and observability of production systems - but they are imperfect and you need that entire spectrum of things from testing to observability to really maintain a system so if you said - hey I'm going to remove this biased, error prone, imperfect quality control step and just replace it with better monitoring... not that unreasonable!
- munk-a 7mo agoI'm actually all for automated measures of program correctness and I think that manual testing is the last resort of tight budgets outside of highly complex integration issues. Adding more automated test cases that are built in to the CI pipline from the unit level to the highest levels (as long as they're not useless fluff) usually ensures a much lower level of defects. AI can help with that process, but only if we're diligent in checking that it isn't just building pages and pages of fluff ineffective tests - so we still end up needing to check the code and the tests that AI has written and I am still concerned that that ends up being more expensive in the long run.
- tqlpasj 7mo agoYeah, yeah, lighthouseapp.io offers AI summaries and more AI is planned: https://lighthouseapp.io/blog/introducing-lighthouse https://lighthouseapp.io/blog/introducing-lighthouse It looks like a vibe coded website.
- lbrito 7mo ago>Outside the happy path Uh, no. The happy path is the easy part with little to no thinking required. Edge cases and error handling is where we have to think hardest and learn the most.
- deleted 7mo ago[deleted]
- righthand 7mo agoCoding with AI is for those kids who were supposed to “stop playing games and clean their room right this minute”, but instead they shove all the crap in their closet and go back to playing games.
- bitwize 7mo agoLiterally me as an adult, I feel seen
- lsy 7mo agoAt what point do LLMs enable bad engineering practices, if instead of working to abstract or encapsulate toilsome programming tasks we point an expensive slot machine at them and generate a bunch of verbose code and carry on? I'm not sure where the tradeoff leads if there's no longer a pain signal for things that need to be re-thought or re-architected. And when anyone does create a new framework or abstraction, it doesn't have enough prior art for an LLM to adeptly generate, and fails to gain traction.
- chrisweekly 7mo agoGreat Q, and your framing "there's no longer a pain signal for things that need to be re-thought or re-architected" perfectly encapsulates a concern I hadn't yet articulated so cleanly. Thanks for that!
- michaelrpeskin 7mo agoHow much of "good engineering practices" exist because we're trying to make it easy for humans to work with the code? Pick your favorite GoF design pattern. Is that they best way to do it for the computer or the best way to do it for the developer? I'm just making this up now, maybe it's not the greatest example; but, let's consider the "visitor" pattern. There's some framework that does a big loop and calls the visit() function on an object. If you want to add a new type, you inherit from that interface, put visit() on your function and all is well. From a "good" engineering practice, this makes sense to a developer, you don't have to touch much code and your stuff lives in it's own little area. That all feels right to us as developers because we don't have a big context window. But what if your code was all generated code, and if you want to add a new type to do something that would have been done in visit(). You tell the LLM "add this new functionality to the loop for this type of object". Maybe it does a case statement and puts the stuff right in the loop. That "feels" bad if there's a human in the loop, but does it matter to the computer? Yes, we're early LLMs aren't deterministic, and verification may be hard now. But that may change. In the context of a higher-level language, y=x/3 and y=x/4 look the same, but I bet the generated assembly does a shift on the latter and a multiply-by-a-constant on the former. While the "developer interface", the source code, looks similar (like writing to a visitor pattern), the generated assembly will look different. Do we care?
- imzadi 7mo agoWhen I tried using a coding agent it felt like the AI was stealing my dopamine hits.
- butterisgood 7mo agoIt made coding way different for me. I'm able to get a proof-of-concept for an idea up pretty quick, and then I have to go back and decide if I like the style it produced. I feel more like a software producer or director than an engineer though.
- xyzsparetimexyz 7mo ago[flagged]
- cranberryturkey 7mo agoThe creative vs toil split resonates, but I think there's a third category everyone misses: the connective tissue. The glue code, the error handling, the edge cases that aren't creative but teach you how things actually break. I run 17 products as an indie maker. AI absolutely helps me ship faster — I can prototype in hours what used to take days. But the understanding gap is real. I've caught myself debugging AI-generated code where I didn't fully grok the failure mode because I didn't write the happy path. My compromise: I let AI handle the first pass on boilerplate, but I manually write anything that touches money, auth, or data integrity. Those are the places where understanding isn't optional.
- slibhb 7mo agoAI led to me writing code outside of work for the first time in years. I completed a small project that would've taken me months in a couple weeks. I'm excited to work on more things that I've been curious about for a long time but didn't have the time/energy to focus on.
- munk-a 7mo agoAI also led me to experiment a bit more. In my case it helped remove the barrier to getting that initial bare-bones skeleton of code in a new environment by helping setting up libraries and a compile chain I was unfamiliar with and then giving me a baseline to build off of. Did you find that AI helped you evenly all the way through the experience or was it more helpful earlier or later on?
- slibhb 7mo agoIt was probably most helpful early on when there was lots of code to write and stuff to configure. Context is an issue as time passes. But it's still quite helpful for tweaking things/adding features later on, as long as I provide it with the necessary context/point it to the right files to read.
- MarkusQ 7mo agoI suppose, in exactly the same way instant / frozen food makes cooking more enjoyable. If it was just a chore that you had to do, and now it's faster, sure, grab that cup-o-noodles. Knock yourself out. Just don't expect to run a successful restaurant based on it.
- Izkata 7mo agoA decade or two ago I remember an experiment where canned food was presented in a restaurant setting and people couldn't tell it apart from the hand-hooked. The presentation was what mattered, as long as it didn't look like it was canned/frozen then they thought it tasted like restaurant quality.
- MarkusQ 7mo agoIn many cases canned food is a lot closer to fresh than frozen or instant would be. In any case, those are ingredients (analogous to...libraries I guess?) and not to the whole application. If you served someone a canned sandwich or canned sushi or some such, they'd notice.
- weirdmantis69 7mo agoThe famously unsuccessful restaurant of McDonald's begs to differ
- MarkusQ 7mo agoTouché.
- IncreasePosts 7mo agoAI made coding really enjoyable for me, for a subset of projects: Projects that I want, but don't really care about the design/implementation, or projects that has a lot of fiddly one-off configurations where it doesn't make sense to tuck in and learn all about the system if it is mostly set-it-and-forget-it. A lot of my home automation/home systems are now fully implemented by AI, because I don't really care how performant it is, or integrating all the various components, and it is very straight forward to tell if it works or if it doesn't work.
- daveguy 7mo ago> The only thing where I don’t trust it yet is when code must be copy pasted. I can’t trace if it actually cuts and pastes code, or if the LLM brain is in between. In the latter case there may be tiny errors that I’d never find, so I’m not doing that. But maybe I’m paranoid. imo, this isn't paranoid at all, and it very likely filters through the LLM, unless you provide a tool/skill and explicit instructions. Even then you're rolling the dice, and the diff will have to be checked.
- wy1981 7mo agoThis level of detail isn't really helpful. I am working with AI and genuinely interested in learning more, but this offers very little. More concrete examples to illustrate the core points would have been helpful. As-is the article doesn't offer much - sorry. For one, I am not sure what kind of code he writes? How does he write tests? Are these unit tests, property-based tests? How does he quantify success? Leaves a lot to be desired.
- lpeancovschi 7mo agoYes, more enjoyable and more human-replaceable!
- HeavyStorm 7mo agoSays someone who must not have enjoyed coding.
- ertucetin 7mo agoIt is enjoyable if you are working on boring/enterprise software; it is not enjoyable when you are working on your own things.
- inglor_cz 7mo agoI enjoy one specific fact about programming with Claude. My work often entails tweaking, fixing, extending of some fairly complex products and libraries, and AI will explain various internal mechanisms and logic of those products to me while producing the necessary artifacts. Sure my resulting understanding is shallow, but shallow precedes deep, and without an AI "tutor", the exploration would be a lot more frustrating and hit-and-miss.
- the_harpia_io 7mo ago[flagged]
- bitwize 7mo agoI'm glad you enjoy it. I fucking hate it. Working directly with code is part of how I approach solving software problems. What's worse, the more I rely on the bot, the less my internal model of the code base is reinforced. Every problem the bot solves, no matter how small, doesn't feel like a problem I solved and understanding I'd gained, it feels like I used a cheat code to skip the level. And passively reviewing the bot's output is no substitute for actively engaging with the code yourself. I can feel the brainrot set in bit by bit. It's like I'm Bastian making wishes on AURYN and losing a memory with every wish. I might get a raw-numbers productivity boost now, but at what cost later? I get the feeling that the people who go on about how much fun AI coding is either don't actually enjoy programming or are engaging in pick-me behavior for companies with AI-use KPIs.
- atonse 7mo agoNot just coding. everything else I do. I hate writing proposals. It's the most mind numbing and repetitive work which also requires scrutinizing a lot of details. But now I've built a full proposal pipeline, skills, etc that goes from "I want to create a proposal" (it collects all the info i need, creates a folder in google drive, I add all the supporting docs, and it generates a react page, uses code to calculate numbers in tables, and builds an absolutely beautiful react-to-pdf PDF file. I have a comprehensive document outline all the work our company's ever done, made from analyzing all past proposals and past work in google drive, and the model references that when weaving in our past performance/clients. It is wonderful. I can now just say things like "remove this module from the total cost" and without having to edit various parts of the document (like with hand-editing code). Claude (or anything else) will just update the "code" for the proposal (which is a JSON file) and the new proposal is ready, with perfect formatting, perfect numbers, perfect tables, everything. So I can stay high level thinking about "analyze this module again, how much dev time would we need?" etc. and it just updates things. If you'd like me to do something like this with your company, get in touch :) I'm starting to think (as of this week) others will benefit from this too and can be a good consulting engagement.
- yomismoaqui 7mo agoI agree with the author but maybe it's bad to miss the pain you get on things like "propagating one property through the system on 5 different types in multiple layers". These kind of pain points usually indicated too much of or a wrong architecture. Being able to fee these kind of things when the clanker does the work is a thing we must think about.
- skeeter2020 7mo agoYou know what's worse than writing boilerplate, or logging code, or unit tests, or other generic, typically low value code? Reviewing it. All the supporting comments here suggest they let AI write it and you're done. This is significantly more dangerous than writing it yourself and not having a second review step; at least you had human eyes on it once.
- enduser 7mo agoI've worked as both an IC and EM over the course of 25 years. The best part of being an IC is crafting solutions to single-human-sized problems—without needing to deal much with people. The best part of being an EM is directing the creation of larger solutions, sometimes vastly larger solutions, at the cost of dealing with people stuff. AI takes the craft out of being an IC. IMO less enjoyable. AI takes the human management out of being an EM. IMO way more enjoyable. Now I can direct large-scope endeavors and 100% of my time is spent on product vision and making executive decisions. No sob stories. No performance reviews. Just pure creative execution.
- cadamsdotcom 7mo ago> write the first test so the AI knows how they should be written, and which cases should be tested. Then I tell the AI each test case and it writes them for me. This is too low level. You’d be better off describing the things that need testing and asking for it to do red/green test-driven development (TDD). Then you’ll know all the tests are needed, and it’ll decide what tests to write without your intervention, and make them pass while you sip coffee :) > I don’t trust it yet is when code must be copy pasted. Ask it to perform the copy-paste using code - have it write and execute a quick script. You can review the script before it runs and that will make sure it can’t alter details on the way through.
- frizlab 7mo agoNot to me, it does not.
- stevenbhemmy 7mo agoThis is the kind of person who would find more joy in telling an android to play a piano than practicing scales/arpeggios etc in order to play complicated music themselves. I legitimately enjoy scale practice when I'm playing piano. In a similar way I've always found some pleasure in writing boilerplate and refactoring. There is joy/peace and instructive value in the "boring" parts of almost every discipline. It's perhaps more meditative and subtle, but still very much there in abundance. And primes you much better for a real flow state. Ever since AI exploded at my day job, I haven't legitimately been in anything resembling a programming flow state at work.
- mbh159 7mo agoThe split here is between AI as amplifier vs. AI as replacement. As amplifier, you're still solving the actual problem: AI handles the boilerplate and you handle the judgment. As replacement, you lose the feedback loop that makes you better over time. The developers who thrive will be the ones who know which problems still require them to be in the loop. That's a skill that takes deliberate practice and inuition to develop and almost no AI tooling is designed to teach that.
- ziml77 7mo agoYes AI has taken away the tedium, but a lot of that could already be overcome by leveraging your text editing tools well or with basic code generation (such as being able generate the skeleton of a class from an interface). And there was something nice about still having to put in the manual work in those cases. It let me process what the code is actually doing and gave me the opportunity to internalize it in a way that just doesn't happen with AI. It also sort of gave me a thinking break where I was engaged at just the right level to let the thoughts about the more interesting parts float around in my head. With AI writing all the code, I feel like I'm either fully engaged with those thoughts or not engaged at all. And that's a bit of a problem because aha moments often happen when the idea is in that middle area of thought.
- ei8ths 7mo agoI like taking my code, especially sql stuff and asking AI a better way to write this and it actually is making me better at SQL because of sql methods i didnt know i could do before. I also like it in vscode to just quickly do the redundant things with auto-complete. now i have 15 years of programming behind me. If i had AI starting out, it would be very bad, I would lack understanding and be a incompetent programmer.
- thegrim33 7mo ago"What I find annoying is repetitive stuff that's just typing" .. "Where I can't trust AI is if it needs to copy paste / duplicate code" ??? AI takes away the "boring", "tedius" parts of coding for you, yet you at the same time don't trust it to even just duplicate code from one place to another?
- erelong 7mo agoRight? It helps accelerate creative output when used well...