It's funny, what is a ten-year-old kid? A friend told me recently that her ten-year-old just finished reading The Hitchhiker's Guide to the Galaxy and was moving on to The Restaurant at the End of the Universe. So is the task to explain APIs to someone who's read Douglas Adams? I was learning programming when I was ten, so is the task to explain APIs to ten-year-old me? Were they even called APIs in 1994?
The reason this is funny to me is, these are exactly the sorts of considerations programmers should have, in asking this kind of question. In particular, I expect there are a decent number of cases where it'd be easier to explain APIs to a ten-year-old than to their parents!
Anyway, if a ten-year-old for some reason asked me what an API is, I'd first try and gauge how well they understand computers and computer programming. But I'd likely give them a decently technical explanation—start with "what are procedures?" and get to "what are subprocedures?" After all, an API is really just a collection of functions and some state, and I'd want to convey to the kid what's going on with all this stuff.
But, the only reason I'd take the time to explain APIs to a kid is because it might make them interested in programming (or further an interest they already have in programming). So that's the reason I'd be pretty technical with it, since if they aren't interested in programming then it doesn't matter.
I really like your take on this. I read somewhere that a six year old kid can understand the concept of death with no problems, so an API explanation sounds easy.
But still, like Ernest Rutherford said "An alleged scientific discovery has no merit unless it can be explained to a barmaid"
Beautifully said! I know some concepts in science are very complex to make it easier to understand, but I'm trying to make easier whatever I think is possible. Thank you!
I feel the purpose of this sort of questions is to confirm how well you understand the concepts and how can you simplify your thoughts and ideas to other person so it's easier for them to have a grasp on it.
Which only makes the question more ironic, since they're needlessly complicating things by asking it this way. You might accuse me of doing the same, but in my opinion I'm just rising to the complexity of the question. I'd give the interviewer more slack if this were any job but programming...
I mean, computers don't share our intuitions, or rather, computers don't have intuitions at all. When you're looking at code, "seeing the intention" (rather than seeing what's written) is the thing that makes debugging so difficult. Asking a question that isn't what you intended, but relying on people to fill in the details for you—it feels contrary to the spirit of programming, and frankly, intellectually sloppy.
It was a little complicated to me since my mind was full of content... trying to make it easier to understand would be hard at that moment, so quickly and suddenly.
So I think I understand your concern about it when you say about the spirit of programming
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
It's funny, what is a ten-year-old kid? A friend told me recently that her ten-year-old just finished reading The Hitchhiker's Guide to the Galaxy and was moving on to The Restaurant at the End of the Universe. So is the task to explain APIs to someone who's read Douglas Adams? I was learning programming when I was ten, so is the task to explain APIs to ten-year-old me? Were they even called APIs in 1994?
The reason this is funny to me is, these are exactly the sorts of considerations programmers should have, in asking this kind of question. In particular, I expect there are a decent number of cases where it'd be easier to explain APIs to a ten-year-old than to their parents!
Anyway, if a ten-year-old for some reason asked me what an API is, I'd first try and gauge how well they understand computers and computer programming. But I'd likely give them a decently technical explanation—start with "what are procedures?" and get to "what are subprocedures?" After all, an API is really just a collection of functions and some state, and I'd want to convey to the kid what's going on with all this stuff.
But, the only reason I'd take the time to explain APIs to a kid is because it might make them interested in programming (or further an interest they already have in programming). So that's the reason I'd be pretty technical with it, since if they aren't interested in programming then it doesn't matter.
I really like your take on this. I read somewhere that a six year old kid can understand the concept of death with no problems, so an API explanation sounds easy.
But still, like Ernest Rutherford said "An alleged scientific discovery has no merit unless it can be explained to a barmaid"
Beautifully said! I know some concepts in science are very complex to make it easier to understand, but I'm trying to make easier whatever I think is possible. Thank you!
I feel the purpose of this sort of questions is to confirm how well you understand the concepts and how can you simplify your thoughts and ideas to other person so it's easier for them to have a grasp on it.
Which only makes the question more ironic, since they're needlessly complicating things by asking it this way. You might accuse me of doing the same, but in my opinion I'm just rising to the complexity of the question. I'd give the interviewer more slack if this were any job but programming...
I mean, computers don't share our intuitions, or rather, computers don't have intuitions at all. When you're looking at code, "seeing the intention" (rather than seeing what's written) is the thing that makes debugging so difficult. Asking a question that isn't what you intended, but relying on people to fill in the details for you—it feels contrary to the spirit of programming, and frankly, intellectually sloppy.
It was a little complicated to me since my mind was full of content... trying to make it easier to understand would be hard at that moment, so quickly and suddenly.
So I think I understand your concern about it when you say about the spirit of programming