- cross-posted to:
- programming@programming.dev
- cross-posted to:
- programming@programming.dev
It introduced me to the basics of C# in a way that traditional googling at my previous level of knowledge would’ve made difficult.
I knew what I wanted to do and I didn’t know what was possible or how to ask without my question being closed as a duplicate with a link to an unhelpful post.
In that regard, it’s very helpful. If I had already known the language well enough, I can see it being less helpful.
This is what I’ve used it for and it’s helped me learn, especially because it makes mistakes and I have to get them to work. In my case it was with Terraform and Ansible.
Haha, yeah. It really loves to refactor my code to “fix” bracket list initialization (e.g.
List<string> stringList = [];
) because it keeps not remembering that the syntax has been valid for a while.It’s newest favorite hangup is to incessantly suggest null checks without asking if it’s a nullable property that it’s checking first. I think I’m almost at the point where it’s becoming less useful to me.
I learned bash thanks to AI!
For years, all I did was copy and paste bash commands. And I didn’t understand arguments, how to chain things, or how it connects.
You do realize that a very thorough manual is but a
man bash
away? Perhaps it’s not the most accessible source available, but it makes up for that in completeness.I believe accessibility is the part that makes LLMs helpful, when they are given an easy enough task to verify. Being able to ask a thing that resembles a human what you need instead of reading through possibly a textbook worth of documentation to figure out what is available and making it fit what you need is fairly powerful.
If it were actually capable of reasoning, I’d compare it to asking a linguist the origin of a word vs looking it up in a dictionary. I don’t think anyone disagrees that the dictionary would be more likely to be fully accurate, and also I personally would just prefer to ask the person who seemingly knows and, if I have reason to doubt, then go back and double-check.
Here’s the manpage for bash’s statistics from wordcounter.net:
Perhaps LLMs can be used to gain some working vocabulary in a subject you aren’t familiar with. I’d say anything more than that is a gamble, since there’s no guarantee that hallucinations have not taken place. Remember, that to spot incorrect info, you need to already be well acquainted with the matter at hand, which is at the polar opposite of just starting to learn the basics.
Great for Coding 101 in a language I’m rusty with or otherwise unfamiliar.
Absolutely useless when it comes time to optimize a complex series of functions or upgrade to a new version of the .NET library. All the “AI” you need is typically baked into Intellisense or some equivalent anyway. We’ve had code-assist/advice features for over a decade and its always been mid. All that’s changed is the branding.
What about just reading the documentation?
Even with amazing documentation, it can be hard to find the thing you’re looking for if you don’t know the right phrasing or terminology yet. It’s easily the most usable thing I’ve seen come out of “AI”, which makes sense. Using a Language Model to parse language is a very literal application.
The person I replied to was talking about learning the basics of a language… This isn’t about searching for something specific, this is about reading the very basic introduction to a language before trying to Google your way through it. Avoiding the basic documentation is always a bad idea. Replacing it with the LLMed version of the original documentation probably even more so.
Devs that are punching above their class, however, probably get great benefit from it. I would think it’s also an OK learning tool, except for how inaccurate it can be sometimes.
I honestly stopped using it after a week
I like to use suggestions to feel superior when trash talking the generated code
Garbage in garbage out is how they all work if you give it a well defined prompt you can get exactly what you want out of it most of the time but if you just say fix this problem it’ll just fix the problem ignoring everything else
You’re holding it wrong
Wait till this guy learns how a theremin work.
I partly disagree, complex algorithms are indeed a no, but for learning a new language it is awesome.
Currently learning Rust and although it cannot solve everything, it does guide you with suggestions and usable code fragments.
Highly recommended.
Is there anything it provided you so far that was better than the guidance from the Rust compiler errors themselves? Every error ends with “run this command for a tutorial on why this error happened and how to fix it” type of info. A lot of times the error will directly tell you how to fix it too.
Currently learning Rust and although it cannot solve everything, it does guide you with suggestions and usable code fragments.
as does the compiler and the rust book
And yet, higher ups continue to lay off more devs because AI “is the future”.
In my experience, most of the tech layoffs have been non-devs. PMs and Designers have been the hardest hit and often their roles are being eliminated.
For me, it is a glorified auto-complete function. Could definitely live without it.
Same for me, but that glorified auto complete helps a lot.
Hell yea. Our unit test coverage went way up because you can blow through test creation in second. I had a large complicated migration from one data set to another with specific mutations based on weird rules and GPT got me 80% of the way there and with a little nudging basically got it perfect. Code that would’ve taken a few hours took about 6 prompts. If I’m curious about a new library I can get a working example right away to see how everything fits together. When these articles say there’s no benefit I feel people aren’t using these tools or don’t know how to use them effectively.
Yeah, it’s useful, you just gotta keep it on a short leash, which is difficult when you don’t know what you’re doing
Basically, it’s a useful tool for experienced developers that know what to look out for
From the combined comments it looks like if you are a beginner or a pro then it’s great; if you only have just enough knowledge to be dangerous (in german that’s proverbial “gefährliches Halbwissen”) you should probably stay away from it :-)
We always have to ask what language is it auto-completing for? If it is a strictly typed language, then existing tooling is already doing everything possible and I see no need for additional improvement. If it is non-strictly typed language, then I can see how it can get a little more helpful, but without knowledge of actual context I am not sure if it can get a lot more accurate.
I’m shocked. There must be an error in this analysis. /s
Maybe engage an AI coding assistant to massage the data analysis lol
Good devs gain little.
I gain a lot.
Just beware, sometimes the AI suggestions are scary good, some times they’re batshit crazy.
Just because AI suggests it, doesn’t mean it’s something you should use or learn from.
Feel the same way!
Its basically a template generator, which is really helpful when you’re generating boilerplate. It doesn’t save me much if any time to refactor/fill in that template, but it does save some mental fatigue that I can then spend on much more interesting problems.
It’s a niche tool, but occasionally quite handy. Without leaps forward technically though, it’s never going to become more than that.
Places GPT-based “AI” next to flying cars
Flying cars exist, they’re just not cost effective. AFAICT there’s no GPT that is proficient at coding yet.
As far as I know, right now the main problem with flying cars is that they are nowhere near as idiot-proof as a normal car, and don’t really solve any transportation problem since most countries’ air regulations agencies would require them to exclusively take off and land in airports… Where you can usually find tons of planes that can go much further (and are much more cost effective, as you pointed out)
It’s a lot easier to access ChatGPT than it is to access a flying car
The more people using chatgpt to generate low quality code they don’t understand, the more job safety and greater salary I get.
My main use is skipping the blank page problem when writing a new suite of tests—which after about 10 mins of refactoring are often a good starting point
Yep, by definition generative AI gets worse the more specific you get. If you need common templates though, it’s almost as good as today’s google.
… which is not a high bar.
Generative AI is great for loads of programming tasks like helping create regular expressions or syntax conversions between languages. The main issue I’ve seen in codebases that rely heavily on generative AI is that the “solutions” often fix today’s bug while making future debugging more difficult. Generative AI makes it easy to go fast in the wrong direction. Used right it’s a useful tool.
No shit. Senior devs have been saying this the whole time. AI, in its current form, for developers, is like handing a spatula to a gourmet chef. Yes it is useful to an extremely small degree, but that’s it…for now.
It’s when you only have a pot and your fingers that a spatula is awesome. I could never bother finish learning C and its awkward syntax. Even though I know how to code in some other language, I just couldn’t write much C at all and it was painful and slow. And too much time passed between attempts that I forgot most of it in between. Now I can easily make simple C apps, I just explain the underlying logic, with example of how I would do it in my preferred language and piece by piece it quickly comes together and I don’t have to remember if the for loop needs brackets of parenthesis or brackets nor if the line terminator is colon or semi colon.
The problem is that you’re still not learning, then. Maybe that’s your goal, and if so, no worries, but AI is currently a hammer that everyone seems to be falling over themselves finding nails for.
All I can do is sigh and shake my head. This bubble will burst, and AI will still take decades to get to the point people think it is already at.
Au contraire, not only you quickly learn the grab bag of strategy and tricks of the “average programmers” and their default solutions, you no longer get bogged down in the menial wrangling of compiler syntax.
That is IF you actually read, debug and implement this code as part of a larger system.
Of course if it “just works” and you don’t read how it works then you just get a working tool, but don’t really learn how it works inside. Kind of like those people who just drive cars but never did replace their crank bearings and transmission clutch packs
If you do interact with the code I think it will quickly elevate a newbie to a mediocre but capable programmer. Progressing beyond that is like stepping out and walking after driving for days.
A convoluted spatula that sometimes accidentally cuts what your cooking im half instead of flipping it and consumes as much power as the entirety of Japan.