Live data from Hacker News

I won't deliberately use AI for programming

mahdikarimi.com

61–67 of 67 posts

Re: I won't deliberately use AI for programming

#61
post #59

Earlier quoted context omitted.

As a front-end lead and long time game programmer, I've been using copilot at work and home since it was invite-only. This assessment isn't accurate, at least in my case. Copilot mostly: - Writes the same code (often verbatim) I was about to write, often multiple lines of it. "Ok, next I'll loop over the rigidbodies and apply the force to the ones in range- oh look the loop is already there" - Gives me some API calls…

> be honest, you don't read a book on every API call you copy from Stack Overflow. I don't, because I don't copy code from SO in the first place. But when I'm using or encountering an API that I'm not terribly familiar with, I absolutely do read the documentation for it. It's part of my continuing education and how I maintain a diverse professional skillset.

Same here, I've very rarely ever copy/pasted code out of stackoverflow.

The response to my comment above is an example of what I was describing, and I don't mean it as an insult (though I understand if it is taken that way). People don't all treat software development the same.

The 'rush to action' types are more willing to shortcut the thought part of the work that others might. They are more willing to embrace AI codegen, as coding for them is not about reifying understanding.

If I were to adopt AI code generation, I'd still have to read the code to understand, which nullifies some of its value.

I do think AI code generation as a way to start designs could be good. But again, if I need to expose company code to do that, it probably isn't worth it.

Re: I won't deliberately use AI for programming

#62
post #6

I’ve found that GPT-4 now fills the role that Google once did for me when learning new things. For whatever reason the Google results just aren’t as useful as they used to be. Highly specific queries return very generalized results, and it takes a lot of effort to find something relevant. With ChatGPT I can ask it how to do just about anything in any language and it nearly always gives me exactly what I need.

Some of this has to do with Google pushing sites like geeksforgeeks above more helpful blogs.

Re: I won't deliberately use AI for programming

#63
post #59

Earlier quoted context omitted.

> be honest, you don't read a book on every API call you copy from Stack Overflow. I don't, because I don't copy code from SO in the first place. But when I'm using or encountering an API that I'm not terribly familiar with, I absolutely do read the documentation for it. It's part of my continuing education and how I maintain a diverse professional skillset.

Same here, I've very rarely ever copy/pasted code out of stackoverflow. The response to my comment above is an example of what I was describing, and I don't mean it as an insult (though I understand if it is taken that way). People don't all treat software development the same. The 'rush to action' types are more willing to shortcut the thought part of the work that others might. They are more willing to embrace AI c…

> coding for them is not about reifying understanding.

I don't agree with the implication that I have a deficit in understanding. I would more say that I focus my understanding where it matters.

For example, in web dev this would be a thorough fundamental understanding of the DOM and what interacts with it (JS/HTML/CSS, especially the warts of JS), the performance/responsiveness costs of doing things certain ways, what runs synchronously and how to use that to make the best user experience (avoid flashing/repainting with a quick synchronous thing but longer things should be async..), the overarching architecture of your codebase and how modules should fit into it, what your internal API's do..

If you're rock solid on all of that, the really important stuff of your domain, then you'll have smooth sailing whatever you do. The rest is quite often incidental. Copilot/stackoverflow/some guy on IRC says org.apache.util3.json.JSON.IsValidJson will validate my json, and I already have org.apache.util3 installed? Great, moving on to the rest of the work I have to do building this service..

If that API call blows up on me later, I'll investigate deeper, but my sense of what's important to investigate deeply rarely fails me at this point in my career. The org.apache.util3 probably have little interesting to teach me, but when Firefox started supporting raw JS modules, you bet I thoroughly looked into that.

Re: I won't deliberately use AI for programming

#64
post #21

Earlier quoted context omitted.

This is a bit beside the point. They also use dishes instead of leaves, presumable a modern axe instead of a piece of stone, etc. To me it’s about finding the sweet spot between staying connected to the thing that you’re doing for the purpose of keeping life interesting/fulfilling and utilizing your time wisely. Driving stick is like shooting manual photos. Not necessary in 2023, but can be a lot more fun than the al…

My point is that AI is just a tool for programming and that I see it as more comparable to the difference between walking and driving than the difference between driving stick and automatic.

Eh, I can’t really agree, but I suppose this is relative to each person’s interests.

To me, the analogy to walking would be like foregoing the computer entirely and using an abacus, or sticks in the sand.

The end result of writing code manually or automatically is still a program made from code that must be maintained. Some people like more control over the code.

The end result of using an automatic or manual transmission is still driving. Some people like more control over the operation of the transmission because of the finer grained control over the output of the car that it enables.

Re: I won't deliberately use AI for programming

#65

Earlier quoted context omitted.

No, it's more like getting bad advice from Stack Overflow or Reddit. Usually you notice it's broken because it doesn't work. There may be some advice that seems to work, but has subtle issues. (For example, race conditions.) Having more experience can help in spotting these problems. Either way, copying code blindly isn't a good idea. In a professional situation, better testing and code review can help.

Yes, but collectively we understand that SO or Reddit are unreliable, plus it's usually one-way and we don't see people posting bad advice defending it just for us. LLMs, on the other hand, are extremely convincing, while being even less trustworthy than SO/Reddit. Just make a mental experiment and imagine that every comment here praising LLM coding skills is actually about copypasting stuff from SO. Does it not seem…

I don't think it's any more alarming than people posting that they find Stack Overflow useful sometimes. That's why it became popular, right?

Similarly for searching the Internet. Internet searches are potentially dangerous if you can't tell good answers from bad. But if you treat it as a source of hints that you need to verify yourself, it's a pretty good source of hints.

Many of us have learned quite well that LLM's are unreliable. Someone posts about the problem whenever it comes up. It's something close to conventional wisdom.

It's still surprising the first time you see it hallucinate, though. You have to see it for yourself. Once you've seen it a few times, it isn't so convincing anymore.

Re: I won't deliberately use AI for programming

#66

Earlier quoted context omitted.

Same here, I've very rarely ever copy/pasted code out of stackoverflow. The response to my comment above is an example of what I was describing, and I don't mean it as an insult (though I understand if it is taken that way). People don't all treat software development the same. The 'rush to action' types are more willing to shortcut the thought part of the work that others might. They are more willing to embrace AI c…

> coding for them is not about reifying understanding. I don't agree with the implication that I have a deficit in understanding. I would more say that I focus my understanding where it matters. For example, in web dev this would be a thorough fundamental understanding of the DOM and what interacts with it (JS/HTML/CSS, especially the warts of JS), the performance/responsiveness costs of doing things certain ways, wh…

I think it's a difference in approach and goals. One approach isn't better than another -- it all depends on the person and what their overall goal is.

Personally, I've found that very often, things I've learned that were apparently unrelated to the task at hand gives me a key insight in how to approach the task at hand in a better way. That broad knowledge base is a large part of the value I bring to the job. This continuing education is not limited to technological topics -- any knowledge from any domain may be useful to me as a dev.

This is why I go out of my way to learn things as deeply as is practical, even (or especially) if that knowledge is much more than what I need for the immediate task at hand. I'm taking a natural opportunity to advance my overall knowledge and skillset. The immediate task at hand is only part of what I'm being paid to do. Another part is expanding my knowledge base. A huge part of what I want out of any job is to expand my education.

Other devs don't have that as their goal, and there's nothing at all wrong with that. It's just a different style and different overall goals, is all.

Re: I won't deliberately use AI for programming

#67

Earlier quoted context omitted.

Same here, I've very rarely ever copy/pasted code out of stackoverflow. The response to my comment above is an example of what I was describing, and I don't mean it as an insult (though I understand if it is taken that way). People don't all treat software development the same. The 'rush to action' types are more willing to shortcut the thought part of the work that others might. They are more willing to embrace AI c…

> coding for them is not about reifying understanding. I don't agree with the implication that I have a deficit in understanding. I would more say that I focus my understanding where it matters. For example, in web dev this would be a thorough fundamental understanding of the DOM and what interacts with it (JS/HTML/CSS, especially the warts of JS), the performance/responsiveness costs of doing things certain ways, wh…

I wasn't implying you lacked understanding.

I was describing two different general approaches people use to write software.

Sorry to use your post as an example. I don't know anything about you outside your posts. Please don't take it personally.

Post reply on HN