41 ms·
AI Stole the Joy of Programming
- tylerchilds 2y agothe start: ai is a junior engineer you as a senior engineer can coach the end: the ai is a senior engineer with a half finished problem you can polish as a junior engineer
- Freak_NL 2y ago'AI Stole the Joy of Programming' is not quite the title that blog post has.
- ergonaught 2y agoI assumed from the actual title that there wouldn't be any content worth reading and stopped there. It's funny to call the false HN title "clickbait" but I did click that one and wouldn't have clicked the other.
- miningape 2y agoI mean I clicked on this one, but I would've double clicked the original title. I like a little spice in my life.
- gosub100 2y agoWe need an AI tool to digest the articles for us to return a signal for click bait.
- squarefoot 2y agoProbably not even AI if there's a community helping to curate headlines. Sort of what the DeArrow browser extension does with that cesspool of sensational titles, amazed facial expressions and general bullshit that has become YouTube lately. https://dearrow.ajay.app/ https://dearrow.ajay.app/
- andix 2y agoI don't agree. Copilot/etc is kind of worthless for me, it creates so many issues that I've never bothered to work with it. AI is awesome for solving issues, asking it questions about code, asking for possible solutions. But maybe I'm just fast at writing code that actually solves the problem, so I don't need an AI to code for me.
- KaoruAoiShiho 2y agoIt looks like your problem is you ask AI to solve problems instead of actually code extensive functionality.
- m3rc 2y agoWhat does that mean
- KaoruAoiShiho 2y agoIf you're decent at coding it's trivial to type out a few lines once you know what the problem is, and copilots barely help. It only makes sense for it to generate entire files, huge productivity savings there.
- Jensson 2y agoDoes it write entire files that works well? Maybe if its very standard functionality you ask for?
- KaoruAoiShiho 2y agoIt probably varies by environment, all I know is that it works 98% perfectly for me.
- lackoftactics 2y agoI think it depends, it's quite good for prosaic code, and when you have a lot to auto-complete and macros are not specific use case. Other than that, having chat with o1 and sonnet inside the editor is pretty good ngl
- bowsamic 2y agoI've taken the simple solution: if I want to enjoy programming for programming's sake, I turn copilot off. If I want to be careful and understand the problem and its solution in detail, I turn copilot off. If I simply want to get a toy project done and don't care at all about the implementation process, I might leave it on. I've had an absolutely magical experience with copilot though. I honestly find it a bit strange when others say it has just been bad for them
- bluGill 2y agoCopilot does very well when I'm solving the same problem I've solved in the past with different parameters. Parse a CAN network packet (8 bytes so they do weird things like 6 bit counters with 2 bytes in byte 3 and the rest in byte 4) copilot can write that and the tests quickly - we have hundreds of different CAN packets we parse so there is a lot of example code to look at. Everything is just different enough to look like boilerplate while not actually being boilerplate. However when I'm trying to write code that isn't a variation of something I've done many times before copilot is not helpful. It can't complete as much and what does complete is wrong often for style reasons (it would be nice if the function it wants to call existed but it doesn't, or does takes some other parameter that it doesn't know)
- lackoftactics 2y agoI liked the original title more, a bit edgy...
- KaoruAoiShiho 2y agoIt's just the start, it's about to steal the joy of everything in life pretty soon.
- bowsamic 2y ago[flagged]
- code_for_monkey 2y agoits not about whether an LLM can do better work than you, its about if it can do cheaper work than you, and it can.
- almost_usual 2y agoIt’ll do both soon.
- zamadatix 2y agoA lot of people don't/didn't set out in life to be a hyper-adaptiver worker who puts 110% into the latest thing they can be the best at all the time. They set out to be an average worker who learns a skill and lives a life focused on things outside of being the maximal worker. For these people it's even less about if an LLM can beat them (which, to be honest, for most all of us is or will be true at least for certain tasks) and more about how much an LLM may upset the life path they were in.
- meiraleal 2y ago> A lot of people don't/didn't set out in life to be a hyper-adaptiver worker who puts 110% into the latest thing they can be the best at all the time This used to be life for 99% of human history. Don't take the past 30 years lifestyle for granted just because we created government, free market or whatever. Human nature is to be a hyper-adaptiver worker who puts 110% into the latest thing they can be the best at all the time otherwise they die.
- deleted 2y ago[deleted]
- pwillia7 2y agoEnter artisanal programming
- CodeNest 2y ago[dead]
- djaouen 2y agohttps://www.youtube.com/watch?v=W4jWAwUb63c https://www.youtube.com/watch?v=W4jWAwUb63c
- deleted 2y ago[deleted]
- taylodl 2y agoWhen you program for a living, you want the fastest path to creating the best code conforming to your metric of "best." Copilot may or may not be able to get you there, YMMV as they say. When you program for a hobby, you oftentimes seek to enjoy the route as much or more than reaching the destination. Copilot would be a distraction and an annoyance in this case - unless you're genuinely stuck and then you can use Copilot as a mentor. It all depends on your context and what you're trying to do.
- friggeri 2y agoI've had the absolute opposite experience, AI has brought back a lot of the joy of programming and building products for me. I've been using Cursor extensively these past few months, for anything ranging from scaffolding to complex UIs. The trick, I've found, is to treat the AI like I would work with a junior engineer, giving in concrete detailed tasks to accomplish, breaking the problem down myself into manageable chunks. Here are two examples of little word games I've made, each of them took all in all a couple of days to ideate, design and build. https://7x7.game https://7x7.game You're given a grid and you need to make as many words as possible, you can only use the letters in the bottom row. There's complex state management, undo, persistent stats, light/dark modes, animations. About 80-90% of the code was generated and then manually tweaked/refactored. https://vwls.game https://vwls.game Given 4 consonants, you have to generate as many words as possible. This is heavily inspired by Spelling Bee, but with a slightly different game mechanic. One of the challenges was that not all "valid" words are fun, there are a lot of obscure/technical/obsolete words in the dictionary, I used Claude's batch API to filter down the dictionary to words that are commonly known. I then used cursor to generate the code for the UI, with some manual refactoring. In both cases, having the AI generate the code enabled me to focus on designing the games, both visually and from an interaction perspective. I also chose to manually code some parts myself, because these were fun. At the end of the day, tools are tools, you can use them however you like, you just need to figure out how they fit in your workflow.
- deleted 2y ago[deleted]
- planb 2y agoI took to long to write my comment so I didn't see yours - you are exactly describing the feeling I also have when using AI to create things.
- daemin 2y agoAt least with a Junior Engineer they can learn and grow from your feedback, becoming a more useful member of the team, the generative model on the other hand will not.
- justlikereddit 2y agoProgramming stole the joy of programming. My experience is that like so much else there's an expiry date on the joyful coding. I gave it another chance with AI but AI is too incompetent, it's more of a creative intern that does badly speed reports than a competent replacement for painstakingly reading documentations and googling.
- neuronet 2y agoIf I were a trained professional software engineer who found joy in writing tests and TDD, maybe I'd feel differently, but I write software to help with basic scientific analysis, and ChatGPT has been an absolute game changer for writing tests. I personally find writing tests to be soul-crushing, boring, work. I never really learned it properly, and when I have a well-documented function, CGPT typically does a decent job making a rough draft. I often have to work on the test function, fix some things, but the final product is way better than the PoS I would have put together: my guess is it has saved me hundreds of hours. I have developed a decent understanding of fixtures, mocking, sharing fixtures across modules, etc, all with the help of ChatGPT. It "understands" my project and how it is organized, and makes suggestions based on this understanding. Yes, it sometimes gets stuck in local minima and I have to kick it out, which can be frustrating. But even that is a learning process, as I often go to SO or other people's code bases to find good examples, and feed them to ChatGPT to get it unstuck. It's like the ultimate rubber duck paired programming partner. I tell it what I'm working on, and that's intrinsically helpful. But the rubber duck has really good feedback, because it has read the entire internet. It's made writing tests for my code fun, for the first time ever. The people I know personally who refuse to use CGPT are typically very good software developers, somewhat arrogant and have a chip on their shoulders, and honestly I think in 20 years we'll look back at them like people who thought the internet was a passing phase in the mid 1990s. I also think many of them don't understand how LLMs work, and how powerful they can be when prompted correctly
- miningape 2y agoThe difference with the internet is that it was not the people on the inside calling it useless (engineers). It was the business people and others who had no understanding of the technology and possibilities. In this case it is the opposite, the best ML/software engineers today think this is a passing phase. It's the general population and business people who are claiming it to be revolutionary. Only time will tell though
- neuronet 2y agoThere is reasonable debate about their scope and limits, but it's hard to find anyone who understands how LLMS work that thinks they are a passing phase. The pushback I see is from people who were raised to write everything from scratch, who don't trust the output of LLMS because of "hallucinations" or other crappy outputs. The problem is, the people making these claims are really out of touch with prompt engineering, and how students are currently learning to code with AI in-the-loop (and for basic coding and testing etc for common libraries, LLMs are really, really good at explaining things and writing entry-level code and tests -- this is not arguable: people that are fighting this are graybeards that haven't learned to code at a basic-to-intermediate level in a long time). A good software developer, with a nose for code smells, will not just accept any old code an LLM produces, you have to use it intelligently, push back on bizarre constructions. Hence, for me, who hates writing tests, it is an amazing tool. If I had an intern or an undergrad who loved grindout out tests I'd use them, but that's basically my LLM at this point (and for the "but ackshually" guys yes obviously you can't use them mindlessly, we are writing code not drawing doodles).
- planb 2y agoFor me, it’s quite the opposite—it brought back the joy of programming. There are thousands of weather apps in the App Store, but none display rain data exactly the way I’d like to see it. That’s why I’ve long considered writing my own home screen widget to show it exactly as I want. I hadn’t developed iPhone apps in a few years, so I had no experience with SwiftUI, the Swift Graph framework, or creating widgets. Just two years ago, building an app with a widget from scratch would have taken me a week — to read tutorials, navigate the necessary documentation, get started and solve my beginner bugs. Because of that time investment, I always hesitated to even begin. Now, I’ve created exactly what I wanted in a single afternoon after work, with the help of AI. To be honest, GitHub Copilot isn’t very helpful for this, though it does speed up repetitive typing. However, using ChatGPT to scaffold the graph code—with me tweaking the parameters—made the process much faster. Since they added search functionality, there’s minimal "hallucination" of APIs, allowing for quick iterations and bringing back that “joy of programming” feeling.
- jdefr89 2y agoDamn... I wish I could say this wasn't true. Been trying to lie and say it hasn't but it absolutely has made programming less enjoyable by far... I been trying to convince myself other wise but I am just lying to myself.
- ksymph 2y agoIs this tongue-in-cheek? It seems like it is, but I can't tell for sure. Disliking LLMs for coding because they're too helpful is an amusing concept either way.
- JohnFen 2y agoThis is one of the reasons why I don't use genAI for programming purposes. It increases the need to review and correct code I didn't write, which increases the amount of work that I don't enjoy doing.
- tithos 2y agoWeb dev used to be fun and FREE. Now almost every thing cost something. The stupid AI bubble will pass. We need real content, NOT AI BS!!!
- taosx 2y agoWhen we're building something, we don't have all the specs upfront (unless it's simple). I'm learning and adapting as I write more of the project, and at some points I may backtrack or start from scratch. For projects where you have the whole code upfront, I guess you could pass that to an LLM (maybe). The way I found most success using LLMs is as a partner to ping-pong ideas, to come up with code design, algorithms, and data structures that would fit a particular scenario. Then I'm ignoring its code and writing it to fit the project. The trick is to use the randomness combined with the vast array of information it holds to your advantage - like a supercharged Google. Regarding my joy of programming, for me it's not even close. I get my joy from the project as a whole, not from snippets of code sprinkled around (sometimes I wish it could - I have hundreds of projects I would like to tackle but they're not worth my time). The only thing I worry about is that the next version would not be accessible to the public or they would cost exorbitant amounts. edit: for the way I'm using LLMs I found the approach taken by Zed editor to be the best, really recommend it's buffer, easy to copy-p, modify and search (it would be nice to also have divergence from a chat, hopefully in the future)
- k3vinw 2y agoInteresting example. As programming languages and tooling such as static analysis become more and more advanced I would think memory leaks or mismanagement of memory is going to become a thing of the past. So I would argue that one way or another this was bound to happen.