개발자를 인터뷰 할 때 어떤 기술을 사용하십니까? [닫은]


28

나는 이런 유형의 일에 대해 많은 토론이 있었으며, 그들은 당신이 "100 개의 논리적 해적"유형의 질문을하는지 또는 그들이 "fizz buzz"를 쓰게하는지의 여부에 대해 교리로 종종 전개된다는 것을 알고 있습니다.

잠재적 인 개발자를 인터뷰 때 어떤 기술과 질문이 효과적인지 관심이 있습니다.

답변 당 하나의 기술로 투표 할 수 있습니다.

답변:


21

실제 기술적 인 질문 외에도 일반적으로 인터뷰가 끝날 때 업계에 대한 관심 수준을 파악하려고 노력하며 문화는 다음과 같은 질문으로 구성됩니다.

  • 최근에 흥미롭고 다른 프로그래머에게 추천하고 싶은 프로그래밍 관련 사항이 있습니까? 새로운 언어, 도구, 플랫폼, 기술, 웹 사이트?

  • 당신이 좋아하거나 영감을 얻은 작품을 우리 업계에서 잘 알려진 사람의 이름으로 말할 수 있습니까? (개발자, 웹 사이트 창립자, 저자, 연사 등)

  • 지금 무엇을 읽고 있거나 마지막으로 읽은 소프트웨어 관련 서적은 무엇입니까?

  • 어떤 프로그래밍 관련 사이트를 자주 방문하십니까?

이 질문들에 전혀 대답하지 못한다고해도 (슬프게도 매우 빈번하게 일어난다) "나에게 '무용지물"을 의미하는 것은 아니지만, 소프트웨어 개발 분야에 사람이 접근하는 방식에 대해 많은 사람들이 말합니다.


4
소프트웨어 인터뷰에서 이것이 가장 중요하다고 말할 수있을 것입니다. 코드 작성이 더 중요하다고 주장 할 수 있지만 최근 또는 대학에서 비슷한 내용을 다루는 사람들은 코드를 통해 자신의 길을 추측 할 수 있지만 실제 진정한 관심을 위조하는 것은 매우 어렵습니다.
Mike B

5
이것이이 웹 사이트에서 인기있는 답변이라는 사실에 놀라지 않습니다. 여기서 관객은 "프로그래머 문화"를 중시하는 사람입니다. (나는 대답에 동의하지만,이 테스트에 실패한 몇몇 훌륭한 프로그래머, 특히 40 명 이상의 사람들을 만났다)
AShelly

2
@AShelly : 예, 동의합니다. 그렇기 때문에 프로그래머를 거부하거나 수락하는 데이 질문이 필수적이라고 생각하지 않습니다. 인터뷰하는 동안 사용할 수있는 또 다른 기술 일뿐입니다.
Sergio Acosta

16

코드를 작성하고 실제 코드를 작성하십시오.

면접관은 C ++, Java, C # 또는 무엇이든 가장 편한 프로그래밍 언어를 선택하고 간단한 문제를 해결하도록 요청할 수 있습니다 (예 : 문자열 또는 이중 연결 목록 또는 기타 작업). 간단한 문제를 해결하는 데 가장 적합한 언어를 사용하는 데 문제가 있으면 문제가있는 것입니다. Steve Yegge의 블로그 게시물 과 특히 "정신 준비"섹션을 참조하십시오 .


6
예,하지만 너무 많지는 않습니다.
Damovisa

실제 코드를 작성하면 엘리트 소프트웨어 회사 (Google, Amazon, Microsoft 등)의 문을 열고 나머지를 골라 자유롭게 선택할 수 있습니다.
grokus

3
답을 자세히 설명하십시오. "실제"코드는 무엇을 의미합니까? "실제"가 아닌 코드는 무엇입니까?
MAK

+1 @MAK : 동의합니다. 실제 코드는 무엇입니까? 프로덕션 소프트웨어에서 사용하고자하는 코드라면 ...
Steven Evers

1
인터뷰 대상에게 'strdup ()'함수를 작성하도록 요청하는 것과 같은 '실제 코드'를 고려할 것입니다. 실제로 사용하며 메모리 관리 및 오류 처리와 같은 것들에 대한 경험과 태도를 노출시킵니다.
JBR 윌킨슨

11

팀원 몇 명이 독립적으로 인터뷰하도록하십시오. 당신의 생각을 공유 한 후, 인터뷰하기 전에 대화를 나누지 마십시오. 그 사이에 대화를하면 당신의 판단이 흔들리고 독립적 인 의견이 없을 것입니다.

인터뷰를하는 기술적 인 사람들을 위해 코드를 작성하십시오. 비 기술적 인 경우, 경험이없는 것을 묻지 마십시오. 적어도 몇 명의 기술 담당자가 인터뷰를해야합니다.

인터뷰는 관리자 만 수행해서는 안되며, 앞으로 작업 할 모든 작업자에게 매우 중요합니다.


2
"인터뷰는 관리자 만 수행해서는 안됩니다"+1 신입 사원이 동료뿐만 아니라 코드를자를 수 없다면 팀 사이에 불안이있을 것입니다.
JBR 윌킨슨

7

인터뷰 대상자가 이전 프로젝트와 수행 한 작업을 설명하고 싶습니다. 이 답변을 통해 후속 질문을 할 수 있습니다. 왜 그들이 특정 방식으로 일했는지, 그들이 언급 한 경우 특정 문제를 어떻게 해결 했습니까? 그러나 가장 중요한 것은 프로젝트의 목적이 무엇 이며이 문제가 해결 된 비즈니스 문제입니다.

나는 그들이하고있는 일을 이해할 수있는 방식으로 그들이 분명히 설명 할 수 있는지, 그들이하고있는 것을 이해하는지 알아보기 위해 이것을한다.

프로젝트의 목적과 비즈니스 문제에 대한 마지막 질문으로 많은 사람들이 여행을 떠났다는 것은 놀라운 일입니다. 그들은 왜 그들이 작업하고있는 프로젝트가 전혀 수행되지 않았는지 전혀 모른다. 왜 프로젝트가 처음에 존재하는지 모르는 경우 솔루션을 제공하고 있는지 또는 내가 말한대로 수행하는지 궁금합니다.

(다른 모든 답변은 기술적 인 경향이 있기 때문에이 질문을 거기에 던졌습니다. 나는 그들이 해결하는 문제를 해결하는 이유를 아는 사람들을 원합니다. 그렇지 않으면 최종 사용자가 잘못 알고있는 잘못된 문제를 해결하는 경향이 있습니다. t 신경 쓰지 :)


6

중요한 건축 결정을 내릴 것을 요청하십시오

예를 들어. 다음은 y 개의 하위 작업을 동시에 실행하는 프로그램 x입니다. 다중 프로세스 또는 스레딩 구조를 선택하십시오.

두 가지의 장점 / 단점은 무엇입니까? 그들은 얼마나 잘 작동하고 어떻게 멀티 코어, 멀티 프로세서 플랫폼을 활용할 수 있습니까? 개인 취향은 무엇입니까? 개인적인 편견은 실제로 지식을 적용하고 경험을 공유 할 수있는 출발점을 제공해야하는지 여부를 식별하는 데 도움이 될 수 있습니까?

면접관이 다음과 같이 제기 할 수있는 수많은 질문이 있습니다.

  • TCP 또는 UDP?
  • 동적 또는 정적 유형 언어?
  • 모 놀리 식 애플리케이션 또는 여러 소규모 애플리케이션?
  • 프로세스 간 통신에 무엇을 사용 하시겠습니까?
  • 저장 프로 시저 또는 ORM?

이러한 주제의 대부분은 컴퓨터 시스템의 작동 방식 / 이유에 대한 친밀한 지식이 포함 된 유형입니다. 그들은 모두 명확한 답이없는 문제에 대한 문제 / 해결책이므로 그 사람이 당면한 문제를 얼마나 잘 적응 시키거나 극복 할 수 있는지에 대한 감각을 제공합니다. 실제 경험이 없어도 쉽게 선택할 수있는 개념이 아닙니다.

참고 : 신청자가 의사 코드를 작성하도록하는 것도 필수이지만 그 답변은 이미 취해지고 있습니다.


여기에 덧붙이는 한 가지주의 할 점은 질문이 인터뷰를하는 회사에 특정 도메인이 아닌지 확인하는 것입니다.
JBR 윌킨슨

1

화이트 보드에서 수행 할 몇 가지 기본 코드 (예 : 링크 된 목록 구현, 정렬 또는 이와 유사한 코드)를 제공하십시오.

당신은 컴파일러의 도움없이 그들의 언어에 대해 얼마나 편안한 지 판단 할 수 있고 그들의 사고 과정을 판단 할 수 있습니다 (특히 그들이 그렇게하지 않은 경우 – 대부분의 "새로운"프로그래머들은하지 않았습니다).


8
동의하지 않습니다. 링크 된 목록과 정렬은 모두 일반적인 문제에 대해 잘 알려진 통조림 문제입니다. 글을 쓴 사람은 누구나 자신의 작업 방식을 알고 있지만 대부분의 언어는 이미 잘 작동하기 때문에 대부분의 사람들은 자신의 글을 쓰지 않아도됩니다.
Evan Plaice

나는 Evan에 동의한다. 실제로는 다른 정렬 / 검색 알고리즘과 기본 데이터 구조의 성능을 알고 있으면 충분합니다. 그것들을 구현하는 방법을 아는 것은 깔끔하지만 궁극적으로는 쓸모가 없습니다. 또한 대부분의 프로그래밍 작업에서 QuickSort를 세 줄로 구현하는 방법보다 작업에 적합한 프레임 워크 / 라이브러리를 선택하는 방법을 아는 것이 더 중요합니다.
Alan Plum

0

대화를 나누고 기술적이고 전문적인 경로를 따라 표류하고 구불 구불하게하며 길을 따라 통찰력이 있거나 어리석은 의견을 찾으십시오. 이것은 인터뷰에서 필요한 것의 3/4, 사람 기술 및 성격, 일반 지능 및 대략적인 기술 기술 평가에 대한 정보를 제공합니다.

인터뷰 "질문"을 주제 시작점으로 사용하고 대화를 기술적 인 주제와 상관 관계를 유지하십시오. 문제 / 관심 분야를 적절히 조사하기 위해 때때로 대화를 코딩해야합니다 (예 : 코딩 연습 수행).

이 기술의 진정한 요령 은 모든 대화를 확실 하게 하는 것입니다. 그렇지 않으면 말한 모든 것에 귀를 기울이거나 동의함으로써 기분 좋게 되므로 유리한 평가의 위험이 있습니다.

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