3 ms·
I totally agree with that feeling. I have been trying to use AI for coding. Sometimes it is very bad, but I got to learn when it is surprisingly good. Many ti
by palata 2y ago
I totally agree with that feeling.
I have been trying to use AI for coding. Sometimes it is very bad, but I got to learn when it is surprisingly good.
Many times, the AI can show me some code that doesn't work, but that I can simply tune and make work. Many times the resulting code is good: it's not like some copy-pasting by someone who doesn't understand it. In a PR, nobody would think it's an AI, it could have been written by me. It was, in a way.
But intellectually, I did much less. I did not have to imagine what kind of API may exist that solves the problem, or read the documentation about those candidate APIs. I did not have to build the code from the ground up, maybe starting with a simple case, then adding a loop, then going for tail recursion, and back to a loop, etc.
Not doing that admittedly made me more productive. But it really feels like I didn't improve my skills by doing it. I didn't get to discover other parts of the API that I don't need right now but that may be useful later. I didn't get to build my intuition of whether a loop or tail recursion is better here. I just tuned stuff. What happens when I've been doing this for year and now need to debug that code? Will I have the intuition needed to find where it may be failing? Not clear to me.
It feels similar to learning a language: I may understand a lot, and if people talk to me slowly and offer me different alternatives, I may be able to say "yes, the second one!". But by doing that I'm not improving my talking in this language. The only way to get fluent, I feel, is to make this effort of constructing sentences, looking for the words, finding ways or working around words I don't know, etc. If I don't do that, I will never be fluent.
AI makes me more productive now, but may prevent me from becoming fluent at all.
- CamperBob2 2y agoBut it really feels like I didn't improve my skills by doing it. The process of finding the right prompt to get the most out of the LLM is programming. You aren't doing anything different, you just switched languages.
- realce 2y agoAbstraction is the opposite of precision.
- rudy6912 2y agoAbstraction is the opposite of specialization, not precision. Multiplication, for example, is an abstraction that can be defined in terms of repeated addition of the same term, which is less general, and so more special, than addition of two arbitrary terms, but it not less precise.
- palata 2y agoNo, it is not. I can't hear that "prompt engineering" is engineering. The process is clearly shortened. I don't have to "go through the pain" of producing the code: it just pops up for free, and then I just have to tune it. It's the difference between writing a speech and proof-reading it. Or listening to a lot of music versus actually learning how to play an instrument. Because you can be critical about music does not mean at all that you can play an instrument.
- CamperBob2 2y agoSome of us are old enough to remember when we said the same thing about C compilers. "No thanks, I'll stick to assembly. I have no idea what that thing is actually doing with my code, but I know it sucks."
- palata 2y agoIf you can look at the past to predict the future, you should be a trader, not a developer. I.e. because it was wrong to say X in the past doesn't mean it's wrong to say Y today, even if you find some similarities. Doesn't mean it's true either. So let's ignore such worthless arguments and have a real discussion, shall we?
- CamperBob2 2y agoIt looks like we're both maintainers of open-source projects. If we had enough space and time, I'd share a support email exchange I just had with a user. I took a look at your other comments, and the one you made about an hour ago hits close to home, because in this case I was arguably the asshole. My summary below is already long-winded enough that most people will skip it, but you should read it. I'm the author of a package used for data acquisition from various bits and pieces of instrumentation hardware. It is used in some professional settings, but because it's a random collection of hacks, it's mostly useful to hobbyists with more free time than money. Retirees who are getting back into their old ham radio hobby, for example, like the guy I just (failed to) help. He was asking about how to adapt one of the larger programs in the package to a completely-different test instrument. Although he wasn't a programmer, and although my code is in C++, he had "heard good things about Python" and was wondering if he should install it on his Windows box and give it a try. I didn't give him the full LART treatment, but I was probably a bit more patronizing than I should have been. I said something like, "That's not even the wrong way to do it. Try feeding the .cpp file to ChatGPT and see if it will help you understand what you need to do to modify it." That was yesterday. This morning, I got an entirely undeserved thank-you note from him. He got a Python program back from ChatGPT, and after a few back-and-forth interactions, it actually worked, using code he couldn't read to communicate with an instrument I'd never heard of. He wasn't a programmer yesterday, but today he is one. His first language is not assembly or C or BASIC or Python, but English. This technology doesn't threaten people, it empowers them. It doesn't harm creativity, it enables it. I don't know about "worthless arguments," but my recommendation is that you change your outlook right fucking now if you intend to stay in the software business, or in the music business for that matter. You'll eventually thank me for the advice, and this time I'll deserve the gratitude.
- toasteros 2y agoThis very much sounds like you would consider asking a Subway employee for a sandwich to be 'cooking'...
- dartos 2y agoNo it isn’t. For so many reasons, it isn’t. What a wildly incorrect take. Here’s the most obvious reason why that isn’t the case: There is a direct cause effect relationship with the code you write and the resulting program. That is not so with prompting, obviously. Prompting is, therefore, not the same as programming.
- joe_the_user 2y agoPrompt engineering may be a highly skilled activity or even an art. But prompt engineering isn't programming because it doesn't allow aggregation. It's not the activity of building a system from reliable components. Prompts don't allow reliable recursion, etc. At best, it is simply a different but valid activity. But AI companies no doubt aim to remove the mystery from prompts in the fashion they aim to remove the mystery from programming.
- apsurd 2y agoI share your sentiment about the experience developing with AI. But I've been playing with the idea that the concerns and gaps you've listed, can just be explicitly communicated with the AI. If you're concerned about weighing options, just tell the AI that exactly and pair with the thought process iteratively. For all things AI, one of the most useful things I say is "ok give me the best practice for X" and then "ok what about the contrarian view. show me that. what are the downsides, what about stuff we don't know we don't know"
- palata 2y agoI still believe it's not the same, but even if it was: actively trying to improve yourself this way makes you less productive. We are going towards a world were it is not acceptable to be less productive. You will be told to do that in your free time, here you need to produce as much as your coworkers. AI changes programming into assembly line work. It's more productive, but it loses 100% of what makes programming interesting to me.
- apsurd 2y agoThat is a good point, in the same way the lure of $100k+ salaries inevitably attracted the masses, AI means "everyone can code!" I do share your lament. "Being productive" is a capitalist construct. There's a place for it. But I got into coding by messing with CSS and when the text turned red on my screen by something I did… WOW!!! I'll never forget that feeling. I make it a point to dabble in side projects on my own terms. Want to always keep that fire lit.
- blooalien 2y ago> AI means "everyone can code!" In the same way as "Dreamweaver" (web IDE) means "everyone can make a webpage" maybe? Doesn't mean they can do it well at all. I made a ton of money in my early days as a web designer gettin' paid to fix up nasty messes of local business websites (cleaning up Dreamweaver tag-soup and such) in my area during those early years when half of everyone with a business "hired" their little teenage cousin "under the table" to build them a website for their business and ended up horribly regretting it.
- protocolture 2y ago>But it really feels like I didn't improve my skills by doing it. I dunno hey. I used ChatGPT to teach me python. I had a similar experience, except I started with "This is a project to teach me python" and now I feel comfortable enough that I barely use ChatGPT, except for when I get to a sticky problem, and need something to bounce ideas off. In fact I get pissed off now with the amount of time I spend correcting ChatGPT in larger projects that I never bother to show it the whole code anymore. However I was working on plugging an arduino into my nonsense, and I did have it almost completely write the C code for that end of the project. But I am going to upgrade my Arduino shit this year and will be approaching it the same way, this time you teach me the arduino mister GPT.
- tomrod 2y agoYour experience mirrors my OpenAI experience. You would be surprised at how well composer mode works on cursor.
- fuzzythinker 2y agoTotally different usage than what you're quoting.
- thefz 2y agoHow do you know the bot taught you the correct ("pythonic") way of doing things versus learning by yourself reading the docs?
- protocolture 2y agoVery good question. I dont. Perhaps I am pythoning wrong.
- palata 2y ago> I used ChatGPT to teach me python. I can imagine that if you don't know how to program, ChatGPT will be a nice teacher. But I think that there is a difference between learning how to program and using AI as an experienced developer. I have been coding for almost 25 years. When ChatGPT gives me a snippet in some language, I don't really need to read every word carefully before I get an intuition about whether or not it makes sense. When it gives me a good snippet, I honestly don't really have to read it entirely: I can just skim through it and tune it. I am not making the effort of programming, I am rather making the effort of reviewing. And as we all know it's easy to make a "lazy review". I think there is a difference between your situation and mine. It's great if ChatGPT helps you learn, but in my case I really think it makes me more productive by preventing me from improving myself, because improving takes time. Somehow ChatGPT is optimising away my learning time, if that makes sense.
- QuantumGood 2y agoTime spent on improving prompting pays off, but isn't as satisfying, challenging or interesting as time spent coding.
- kazinator 2y agoYou're basically just finding a path through the stochastic parrot's numerical maze whereby it will articulate the solution matching what you already have in mind.
- QuantumGood 2y agoBecoming "a parrot's assistant" is an apt way of expressing this frustration.
- deleted 2y ago[deleted]