(no title)
Biganon | 1 month ago
That's how I feel with programming, and sometimes I feel like I'm taking crazy pills when I see so many of my colleagues using AI not only for their job, but even for their week-end programming projects. Don't they miss the feeling of..... programming? Am I the weird one here?
And when I ask them about it, they answer something like "oh but programming is the boring part, now I can focus on the problem solving" or something like that, even though that's precisely what they delegate to the AI.
Weird times.
noduerme|1 month ago
I've let Claude run around my code and asked it for help, etc. Once in awhile it's able to diagnose some weird issues - like last month, it actually helped me figure out why PixiJS was creating undefined behavior after textures were destroyed on the GPU, in a very specific case. But the truth is, I wouldn't hire an intern or an employee to write my code because they won't be able to execute exactly what I have in mind.
Ironically, in my line of work, I spend 5x as many hours thinking about what to build and how to build it as I do coding it. The fun part is coding it. And, that's the only time I charge for. I may spend 10 hours thinking about how to do something, drawing diagrams, making phone calls to managers and CEOs, and I won't charge any of that time. When I'm ready to sit down and write the code:
I go to a bar.
I turn my phone off.
I work for 6 hours, have 4 drinks, and bill $300 per hour.
I don't suspect that the kind of coding I'm doing, which includes all the preparation and thought that went into it, and having considered all edge cases in advance, is going to be replaced by LLMs. Or by the children who use LLMs. They didn't have much of a purchase on taking my job before, anyway... but sadly the ones who are using this technology now have almost no hope of ever becoming proficient at their profession.
kaffekaka|1 month ago
However, these two things are different: the kind of work that feels fulfilling, meaningful and even beautiful, versus: delivering the needed/wanted product.
A vibe coded solution that basically works, for a quarter of the cost, has advantages.
drumdance|1 month ago
spockz|1 month ago
svara|1 month ago
This I think I can explain, because I'm one of these people.
I'm not a programmer professionally for the most part, but have been programming for decades.
AI coding allows me to build tools that solve real world problems for me much faster.
At the same time, I can still take pride and find intellectual challenges in producing a high quality design and in implementing interesting ideas that improve things in the real world.
As an example, I've been working on an app to rapidly create Anki flashcards from Kindle clippings.
I simply wouldn't have done this over the limited holiday time if not for AI tools, and I do feel that the high level decisions of how this should work were intellectual interesting.
That said, I do feel for the people who really enjoyed the act of coding line by line. That's just not me.
omnicognate|1 month ago
This phrase betrays a profoundly different view of coding to that of most people I know who actively enjoy doing it. Even when it comes to the typing it's debatable whether I do that "line by line", but typing out the code is a very small part of the process. The majority of my programming work, even on small personal projects, is coming up with ideas and solving problems rather than writing lines of code. In my case, I prefer to do most of it away from the keyboard.
If AI were a thing that could reliably pluck the abstract ideas from my head and turn them into the corresponding lines of code, i.e. automate the "line by line" part, I would use it enthusiastically. It is not.
noduerme|1 month ago
If you can't / won't / don't read and write the code yourself, can I ask how you know that the code written for you is working correctly?
ErroneousBosh|1 month ago
But it can't actually generate working code.
I gave it a go over the Christmas holidays, using Copilot to try to write a simple program, and after four very frustrating hours I had six lines of code that didn't work.
The problem was very very simple - write a bit of code to listen for MIDI messages and convert sysex data to control changes, and it simply couldn't even get started.
unknown|1 month ago
[deleted]
dota_fanatic|1 month ago
Take game programming: it takes an immense amount of work to produce a game, problems at multiple levels of abstraction. Programming is only one aspect of it.
Even web apps are much, much more than the code backing them. UIUX runs deep.
I'm having trouble understanding why you think programming is the entirety of the problem space when it comes to software. I largely agree with your colleagues; the fun part for me, at this point in my career, is the architecture, the interface, the thing that is getting solved for. It's nice for once to have line of sight on designs and be able to delegate that work instead of writing variations on functions I've written thousands if not tens of thousands of times. Often for projects that are fundamentally flawed or low impact in the grand scheme of things.
hackable_sand|1 month ago
zer00eyz|1 month ago
I don't know why people build houses with nail guns, I like my hammer... Whats the point of building a house if you're not going to pound the nails in yourself.
AI tooling is great at getting all the boiler plate and bootstrapping out of the way... One still has to have a thoughtful design for a solution, to leave those gaps where you see things evolving rather than writing something so concrete that you're scrapping it to add new features.
thefaux|1 month ago
hansvm|1 month ago
I recently wrote a 17x3 reed-solomon encoder which is substantially faster on my 10yo laptop than the latest and greatest solution from Backblaze on their fancy schmancy servers. The fun parts for me were:
1. Finally learning how RS works
2. Diving in sufficiently far to figure out how to apply tricks like the AVX2 16-element LUT instruction
3. Having a working, provably better solution
The programming between (2) and (3) was ... fine ... but I have literally hundreds of other projects I've never shipped because the problem solving process is more enjoyable and/or more rewarding. If AI were good enough yet to write that code for me then I absolutely would have used it to have more time to focus on the fun bits.
It's not that I don't enjoy coding -- some of those other unshipped projects are compilers, tensor frameworks, and other things which exist purely for the benefit of programmer ergonomics. It's just that coding isn't the _only_ thing I enjoy, and it often takes a back seat.
I most often see people with (what I can read into) your perspective when they "think" by programming. They need to be able to probe the existing structure and inject their ideas into the solution space to come up with something satisfactory.
There's absolutely nothing wrong with that (apologies if I'm assuming to much about the way you work), but some people work differently.
I personally tend to prefer working through the hard problems in a notebook. By the time the problem is solved, its ideal form in code is obvious. An LLM capable of turning that obvious description into working code is a game changer (it still only works like 30% of the time, and even then only with a lot of heavy lifting from prompt/context/agent structure, so it's not quite a game changer yet, but it has potential).
foota|1 month ago
https://www.usenix.org/system/files/fast19-zhou.pdf is a more modern paper that goes into some related problems of trying to reduce the number of XOR operations needed to encode data.
Jach|1 month ago
If it's a language I don't particularly enjoy, though, so much the better that the AI types more of it than me. Today I decided to fix a dumb youtube behavior that has been bugging me for a while, I figured it would be a simple matter of making a Greasemonkey script that does a fetch() request formed from dynamic page data, grabs out some text from the response, and replaces some other text with that. After validating the fetch() part in the console, I told ChatGTP to code it up and also make sure to cache the results. Out comes a nice little 80 lines or so of JS similar to how I would have written it setting up the MutationObserver and handling the cache map and a promises map. It works except in one case where it just needs to wait longer before setting things up, so I have it write that setTimeout loop part too, another several lines, and now it's all working. I still feel a little bit of accomplishment because my problem has been solved (until youtube breaks things again anyway), the core code flow idea I had in mind worked (no need for API shenanigans), and I didn't have to type much JavaScript. It's almost like using a much higher level language. Life is too short to write much code in x86 assembly, or JavaScript for that matter, and I've already written enough of the latter that I feel like I'm good.
stared|1 month ago
For recent ones, it is a interactive visualization of StarCraft 2 (https://github.com/stared/sc2-balance-timeline). Here I could do it myself (and spend way more time than I want to admit on refactoring, so code looks OK-ish), but unlikely I would have enough time to do so. I had the very idea a few years ago, but it was just too much work for a side project. Now I did it - my focus was high-level on WHAT I want to do and constant feedback on how it looks, tweaking it a lot.
Another recent is "a project for one" of a Doom WAD launcher (https://github.com/stared/rusted-doom-launcher). Here I wouldn't be able to do it, as I am not nearly as proficient in Rust, Tauri, WADs, etc. But I wanted to create a tool that makes it easy to to launch custom Doom maps with ease of installing a game on Steam.
In both cases the pattern is the same - I care more on the result itself that its inner workings (OK, for viz I DO care). Yes, it takes away a lot of experience of coding oneself. But it is not something entirely different - people have had the same "why use a framework instead of writing it yourself", "why use Python when you could have used C++", "why visiting StackOverflow when you could have spend 2 days finding solution yourself".
With side projects it is OUR focus on what we value. For someone it is writing low-level machine code by hand, even it it won't be that useful. For some other, making cute visual. For someone else, having an MVP that "just works" to test a business idea.
Dumblydorr|1 month ago
driverdan|1 month ago
When writing code in exchange for money the goal is not to write code, it's to solve a problem. Care about the code if you want but care about solving the problem quickly and effectively more. If LLMs help with that you should be using them.
On personal projects it depends on your goal. I usually want the tool more than whatever I get from writing code. I always read whatever an LLM spits out to make sure I understand it and confirm it's correct but why wouldn't I accelerate my personal tool development as well?
scrollop|1 month ago
"I love complicated mathematical questions, and love doing the basic multiplication and division calculations myself without a calculator. I don't understand why people would use a calculator for this."
"I love programming, and don't understand why people would use C++ instead of using machine lamguage. You get deep down close to the hardware, such a good feeling, people are missing out. Even assembly language is too much of a cheat."
In the other hand - people still knit, I assume for the enjoyment of it.
theshrike79|1 month ago
How many people would still enjoy the process of knitting vs just inputting a pattern and a bunch of yarn in the Knit-o-matic?
gcanyon|1 month ago
In a sense it's like SQL or MiniZinc: you define the goal, and the engine takes care of how to achieve it.
Or maybe it's like driving: we don't worry about spark advance, or often manual clutches, anymore, but LLMs are like Waymo where your hands aren't even on the steering wheel and all you do is specify the destination, not even the route to get there.
unknown|1 month ago
[deleted]
blibble|1 month ago
it's outsourcing to an unreliable body shop where they barely speak English and the weekly attrition rate is 300%
hamandcheese|1 month ago
michaelcampbell|1 month ago
Our company is "encouraging" use of LLMs through various carrots and sticks; mostly sticks. They put out a survey recently asking us how we used it, how it's helped, etc. I'll probably get fired for this (I'm already on the short list for RIFs due to being remote in a pathological RTO environment and being easily the eldest developer here, but...), but I wrote something like:
"Most of us coders, especially older ones, are coders because we like coding. The amount of time and money being put spent to make coders NOT CODE is incredible."
bpye|1 month ago
I've played with using LLMs for code generation in my own projects, and whilst it has sometimes been able to solve an issue - I've never felt like I've learned anything from it. I'm very reluctant to use them for programming more as I wouldn't want my own skills to stagnate.
wickedsight|1 month ago
AI tools allow me to do a lot of stuff within a short time, which is really motivating. They also automatically keep a log of what I was doing, so if I don't manage to work on something for weeks, I can quite easily get back in and read my previous thinking.
It can also get very demotivating to read 10 stackoverflow discussions from a Google searches that don't solve my problem. This can cause me to get out of 'the zone' and makes it extremely hard to continue. With AI tools, I can rephrase my question if the answer isn't exactly what I was looking for and steer towards a working solution. I can even easily get in depth explanations of provided solutions to figure out why something doesn't work.
I also have random questions pop up in my brain throughout the day. These distract me from my task at hand. I can now pop this question into an AI tool and have it research the answer, in stead of being distracted for an hour reading up on brake pads or cake recipes or the influence of nicotine on driving ability.
markus_zhang|1 month ago
But again my projects are more research than product, so maybe it’s different.
codr7|1 month ago
I suspect you've found a new hobby, not improved the existing one.
lorenzo1860|1 month ago
alnwlsn|1 month ago
But, I almost never do something "for the programming". Programming is just an ingredient to make the thing I actually want. This is why I use Solidworks and not OpenSCAD for most 3D modeling, for example. I've learned many things from it but I can't honestly say I'm in it for the programming.
travisgriggs|1 month ago
I like programming. Quite a bit. But the modern bureaucratic morass of web technologies is usually only inspiring in the small. I do not like the fact that I have to balance so many different languages and paradigms to get to my end result.
It would be a bit like a playwright aficionado saying “I really love telling stories through stage play” only to discover that all verbs used in dialogue had to be in Japanese, nouns are a mix of Portuguese and German, and connecting words in English. And talking to others to put your play on, all had to be communicated in Faroese and Quechua.
andy99|1 month ago
Not to say it’s useless garbage, there is some value for sure, but it’s nowhere near as good as some people represent it to be. It’s not an original observation, but people end up in a “folie a deux” with a chatbot and churn out a bunch of mediocre stuff while imagining they’re breaking new ground and doing some amazing thing.
ErroneousBosh|1 month ago
I feel kind of the same when I read about people wanting self-driving cars. What's the advantage of them? Why would it be helpful?
hxugufjfjf|1 month ago
js8|1 month ago
Yes. I think it depends on one's goals.
You can ask, in the same vein, why use Python instead of C? Isn't the real joy of programming in writing effective code with manual memory management and pointers? Isn't the real joy in exploring 10 different libraries for JSON parsing? Or in learning how to write a makefile? Or figuring out a mysterious failure of your algorithm due to an integer overflow?
TBH I am not sure AI is better either (see https://youtube.com/shorts/QZCHax14ImA), but it's probably gonna get figured out.
godelski|1 month ago
I mean we're programmers. Even though it's much more popular these days the very nature of what we do makes us "weird". At least compared to the average person. But weird isn't bad.
(Why people doing it if they find it so boring? And why side projects?! I know it pays well but there are plenty of jobs that do. I mean my cousin makes more as a salesman and spends his days at golf courses. He's very skilled, but his job is definitely easier)
I also can't comprehend people when they say this.For starters it's like saying "I want you learn an instrument so I listen to scales, that way I can focus on playing songs." The fun part can't really happen without the hard part.
Second, how the fuck do you do the actual engineering when you're not writing the code? I mean sure, I can do a lot at the high level but 90% of the thinking happens while writing. Hell, 90% of my debugging happens while writing. It feels like people are trying to tell me that LLMs are useful because "typing speed is the bottleneck". So I'm left thinking "how the fuck do you even program?" All the actual engineering work, discovering issues, refining the formulation, and all that happens because I'm in the weeds.
The boring stuff is where the best learning and great ideas come from. Isn't a good programmer a lazy one? I'd have never learned about something like functors and template metaprogramming if I didn't ever do the boring stuff like write a bunch of repetitive functions thinking "there's got to be a better way!" No way is an LLM going to do something like that because it's a dumb solution until a critical mass is reached and it becomes a great solution. There's little pressure for that kind of progress when you can generate those functions so fast (I say little because there's still pressure from an optimization standpoint but who knows if an LLM will learn that unprompted)
Honestly coding with LLMs feels like trying to learn math by solely watching 3Blue1Brown videos. Yeah, you'll learn something but you'll feel like you learned more than you actually did. The struggle is part of the learning process. Those types of videos can complement the hard work but they don't replace it.
throwaway98797|1 month ago
smaudet|1 month ago
It's either taking away the most important (or rewarding) thing I need to do (think) and just causing me more work, or it has replaced me.
AI. Is. Not. Useful.
dangus|1 month ago
We can agree all day long about the pitfalls of the technology, but you’ve never used it so you don’t know if it’s causing you more work or replacing you.
visarga|1 month ago
whattheheckheck|1 month ago
monerozcash|1 month ago
>AI. Is. Not. Useful.
Why waste time writing things like this? What's the point?
rubidium|1 month ago
rewgs|1 month ago
The amount of people who apparently just want the end result and don't care about the process at all has really surprised me. And it makes me unfathomably sad, because (extremely long story short) a lot of my growth in life can be summed up as "learning to love the process" -- staying present, caring about the details, enjoying the journey, etc. I'm convinced that all that is essential to truly loving one's own life, and it hurts and scares me to both know just how common the opposite mindset is and to feel pressured to let go of such a huge part of my identity and dare-I-say soul just to remain "competitive."