인터뷰에서 회사의 코드 샘플 요청 [닫기]


69

구직자에게 일부 코드를 보여달라고 요청하는 것은 소프트웨어 회사에게는 일반적인 관행입니다. 그러나 응시자가 면접관에게 잘 작성된 것으로 생각되는 작은 코드 조각을 보여달라고 요청하는 것이 허용됩니까?


14
코딩 표준, 코드 검토 등에 대해 질문하고 싶습니다.
user16764

5
회사는 "Joel 테스트"를 통과합니까 : joelonsoftware.com/articles/fog0000000043.html
Martin York

2
@LokiAstari joel 테스트는 코딩 문화와 직접 관련이 없습니다 (작업 환경에만 해당).
Simon Bergot

8
후보자에게 이론적 인 질문을하는 것과 같은 @ user16764 : 좋은 첫 단계이지만, 그가이 지식을 어떻게 적용하는지 실제로 보여주지는 않습니다.
Simon Bergot

답변:


69

몇 가지 이유로 항상 몇 가지 코드를 보도록 요청합니다.

  • 내가 뭘하는지 알고 싶어 물론 어떤 소프트웨어 회사도 완벽하지는 않으며 모든 사람이 항상 우아함의 경이로움을 느끼지 않을 것이라고 기대하지는 않습니다. 하위 파 스파게티 엉망, 나는 비참한 시간을 보내고, 머리카락을 풀고 기술 부채로 싸우고 아무것도하지 않습니다. 회사가 보여줄 수있는 최상의 코드를 보면 어떤 종류의 품질이 가능한지에 대한 상한을 정합니다. 모든 코드가 그렇게 보이지 않는 경우에도 코드가 노력하고 있음을 여전히 알고 있습니다.
  • 코드 샘플을 보면 회사의 코딩 문화에 대해 많은 것을 알 수 있습니다. 그들은 문서 주석을 사용합니까? 그것들은 객체 지향 스타일에 의존하고, 기능적 프로그래밍 경향이 있습니까? 그들은 보수적이거나 진보적인가? 일관된 이름 지정, 올바른 형식 지정 및 들여 쓰기 및 깔끔한 코드를 중요하게 생각합니까? 코드를 쉽게 따라갈 수 있습니까? 그들은 어떻게 프로젝트를 구성합니까? 자동화 된 테스트, 오류 처리 등 중요한 것들에 어떻게 접근합니까? 코딩 스타일은 얼마나 방어 적입니까?
  • 기존 코드를 보면 표준을 준수 할 수 있는지 판단 할 수 있습니다 .
  • 회사가 코드 샘플 만 기꺼이 공유한다는 사실은 원칙적으로 좋은 신호입니다. 코드베이스가 가장 귀중한 자산 중 하나이기 때문에 지원자에게 신뢰 를 제공한다는 의미입니다 . 또한 코드를 부끄러워하지 않으며 코드를 표시하면 코드 작업에 관심이 있음을 확신합니다.
  • 코드 샘플을 보여주지 않으면 적기 일 필요는 없지만 공유하지 않는 이유를 물어 보는 것이 현명합니다 (아마도 법적인 이유로 간단하지 않습니다). 왜 일부를보고 싶어하는지 설명 할 수 있습니다. 정중하고 긍정적으로 요구하는 한 코드에 관심을 보이는 것은 부정적인 신호로 보일 것이라고 생각하지 않습니다.

그리고 더 많은 부작용이 있습니다.

코드를 표시하기로 동의 한 회사는 명백한 이유로 전체 코드베이스의 최신 버전이 포함 된 소스 파일을 보내지 않을 것입니다. 그들이 나에게 어떤 코드를 보여 주면, 약간의 데모 형식으로 보여줄 것입니다. 그것은 훌륭한 동료 중 한 사람과 이야기를 나누고 코딩 문화, 프로세스, 코드베이스와 이상적으로는 기술과 지식을 모두 보여주고 작업 환경에 대해 자세히 배울 수있는 전문 토론을 시작하는 데 도움이됩니다. 또한 그들이 사용하는 도구를 살펴 보는 것도 의미가 있습니다. 예를 들어, 그들이 보여주는 프로젝트가 특정 IDE에 크게 의존한다면, 모든 사람들이 그것을 사용한다는 것이 의미가 있습니다. 그리고 마지막으로,


1
잠재적 인 고용주가 명확하게 나쁜 코드를 보여 주면 코드와 프로세스를 개선 할 수있는 기회가 될 수 있습니다. 오래된 말에 따르면 "나는 완벽하게 조일 수는 있지만 부서 질 수는있다!" 또한, 후보자에게 또는 후보자가 보여준 코드는 다른 코드보다 훨씬 더 엄격하고 검토 된 것입니다.
akton

@akton 나쁜 코드에 대한 나의 태도입니다. 그러나 "고정 코드 수정"퀘스트에서 혼자있을 때는 쓸모가 없습니다. 좋은 코드를 보여달라고 요청하면 미래의 팀이 SOLID와 같은 것을 소중하게 생각하는 데 도움이 될 수 있습니다.
Simon Bergot

1
어떻게 한 후에는 실제로 "나는 항상 어떤 코드를 보여달라고" 표시 하지만 코드를? 사전에 무언가를 준비하거나 나중에 무언가를 보내달라고 요청하고 있습니까? 어떤 방식으로 보더라도 실용적이지 않은 것 같습니다.
Burhan Ali

1
@ BurhanAli : 그냥 물어. 많은 사람들이 나에게 어떤 것도 보여주기를 거부하고 보통 나에게 좋은 이유를 제시합니다. 동의하는 사람들은 저에게 감독 여행을 제공합니다. 누구든지 나에게 완전한 소스 세트를 우편으로 보내지 않을 것입니다. 그러나 IDE에서 프로젝트를 클릭하면 종종 볼 수 있습니다.
tdammers

많은 경우에 필자가 실제로보고 싶은 코드는 경쟁 우위로 간주 될 것이라고 생각합니다. 그것은 나에게 가장 중요한 코드가 될 것입니다 ... 그러나 그들이 코드를 보여 주겠다고 동의하면 아마도 좋은 코드를 이해하지 못하는 신호 일 것입니다. 내가 리드라면 사소한 내부 코드를 보여주지 않을 것입니다. 그래도 그래
Rig

14

그러나 응시자가 면접관에게 잘 작성된 것으로 생각되는 작은 코드 조각을 보여달라고 요청하는 것이 허용됩니까?

나는 '인터뷰는 양방향'만트라에 속한다고 생각하지만 어떤 것도 얻을 것으로 기대하지는 않습니다. 지적 재산에 대한 우려는 인터뷰 룸에 컴퓨터가 없다는 점에서 가장 명백한 문제이며, 귀하를 컴퓨터로 데려 오는 것은 다소 어색합니다.

또한, 그들은 가장 잘 보이고, 가장 의미가 적은 코드를 체리로 선택하려고합니다. 가장 좋은 코드는 실제로 문제가 아니며 최악의 코드입니다. 후보자로부터 코드 샘플을 얻는 것이 쓸모가없는 것과 같은 이유입니다.


10
그들이 당신을 보여주기 위해 좋은 코드를 선택할 수 있는지 알아 보는 것이 여전히 유용합니다. 잘못된 코드를 처리하는 데있어 가장 실망스러운 부분은 코드를 잘못 인식하여 수정해야하는 사람이 없다는 것입니다.
JGWeissman

5
또한 면접관의 좋은 코드 아이디어는 올바른 코드 아이디어가 아닐 수도 있습니다. 나는 그것을 나중에보다 빨리 발견하는 것이 도움이 될 것이라고 생각합니다.
Eric King

1
슬프게도 "인터뷰는 양방향입니다"접근 방식을 사용하려고했을 때 대부분의 고용주는 성가신 행동을했습니다. 아직 코드를 보여 드린 적이 없습니다.
Antonio2011a

12

응시자가 면접관에게 잘 작성된 것으로 생각되는 작은 코드를 보여달라고 요청하는 것이 허용 될 수 있습니까?

원하는 것은 무엇이든 물어볼 수 있지만

  • 당신은 아마 그것을 얻지 못할 것입니다.

  • 당신이 그것을 얻는다면, 그것은 당신에게 유용한 것을 말하지 않습니다. 코드의 10 %가 아름답고 나머지는 스파게티 인 경우, 여전히 스파게티를 주로 다루게됩니다.

  • 당신은 똑똑한 바지처럼 보일 것입니다. 궁극적으로 거기서 일하고 싶다면 큰 도움이되지 않습니다.

  • 귀중한 인터뷰 시간을 낭비합니다.

  • 알고 싶은 것을 찾는 더 좋은 방법이 있습니다. 다음과 같은 질문을하십시오.

    • 코드 품질의 가장 중요한 지표는 무엇입니까?
    • 주로 기존 코드를 유지 관리하거나 새 코드를 작성합니까?
    • 시스템 작동 방식을 간단히 설명 할 수 있습니까?
    • 코딩 표준 문서가 있습니까? 모두가 따라야합니까?

좋은 지적 ! 슬프게도 "코드 품질의 가장 중요한 지표는 무엇입니까?"와 같은 질문은 똑똑한 바지라고 인식 될 수 있습니다. (내 관점에서 볼 때 그것은 합리적인 질문이지만 많은 고용주들이 잠재적 인 부하 직원에 의해 퀴즈를 받고 있다고 느끼는 것을 좋아하지 않습니다).
Antonio2011a

2
@ Antonio2011a 올바른 질문을하면 괜찮을 것입니다. 아마도 "어떤 코드 품질 메트릭을 찾으십니까?" 그들이하는 일에 대해 더 배우고 싶다는 것을 분명히하십시오. 테스트를 관리하지 않고 그들에 대해 배우고 있습니다. 코드를 요청할 때에도 작동 할 수 있습니다. "코드가 어떻게 보이는지 볼 수 있습니까?" "좋은 코드로 생각하는 샘플을 원합니다."
Caleb

3

글쎄요. 나는 항상 내가 어디에서 일할 것인지 알고 싶어했다.

나는 면접을 양방향으로 본다. 회사는 당신에 대해 알게되고 당신은 회사에 대해 알게됩니다. 코드를 요청하는 것은 약간 많지만 개발 관련 질문을하는 것은 괜찮습니다.

예를 들어, 회사가 민첩한 기술이나 TDD를 사용하지 않거나 그러한 관행을 포용하고 장려하지 않는 직업은 받아들이지 않습니다. 또한 회사가 자신의 제품과 코드를 자랑스럽게 생각하는 경우에 감사합니다. 면접관이 귀하가보고자하는 것을 기다리고있는 것처럼 보였을 때, 그들이하는 모든 멋진 일을 설명 할 핑계가 있습니다.


동의했다. 그들이 사용하는 도구를 탐구하려고합니까? 많은 곳에서 제공하지 않는 추가 도구 (구성 요소, 유틸리티)에 대해 관리비를 지불하십시오. 오픈 소스 도구에 대한 태도는 항상 좋은 것입니다.
ozz

2

하하, 재미있는 질문입니다. 누군가 인터뷰 중에 코드 샘플을 요청하면 기분이 상하지 않지만 사전에 요청하지 않고 신중하게 계획 할 시간이 없다면 코드를 보여주지 않을 것입니다.

나는 그런 질문을하는 의도를 분명히 이해합니다. 구직자로서 저는 Joel Test에게 면접관에게 요청했습니다. 그들은 그것이 무엇인지 몰랐지만 기꺼이 대답했습니다.

어떤 곳에서는 이러한 유형의 질문을하면 기회가 향상 될 수 있지만 다른 곳에서는 기회가 손상 될 수 있습니다. 인생의 아름다움은 그것이 당신의 기회를 개선한다면, 그것이 당신이 일하고 싶은 곳의 종류라는 것입니다. 그것이 당신의 기회를 아프게한다면, 당신은 그 일을 원치 않았을 것입니다.

나는 정중하게 묻고 왜 당신이 그것을보고 싶어하는지 설명함으로써 잃을 것이 없다.


"인생의 아름다움은 그것이 기회를 향상 시킨다면 그것이 당신이 일하고 싶은 곳이라는 것입니다." +1
Spidey

2

나는 두 번의 인터뷰에서 그들이 asp.net mvc3 또는 4로 마이그레이션하는 선임 개발자가 있다고 주장하거나 그들이 코드를 많이 주석하고 싶다고 말했을 때이 질문을했습니다. 실제 코드 표준에 대한 지식이 부족하여 두 경우 모두 거부했습니다. 내가 찾은 유일한 표준은 복사하여 붙여 넣으면 작동한다는 것입니다. 새 프로젝트를 수행하거나 팀의 다른 사람들과 독립적으로 코드를 작성 해야하는 경우이 질문을하지 않습니다. 기존 소프트웨어 또는 기능을 수정하기 위해 고용 된 경우 코드를 볼 수 있으며 대답을 모른다면 예라고 대답하지 않습니다. 당신이 묻지 않는다고 가정하면 오늘 날짜부터 시작하도록 날짜 선택기를 수정하십시오. 레거시 코드를 볼 때 jquery 또는 jquery ui는 없지만 모든 날짜가 xml 파일에 저장되어 있고 매일 밤 cron 작업이 실행되어 밤새 업데이트됩니다. 이것을 달성하기위한 코드로 두통을 시작하면이 예제의 단어보다 적습니다. 코드를 작성하려면 코드를 요청하십시오. 묻지 않는 것은 고객이 작다고 말한 일자리를 인용하는 것과 같습니다. 그는 1 에이커에 20 에이커의 토지와 원예를 소유 할 수는 있지만 그에게는 작은 규모이지만 가드너는 모든 작은 일자리가 50에서 시작하기 때문에 50 quid를 청구 할 수 없습니다.


1

작업의 적어도 일부가 오픈 소스 인 회사에서 일하는 경향이 있으므로 코드 샘플을 찾는 것이 쉽지 않습니다. 누가 회사에서 일하는지 알아 낸 다음 온라인 핸들을 알아냅니다. 사람들은 동일한 화면 이름을 계속 사용하는 경향이 있기 때문에 Github, Bitbucket 또는 다른 곳에서 코드를 커밋 한 위치를 쉽게 찾을 수 있습니다.

현재 회사에는 Github에서 호스팅되는 많은 코드가 있으므로 작업 내용, 코드 기반 크기 및 더 이상 관심이없는 것으로 보이는 것을 쉽게 확인할 수있었습니다.

나는 그들이 당신에게 가장 좋은 코드를 보여줄 것이기 때문에 샘플을 요구하지 않을 것입니다. 이것은 당신이 사용할 코드가 아닙니다. 아마도 잠긴 방에있는 종 모양의 항아리에 들어있을 것입니다. 많은 사람들이 엉망이 된 지저분한 코드를 사용하게 될 것입니다.


0

당신이 그것을 얻을 수 있다면 이것은 굉장합니다. 때로는 NDA 유형 계약이 없으면 불가능하지만 항상 시도해 보는 것이 좋습니다. 당신의 확률을 높이기 위해, 면접관들에게 당신이 이것을 원하는 것을 미리 (2 일) 미리 알려서 그들이 당신에게 보여줄 것을 염두에 두십시오.

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