Remix.run Logo
vkou 6 days ago

So far, in my experience, that kind of clarification question is highly correlated to be followed by a firehose of bullshit.

But I keep an open mind, and am always ready to be pleasantly surprised.

jg0r3 6 days ago | parent [-]

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!

bcrosby95 6 days ago | parent | next [-]

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.

atoav 6 days ago | parent [-]

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.

6 days ago | parent [-]
[deleted]
atoav 6 days ago | parent | prev [-]

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.