Three things I've noticed as a dev whose field involves a lot of niche software development.
1. LLMs seem to benefit 'hacker-type' programmers from my experience. People who tend to approach coding problems in a very "kick the TV from different angles and see if it works" strategy.
2. There seems to be two overgeneralized types of devs in the market right now: Devs who make niche software and devs who make web apps, data pipelines, and other standard industry tools. LLMs are much better at helping with the established tool development at the moment.
3. LLMs are absolute savants at making clean-ish looking surface level tech demos in ~5 minutes, they are masters of selling "themselves" to executives. Moving a demo to a production stack? Eh, results may vary to say the least.
I use LLMs extensively when they make sense for me.
One fascinating thing for me is how different everyone's experience with LLMs is. Obviously there's a lot of noise out there. With AI haters and AI tech bros kind of muddying the waters with extremist takes.
Lol same, writing SQL and directly wrangling Async connection pools always seemed way easier for me than trying to jam sqlalchemy into whatever hole I'm working with.
It really depends what your industry is. I've been writing some printer drivers for custom hardware + windows applications at work. Much of the technical jargon I've been learning during development involve things like "driver interfaces" and "communication interfaces".
Depending on how recently I'd been working on our printer drivers I also would likely need clarification. Now if the job is "frontend developer" I agree, someone needing to clarify if you're talking about a user interface or communication layer interface is probably a bad sign.
But if it's a looser role I'd definitely look to clarify the question!
Even front end developers have more than 1 concept of an interface: there's both technical facing interfaces and customer facing interfaces.
I guess you could just give a generic answer: an interface represents some kinda boundary between users and implementation details, and hopefully said boundary is easier to use than the details.
I would guess some would flag that as a bullshit answer, but without clarification you can't do anything but speak in generalities.
Now if it were the interface keyword, they're primarily a means by which to introduce polymorphism. They no more achieve the goal of a generally-defined interface than does a regular class, which already satisfies the definition of the generally-defined interface through their public methods. This might also sound like a load of bullshit to some.
If you answered me like that I would be happy, as it means you understood the defining characteristic of any interface is that it is the deliberate introduction of a systemic boundary to act as a bridge between two systems in the broadest sense. E.g. if a human could directly interface with digital signals we wouldn't need a graphical user interface. If your program doesn't need to interact with other programs you wouldn't need an Application Protocol Interface, etc.
It isn't an easy question, but I'd really suggest to see such broad questions as a chance to show off your knowledge, instead of a potential trick question where the teacher expects you to read their mind and gives you an F if you answered the wrong question. If an interviewer isn't happy with a broad answer to a broad question they can always ask you to go into detail on a specific aspect. Having demonstrated that you have a broad overview and a high level understanding is valuable either way.
I interviewed people and I would prefer a broad answer to a broad question. A broad question is an invitation for you to present me a selected platter of knowledge you have aquired about the various forms of interfaces. And the candidate who does that will always outperform a candidate who can't think about those concepts on a broad abstract level and needs to be lead to the waterhole.
"What is an interface?", is a totally legit question that can be answered without thinking about any specific interface. E.g. it could could be described as a systemic boundary between two domains, that is ideally well defined. You could talk about different interfaces, what the advantages and pitfalls of introducing interfaces are, conventions that exist etc.
Could you direct me to resources about collisions and splat data?
I have an extreme interest in deriving measurements from splat data of vegetation, as it tends to reconstruct thin planes like leaves far better than other traditional SfM techniques.
1. LLMs seem to benefit 'hacker-type' programmers from my experience. People who tend to approach coding problems in a very "kick the TV from different angles and see if it works" strategy.
2. There seems to be two overgeneralized types of devs in the market right now: Devs who make niche software and devs who make web apps, data pipelines, and other standard industry tools. LLMs are much better at helping with the established tool development at the moment.
3. LLMs are absolute savants at making clean-ish looking surface level tech demos in ~5 minutes, they are masters of selling "themselves" to executives. Moving a demo to a production stack? Eh, results may vary to say the least.
I use LLMs extensively when they make sense for me.
One fascinating thing for me is how different everyone's experience with LLMs is. Obviously there's a lot of noise out there. With AI haters and AI tech bros kind of muddying the waters with extremist takes.