I would have to disagree that what I did was "cheating".
Software engineers are given problems to solve, and their job is to solve these problems efficiently. You don't always have the solution to every problem off of the top of your head. That's why programmers use Google, StackOverflow, and documentation as resources. The primary skill employers are looking for is learning how to learn new things quickly. And I believe I demonstrated that skill in my interview.
Also, I declined to mention this in the article, but after I finished that UTF encoding problem in my interview, the interviewer asked where I got the check-bit macro (he saw me paste it in). I told him I got it from StackOverflow. It didn't seem to concern him.
> Also, I declined to mention this in the article, but after I finished that UTF encoding problem in my interview, the interviewer asked where I got the check-bit macro (he saw me paste it in). I told him I got it from StackOverflow. It didn't seem to concern him.
That's a pretty important part of the story, and makes the situation very different. It also makes the interviewer seem a lot more competent. Trivia questions are useless in interviews, and the fact that you were able to quickly google it, recognize it as a relevant solution, and apply it correctly actually is demonstrating that you know how to learn things quickly (and that you have at least some familiarity with binary representations and manipulations). The average charlatan would just start copying and pasting in panic, which is usually pretty easy to pick up on.
Meanwhile, you can't pretend what you described in your post is really a moral position if you had not said anything. It might not have been strictly immoral as you really owe them nothing, but there's no shining principle demonstrated there.
Hello, I am an employer, please don't tell me what skill I am looking for in an interview. If I wanted to know how good you are at learning new things quickly, I would ask questions like "what's on your list of cool things to pick up in the next year or two?" or "what's something interesting you found out working on project X?" or "what do you think about new thing Y, where Y is related to thing Z you know about?" (And I do.)
If I asked you a question about manipulating Unicode, I am so obviously not looking to find out how quickly you learn things, and you know perfectly well I'm not. I'm finding out what you know about character encoding and string manipulation!
(Regarding your addendum, if you're actually honest about it in the interview I don't really take any issue with it. But I hope you would be honest about it before an interviewer has to ask you whether you cheated.)
Interviewing is different from a real job. You need to show you can do more than look up solutions on the web.
I can't blame you for trying to cheat your way into a job and I certainly blame the interviewer for not seeing through your cheat, but make no mistake: you cheated.
It is generally considered cheating by Google phone interview standards, the interviewer probably was satisfied by the other answers, plus the fact that the interviewee immediately and casually owned up to it probably indicated that it hadn't been made clear that it was disallowed.
Employers are risk averse with their hiring and so, in the absence of compelling evidence, they will choose to not hire a candidate. Pasting in an answer from somewhere else turns the question (and possibly the whole interview) into a no-op waste of everybody's time. It just doesn't provide the interviewer with good data to make a decision.
My word of advice to you is this: study harder next time, be honest when they hit a gap in your knowledge (maybe they will offer to fill in that gap!), and don't Google on the phone. Interviews are like tests at school - closed book, unless stated otherwise.
It's amusing to think that someone may be subverting my silly interview questions. If you were being cleverer than the interviewer, I suppose that's a fair way to succeed.
Software engineers are given problems to solve, and their job is to solve these problems efficiently. You don't always have the solution to every problem off of the top of your head. That's why programmers use Google, StackOverflow, and documentation as resources. The primary skill employers are looking for is learning how to learn new things quickly. And I believe I demonstrated that skill in my interview.
Also, I declined to mention this in the article, but after I finished that UTF encoding problem in my interview, the interviewer asked where I got the check-bit macro (he saw me paste it in). I told him I got it from StackOverflow. It didn't seem to concern him.