The entire programmer ethos revolves around building deep understandings of the level abstraction you're working at and deep diving into the layers below when necessary or even just for fun!
I've watched people use co-pilot but and I'm not 100% convinced it's a good thing but I'm open to it. The problem I've seen is that in some cases it generates some really bad code, code that could've been replaced by usage of a standard library.
What I think it's really good at is helping to learn new languages. Getting idiomatic code generated, even if you throw it out eventually is a great way to get a feel for a new language without having to jump back and forth between the editor and the browser.
I save tons of time having to write matplotlib code etc. because AI does it for me and I can spend more time thinking about the deep parts of research. I basically haven't had to write more than 1 or 2 keystrokes for a plot I've made in months now. If that's not useful I don't know what is.
I see it differently. The entire ethos should revolve around product that works. Product the meets a market need. Product that brings joy (not friction) into the world.
Any tool that can meet that ends should be considered.
Put another way, users don't care what anyone (i.e., in engineering) does or does not know. They're not going to wake up and say "I only want to use products that don't use Copilot." Nobody cares about any ethos, etc.
Well I don't think I've shot myself in the foot, it seems a lot of people agree with me.
I'm not against the idea of ai coding tools on premise, but it did strike me as kind of funny to imagine someone using two such tools at the same time.
I'm more of a minimalist, and would generally prefer to have lean tools which get out of my way. The idea that every keystroke involves a back-and fourth with a server, and that my basic coding workflow would need an internet connection is not something which is super appealing to me personally.
Call me old fashioned, but when I need to create so much boilerplate that code generation starts to make sense, I usually just try to solve the problem in another more concise way.
As with any technology, there are those who don't like it, and that's fine.
I personally don't "trust" AI's decisions all that much, and I enjoy learning how to implement things on my own. Maybe that's why I won't be using Copilot, at least for now.
I feel Copilot indispensable - with the constant emergence of frameworks, languages I need to keep learning, it really shortens the time it takes to get productive in an unfamiliar environment.
I don't see the contradiction - if someone who started programming in the pre-Internet days in a text editor, then switched to an IDE with autocomplete and searchable docs, would it be hyperbole for him to say that he finds these tools indispensable?