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


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.