기술 인터뷰에서 템플릿 질문 사용 [닫기]


14

저는 최근 인터뷰에서 기술적 인 질문에 대해 동료와 논쟁을 벌였습니다. 졸업생으로 많은 회사를 다니면서 같은 질문을하는 것을 보았습니다. 예를 들어, "숫자가 소수인지 아닌지를 결정하는 함수를 작성할 수 있습니까?"입니다. 4 년 후, 주니어 개발자에게도 특정 질문이 매우 일반적이라는 것을 알았습니다. 나는 이것을 올바른 방법으로 보지 않을 수도 있지만 소프트웨어 하우스가 자신의 인터뷰 질문을 생각할만큼 지능적이지 않아야합니까? 저는 졸업생으로 약 16 번의 인터뷰에 참석했으며 그 중 75 %에서 같은 질문이 나왔습니다. 이로 인해 많은 회사가 게으르고 Google이라고 믿습니다. '소프트웨어 개발자 인터뷰를위한 템플릿 질문'이며 이러한 접근 방식을 사용하는 데 어려움을 겪고 있다고 생각합니다.

질문 : 일부 템플릿에서 일련의 질문을 사용하는 것이 더 낫거나 소프트웨어 하우스가 더 독창적이고 자체 인터뷰 자료를 마련하기 위해 노력해야합니까?

내 관점에서, 면접에 실패하고 떠났고 내가 엉망인 질문에 대한 정답을 찾았다면 질문이 같은 경우 다음 면담을 통해 날 수 있었다.


1
호기심에서 FizzBuzz 스타일 질문은 어디서 시작 되었습니까?
황량한 행성

1
소프트웨어 하우스는 대부분의 사람들이 회사에 있지 않고 질문을 보지 않는 한 며칠이 걸리는 솔루션을 완성하는 데 수천 시간을 소비 한 사람이된다는 질문에 너무 관여하지 않도록주의해야합니다. 이미.
JB King

2
템플릿 답변이 괜찮다면 템플릿 질문을 사용하십시오.
back2dos

답변:


18

많은 종류의 질문은 명확하고, 가능한 한 적은 도메인 지식이 필요하며, 누군가가 " 얻을 "또는"받지 못함 ", 사람들은 후보를 비교할 수있는 역사적 답변의 배경을 가지고 있습니다. 또한 최고의 질문에는 면접관이 응시자의 문제 해결 능력을 평가할 수있는 여러 수준의 정답이 있습니다. 예를 들어 누군가가 사소한 소수 (primal-finding) 알고리즘을 제안한다면, 우리는 구현을 최적화하거나 인터뷰어가 더 정교한 알고리즘 중 하나를 향한 후보자를 이끌어가는 방법에 대해 이야기 할 수 있습니다.

나는 많은 다른 개발자들이 특정 인터뷰 대상자들에게 특정 문제가 얼마나 어려울 지 평가했으며 그 추정치는지도 전체에 걸쳐있는 그룹에 속해있었습니다. 많은 사람들이 처음에 FizzBuzz를보고 특허 적으로 너무 쉽게 무시합니다. 질문이 얼마나 어려운지 잘 이해하지 않고 인터뷰에 참여하면 인터뷰 한 다섯 번째 사람이 첫 번째 사람에 비해 큰 이점을 가지게됩니다. 첫 번째 사람에 대한 부정적인 인상을 주면서 사람들이 FizzBuzz와 싸우는 것을 알게 되었기 때문입니다. 당신은 그들이 같은 투쟁을했기 때문에 인터뷰했습니다.

개발자가 새로운 질문을한다면 의도하지 않은 문화 또는 도메인 지식이 포함되어있는 경향이 있습니다. 예를 들어, 모호성을 신속하게 발견하거나 "명백한"가정을 할 수있는 해당 스포츠의 규칙을 알고있는 사람들에게 유리한 경향이있는 스포츠에 대한 질문을합니다. 스포츠에 전혀 익숙하지 않은 사람은 즉석에서 게임의 규칙을 찾아야하며 실수를하거나 덜 정교하게 대답 할 가능성이 높습니다. 또는 후보자들이 의도하지 않은 후보들이 상대적으로 작은 경미한 것을 알고 기억할 것이라고 생각하는 질문을 할 것이다. 예를 들어 몇 년 동안 회계 시스템에서 일해온 사람 모든 사람이 이중 입력 회계 시스템이 무엇인지 알고 있거나 간단한 이중 입력 회계 시스템 스키마 정의를 가정 한 질문이 유능한 개발자에게 명확하다고 가정 할 수 있습니다. 그러나 현금을 인출하고 현금 잔액을 낮추는 신용에 대한 차변에 대해 생각 해야하는 좋은 개발자를 쉽게 던질 수 있습니다. 그러나 회계 101을 택한 사람은 빨리 따라 잡을 것입니다. 후보자가 회계에 익숙한 지 테스트하려는 의도라면 이는 매우 합리적인 질문 일 수 있습니다. 그러나 주제 전문가를 찾고 있지 않다면 문제가 될 것입니다. 그러나 현금을 인출하고 현금 잔액을 낮추는 신용에 대한 차변에 대해 생각 해야하는 좋은 개발자를 쉽게 던질 수 있습니다. 그러나 회계 101을 택한 사람은 빨리 따라 잡을 것입니다. 후보자가 회계에 익숙한 지 테스트하려는 의도라면 이는 매우 합리적인 질문 일 수 있습니다. 그러나 주제 전문가를 찾고 있지 않다면 문제가 될 것입니다. 그러나 현금을 인출하고 현금 잔액을 낮추는 신용에 대한 차변에 대해 생각 해야하는 좋은 개발자를 쉽게 던질 수 있습니다. 그러나 회계 101을 택한 사람은 빨리 따라 잡을 것입니다. 후보자가 회계에 익숙한 지 테스트하려는 의도라면 이는 매우 합리적인 질문 일 수 있습니다. 그러나 주제 전문가를 찾고 있지 않다면 문제가 될 것입니다.

사람들이 사용하는 수백 가지의 "일반적인"템플릿 질문에 대한 답변을 누군가가 암기 할 수 있다고 생각하지만, 면접관으로서 나를 귀찮게하지는 않습니다. 우선, 그들이 그렇게한다면 다소 인상적 일 것이며 상당히 부지런함과 문제 해결을 반영 할 것입니다. 둘째, 개발자가 문자열을 뒤집는 방법을 알고 소수를 찾는 알고리즘을 알고 루프를 작성하고 FizzBuzz에 대한 제어 구문을 구현하는 방법을 알고, 오는 다양한 그래프 알고리즘을 알고 있다면 일반적으로 꽤 좋은 훈련이 될 것입니다. 정기적으로, 등등. 그들은 꽤 다방면에 걸친 개발자 일 것입니다. 개발자가 아무 것도 배우지 않고 답변을 외우면 면접관이 약간의 드릴 다운을 원할 때 발견됩니다.


7

나는 쉬운 질문 fizzbuzz, 문자열 뒤집기 등이 있다고 생각합니다. 그런 다음에 질문을 보지 못했다면 인터뷰의 추가 압력과 짧은 시간으로 의도 된 최적의 솔루션을 얻기가 어렵습니다. 제약. 최악의 부분은 때로는 기술적 인 지식이없는 채용 담당자가 이러한 질문 중 일부를 묻고 매우 구체적인 답변을 찾고 있다는 것입니다. 최적의 답변을 제공하지 않으면 절대 바보라고 생각합니다. 대답이 효과가 있어도 문제를 해결하고 최적이 아닐 수 있지만 너무 비효율적이지는 않습니다 ....

몇 가지 예 :
한 벌의 카드를 섞는 방법은 무엇입니까? 그들은 Fisher-Yates 방법을 찾고 있습니다 http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle다른 답변은 "잘못"입니다 ..... 이것은 카드를 셔플하지 않고 구체적으로 찾아보기 전에는 알 수없는 내용입니다. 당신은 대답을하는 과정에서 그것을 우연히 발견 할 수 있지만, 내가 본 것에서 그들은 당신 이이 감기를 알기를 기대하므로 해결책을 찾는 데 많은 시간이 주어질 것입니다. 덜 효율적인 (그러나 아마도 더 분명한) 또 다른 방법은 원래 배열에 대한 포인터와 임의의 숫자 인 숫자로 새 배열을 만든 다음 임의의 숫자로 배열을 정렬하는 것입니다. 그런 다음 정렬 된 배열을 사용하여 새 카드 배열을 구성하십시오. 어쨌든, 나는 그것을 모집 자에게 제시 한 것에 대해 0 점을 받았습니다.

또 다른 예는 1에서 n-1까지의 n 개의 숫자 목록에서 중복 숫자를 어떻게 감지하는지에 대한 질문입니다. 명백한 대답은 (시간 관점에서 상대적으로 효율적 임) 해시 테이블을 사용하여 각 요소를 삽입하고 이미 삽입 된 요소를 찾으면 복제본을 찾았습니다. 가장 좋은 대답은 숫자가 1과 n 사이에 있기 때문에 중복이 없으면 예상 합계를 n (n + 1) / n으로 얻을 수 있습니다. 그런 다음 배열을 합하면 예상 합계보다 nd 적은 실제 합계를 얻습니다. 그래서 기본적으로 n-(예상 합계-실제 합계) = 중복 번호 ... 그것은 아주 특별한 경우입니다 .... 나는 실제로 전에 같은 트릭을 가진 관련 문제에 관한 인터뷰 문제에 대한 온라인 게시물에서 무언가를 보았습니다. 나는 괜찮았다 ....

다른 하나는 추가 공백을 사용하지 않고 문자열의 모든 단어를 뒤집습니다. 나는 그것에 대해 생각해야했고 모집자는 내가 생각한 5 분 안에 참을성이 없었습니다 (문자열을 뒤집어 다시 결합하거나 단어별로 새 배열로 이동하는 것은 매우 쉽습니다). 나는 마지막 단어의 경계를 찾고 첫 번째 단어의 끝을 찾고 지속적으로 전체 목록을 1 씩 아래로 이동 한 다음 적절한 문자를 삽입했습니다. 그런 다음 목록 끝에 도달 할 때까지 반복하십시오. 이 방법은 효과가 있었고 면접관은 동의했지만 (그는 약간 기술적이지만) 비효율적입니다. 집에 도착했을 때 최적의 답을 찾았습니다.리스트를 뒤집은 다음 각 단어를 뒤집는 것입니다. 어떤 사람들은 그걸 생각 해낼 수 있습니다.

이제 이러한 문제 중 일부를 본 후에는 쉽게 해결할 수 있습니다. 같은 속임수와 비슷한 질문이 있기 때문입니다. 특히 n (n-1) / 2 수식과 숫자 목록에는 여러 변형이 있습니다. 그러나 여전히이 질문들이 무엇을 테스트하는지 모르겠습니다. FizzBuzz는 모든 사람이 할 수있는 일입니다 (단순하지 않은 변형을 보았지만 어떤 경우에도 코드를 입력 / 디버깅 할 수없는 인터뷰 상황에 대해 현실적인지 질문하기 시작합니다). 이러한 질문 중 일부는 일단 본 후에는 분명하지만, 보지 못한 경우에는 명확하지 않습니다. 모든 사람이 언급 한 후에는 이진 검색의 첫 번째 올바른 구현이 나타나기까지 몇 년이 걸렸습니다 ... 현재 이진 검색은 모든 사람들이 그것에 대해 읽을 수 있기 때문에 매우 분명합니다.

그럼에도 불구하고, 최악의 부분은 기술이 아닌 사람들이 귀하의 솔루션이 최적은 아니지만 정확하다는 것을 이해할 수 없기 때문에 질문을 할 때입니다. 그들은 귀하의 솔루션이 제시된 솔루션이 아니라는 것을 알고 있으며 따라서 모두 잘못되었으므로 시도에 대한 크레딧을 얻지 못합니다. 최적이 아닌 솔루션조차도 종종 프로그래밍 구조에 대한 지식을 보여줍니다. 내가 포커 게임을 프로그래밍하지 않는 한, 누군가가 한 벌의 카드를 잘 섞을 수 있는지에 대해서는 신경 쓰지 않습니다. 그리고 내가 그렇더라도 효율적인 알고리즘을 보여준 후에는 중간 정도의 사람이 그것을 따라갈 수 있다고 확신합니다.

템플릿 질문은 더 많은 템플릿 질문을 볼 가능성이 높으므로 더 오래 인터뷰 한 응시자에게 유리한 것으로 보입니다. FizzBuzz조차도 처음 보게되면 놀라게 될지 모르지만 반복해서 보면 익숙해집니다. 최선의 방법은 사용자 지정 비즈니스 논리가 필요한 코딩 문제를 해결하는 것입니다. 예를 들어 일부 데이터 세트 (객체 / 레코드 배열)를 생성 한 다음 각 객체에 적용 할 비즈니스 규칙을 생성하고 답변을 반환합니다. 레코드를 반복해서 처리하고 논리를 적시에 적용하는 것처럼 보였지만 규칙은 고유하므로 최소한 규칙을 이해하고 성공적으로 구현해야합니다.

예상 급여와 후보자 목록, 비디오 좋아하는 비디오 게임 3 대, 그리고 첫 급여를 가정 해 봅시다. 젤다를 좋아하는 응시자는 300 점을 받고, 인어 공주를 좋아하는 응시자는 200 보너스를받습니다. Donkey Kong과 Super Mario Brothers는 좋아하지만 Mario 박사는 그렇지 않은 지원자에게는 300 보너스가 주어집니다. Metroid 또는 Kid Icarus를 좋아하는 응시자는 200 보너스 등을받습니다. 약간 미친 것 같지만 비즈니스 규칙을 논리 프로그램 구조로 변환하고 부울 논리에 대한 이해도를 테스트하는 능력을 보여줍니다. 모듈러스와 루프를 사용하지 않는 것을 제외하고는 전체적으로 fizzbuzz와 크게 다르지 않습니다. 물론 목록을 제공하고 목록을 반복하여 특정 출력 기준을 사용하여 화면에 결과를 인쇄 할 수도 있습니다.


4

마지막 구직에서 비슷한 상황에 처했습니다. 나는 모든 회사에서 하나의 링크리스트 질문을 가지고 있다고 생각합니다.

제가 주목 한 것 중 하나는 첫 번째 인터뷰에서이 질문들이 주어 졌다는 것입니다.

면접관의 관점에서 볼 때 사람이 이러한 질문을 제대로받지 못하면 면접을 준비하지 않은 이유는 무엇입니까? 나는 이것이 올바른 생각이라고 생각하지 않습니다. 이 회사는 구글의 답변을 외울 수있는 많은 사람들을 다음 라운드로 옮길 것이지만 반드시 유능한 개발자 그룹 일 필요는 없다.

나는 보일러 플레이트 FizzBuzz가 개인적으로 성가신 질문을 발견했지만, 쉽게 인터뷰 할 수있었습니다. 나는 도전적인 인터뷰를 좋아합니다. 잠재적 인 직원을 인터뷰 할 때 문제를 생각하고 해결할 수 있다는 것을 알고 싶습니다. 그들이 Google을 사용할 수있을 것으로 기대합니다.

회사에 질문 템플릿이 있어야합니까? 예. 처음 몇 라운드의 후보를 평가하는 데 도움이됩니다. 템플릿을 Google을 통해 쉽게 찾을 수있는 일반적인 문제로 구성해야하나요? 아닙니다. 단지 모든 사람들이 짧게 변화시킵니다.


4

"소프트웨어 하우스가보다 독창적이고 자체 인터뷰 자료를 마련하기 위해 노력해야합니까?"

그렇습니다. 그러나 실제로 발생하는 일은 당신이 직장에 와서 내일 두 명의 후보자를위한 인터뷰 루프에 있다는 이메일을 HR에서 찾아내는 것입니다. 귀하는 이미 악어의 엉덩이에 달려 있으며, 상사는 반나절 새롭고 좋은 인터뷰 질문을 제기 해 주셔서 감사하지 않습니다. 시간이 지남에 따라, 당신은 당신이 한 질문에 빠지 거나 구글에서 빨리 찾을 수 있습니다.


2
예, 그리고 당신은 정말 좋은 인터뷰 질문으로 가득 찬 문서를 가지고있는 반면에, 그렇지 않으면 당신은 물어
Doug T.

3

언급 한 질문은 일반적으로 fizzbuzz 질문이며 고용에 사용되는 질문이 아닙니다. 그들은 부인하는 질문입니다 (즉, 정답은 어떤 식 으로든 일자리를 얻지 못하지만 오답은 쓰레기통에 던져 질 것입니다). 그래서 그들은 매우 가치가 없습니다.

나중에 제기 될 질문들과 의지가 회사의 업무 유형과 팀의 역동 성과 어떤 관계가 있는가하는 것입니다.

대답은 둘 다입니다.


4
나는 fizzbuzz 스타일의 질문이 질문을 거부하고 있다는 데 동의하지만 ... 잘못된 사람들을 버스에서 내리지 않도록하십시오!
Peter K.

2

그들의 질문의 대부분 또는 전부가 동일하다면, 그것은 실제로 나쁜 것입니다 (즉, 그들에게는). 그것은 아마도 면접관이 그 일을 잘 준비하지 못했음을 보여줍니다.

FizzBuzz 테스트와 같은 "템플릿"엔트리 레벨 질문을 사용하면 너무 많은 시간과 노력을 들이지 않고 신속하게 완전하게 정리할 수 있습니다. 그럼에도 불구하고 주제의 변형은 Google에서 직접 답변을들을 수 없도록하는 데 유용합니다. 그런 다음, 방금 작성한 코드가 실제로 무엇을하고 왜 작동하는지 (또는 작동하지 않는지) 후보자에게 쉽게 물어볼 수 있습니다. 나는 기술적으로 능숙한 면접관이 누군가가 그 대답을 알고있는 척하는 사람인지 신속하게 감지 할 수 있다고 생각합니다.

더 중요한 것은, 누군가가 엔트리 레벨 테스트를 통과하면 더 이상 어려운 질문이 생겨나게됩니다. 저는 개인적으로 수수께끼에 대한 구체적인 해결책보다는 인터뷰 대상자의 사고 과정과 문제 해결 능력에 더 관심이 있습니다. 다른 중요한 주제는 개발 프로세스 및 접근 방식입니다. 이러한 주제에 대한 구체적인 질문보다는 개방형 토론을 시작합니다. 이 주제에 대한 옳고 그름의 대답은 없으므로 미리 준비 할 가능성이 없습니다. 그러나 토론을 통해 본인과 팀이이 후보자와 함께 일하는 것이 편한지에 대해 많은 것을 배웁니다.

따라서 일부 "템플릿"질문은 제한적이지만, 좋은 인터뷰는 인터뷰 과정에서 응시자의 (광고 및 실제) 기술 수준, 정신 상태 (신경 / 피로) 등 상황에 적응해야합니다.


네,하지만 당신이 FizzBuzz 테스트를한다고해서 적합하지 않고 실패한 사람을 시험해보십시오. 그들은 좋은 답변을 찾아 다른 회사에서 그 질문을 전달할 수 있습니다. 이것은 저를 귀찮게하는 부분이며 회사가 템플릿 질문을 사용하지 않아야 할 의무가 있다고 생각합니다. 모든 선임 소프트웨어 개발자는 쉬운 것부터 어려운 것까지 좋은 질문을 생각할 수 있어야합니다.
황량한 행성

2
@Desolate Planet : 그래도 피즈 버즈에 실패한 사람들이 답을 찾는 유형이 아니라고 생각합니다. 다음 인터뷰에서 질문을받지 않기를 바랍니다.
Steven Evers

흠 ..하지만 3 ~ 4 번의 인터뷰를 망쳐 버린 후에도 질문의 패턴을 감지 할 수있을 정도로 똑똑합니다. 다시 말하지만, 이것은 일반적으로 기술 인터뷰에 대해 생각한 것입니다.
황량한 행성

1
@Desolate, 그렇다면 그들은 구직 신청자를 잘 걸러 내고 싶지 않은 회사에서 일자리를 얻을 수있을 것입니다 ... 그래서 둘 다 자격이 있습니다.
Péter Török

@ 피터, 나는 당신의 말에 동의하지만, 직업에 적합하고 회사에 기여할 수있는 것을 가지고있는 다른 지원자에게는 다소 불공평합니다. 그들은 누군가가 큰 대답을 보았고 그 과정을 왈츠 때문에 기회를 얻지 못할 수도 있습니다. 나는 모든 회사들이 이와 같다고 말하는 것은 아니지만 일반적으로 회사에 가입 할 때 네트워크 드라이브에 인터뷰 질문 목록과 함께 단어 문서가 있으며 거의 ​​동일하게 보입니다. 그것은 매우 게으른 나를 때리게합니다.
Desolate Planet

2

의사 코드의 인터뷰 템플릿 :

질문 (FizzBuzz_type_question) == 맞다면

각각에 대해 (배열 _ 더보기 _ 관심 질문의 질문 q) 질문 (q) 기타

인터뷰 종료.


1

인터뷰는 다음과 같이 나누어야한다고 생각합니다.

  • 사회적 측면 (HR과는 별개)-이 사람이 우리 조직에 잘 맞습니까? 그는 올바른 태도를 가지고 있습니까-그는 우리의 경영 스타일을 기꺼이 따르겠습니까? 회사와 팀이 다르기 때문에 독창적이어야합니다.

  • 역할에 대한 일반적인 적합성-다시 말하지만 이것은 장소마다 달라야합니다

  • 핵심 : 직업의 주요 영역에 중점을 둔 주제 문제-과학적이며 과학적이므로 독창적 일 필요는 없습니다.

  • 매일 매일의 작업 적합성 : 다음은 응시자가 매일 수행 할 것으로 예상되는 주제에 대한 질문입니다. 그것은 과학적 일지 모르지만 그가 할 것으로 예상되는 실제 일에서 더 낫습니다. 이 부분은 장소에 따라 다릅니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.