개발 과학자 입장에서 자연 과학자를 인터뷰하는 방법은 무엇입니까? [닫은]


30

원래 질문

나는 이미 회사의 컴퓨터 과학자들과 일부 테스터들과 프로젝트 관리자들과 인터뷰를했다. 이제 R & D 부서 내 연구 그룹의 공석을 채워야합니다 (부록 : "연구"는 연구 프로젝트에서 소프트웨어를 사용하여 대학, 다른 회사, 연구소와 함께 전문 도메인 / 시장 틈새 시장의 문제를 해결하려고 함을 의미합니다. 컴퓨터 과학 연구가 아니라 P = NP 문제를 해결하지 않을 것입니다).

이제 우리는 컴퓨터 과학 수업을 한 적이없는 화학 석사 (CV에 많은 물리학을 가지고 있음)를 가진 사람을 초대했습니다. 나는 이미 지역 대학의 커리어 시절에 30 분 정도 그와 이야기를 나 the으며 그 남자가 똑똑하다는 데는 의심의 여지가 없습니다. 또한 그의 점수는 우수하고 그는 구별을 가지고 졸업했다. 그의 BSc를 위해 그는 Mathematica에서 자신에게 프로그래밍을 가르쳐야했고 그가 프로그래밍을 많이 좋아한다고 믿었습니다. 또한 그는 석사 학위 논문을 위해 Mathematica로 구현 된 자신의 소프트웨어를 사용하여 이해할 수없는 물리 화학 문제를 해결했습니다. GUI와 8,000 LoC의 눈에 띄는 크기가 포함되어 있습니다. 그는 우리 연구 그룹에서하고있는 일에 매우 매료되어 정직하게 말해서 우리 같은 중소기업이 좋은 사람을 얻는 것이 매우 어렵다고 생각합니다. 또한 프로젝트 제안서 작성, 보고서 작성, 프레젠테이션 등을 도와 줄 수 있기 때문에 그를 고용하는 데 매우 관심이 있습니다. 그는 아마도 우리 팀에도 적합 할 것입니다.

남은 유일한 질문은 프로젝트에서 소프트웨어 구현을 수행하는 데 필요한 프로그래밍 기술을 얻을 수 있는지 어떻게 확인할 수 있습니까?

물론 나는 그에게 무엇이 있는지 물어볼 것입니다. 그것은 프로그래밍에 대해 그를 매료시킵니다. 또한 자연 과학 소프트웨어를 어떻게 작성하고 어떻게 구성했는지 물어볼 것입니다. 그가 필요한 소프트웨어 개발에 대한 기술과 정보를 어떻게 얻었는지 물어볼 것입니다. 하지만 더 물어볼 게 있나요? 좀 더 구체적인 것? 그에게 Mathematica 솔루션을 설명하도록 요청해야합니까?

명확하게 : 특정 언어 또는 기술 스택에 대한 지식을 찾고 있지 않습니다. 우리는 제품 개발 분야의 .NET 상점이지만 연구 프로젝트를위한 자유로운 선택을 원합니다. 저는 메타 역량이 실제로 필요한 것을 배울 수있는 것에 관심이 있습니다.

나는이 질문이 대답하기 쉽고 개방적이지 않기를 바란다. 나는 직업에 대한 추가적인 프로그래밍 기술 을 얻는 능력을 점검하는 기본 방법이 있는지 알고 싶기 때문이다 . 분명하지 않은 내용이 있으면 의견을 남겨 주시고 내 질문을 개선하겠습니다.

2011-12-01까지의 답변을 반영하여 업데이트

어떤 대답을 받았으며 왜

답변 해 주셔서 감사합니다. 대부분 도움이되었으므로 많이 찬성했습니다. Tom Squires의 답변 이 가장 많은 표를 얻었 지만 Goulash 왕자답변 을 받아 들일 것 입니다. 물론 Tom은 객관적으로 정확하지만 Prince의 대답은 나에게 더 도움 되며 대답을 수락하는 기준 이라는 FAQ를 다시 확인했습니다 .

인터뷰 중에 물어볼 내용

  • Chris Burt-Brown이 언급 한 The Camel Has Two Humps 의 예와 같은 간단한 과제를 설명해 드리겠습니다.

  • 그래픽 표기법으로 고급 제어 흐름을 설명해달라고 요청합니다.

  • 수학 예제를 사용하여 재귀에 대한 그의 이해를 확인하겠습니다.

  • 그가 선택한 알고리즘을 자연어로 설명하도록하겠습니다.

  • 그의 Mathematica 솔루션을 설명하도록하겠습니다. 특히 그의 절차 모델, 도구 사용, 코드 및 소프트웨어의 구조화 및 다른 추상화 계층을 요구할 것입니다.

  • 그의 동기를 확인하기 위해 그의 소프트웨어 개발 매력을 물어볼 것입니다.

  • 엔터프라이즈 소프트웨어 개발에 대해 배우는 것이 무엇인지 알고 있는지 물어볼 것입니다. 특히 나는 MSc 혼자서 일한 후에 이것에 대해 많이 알지 못하기 때문에 토론을 팀 작업, 페어 프로그래밍, TDD의 방향으로 바꾸고 싶습니다.

긴 인터뷰가 될 것 같습니다.)

인터뷰 후 업데이트 2011-12-09

다시 한 번 좋은 답변에 감사드립니다. 그는 비행 색상으로 인터뷰를 통과했습니다. 나는 지원자에게 더 이상 만족하지 않았습니다. 그의 Mathematica 솔루션은 꽤 잘 구성된 것 같습니다. 그는 이것이 고차 함수를 어디에 사용했는지 설명 할 수 있었지만, 이것들이 이것과 같은 것을 알지 못했습니다. 그는 수학 기반의 재귀 질문뿐만 아니라 The Camel Has Two Humps의 간단한 과제 및 제어 흐름에 대해서도 대답했습니다.. 그가 일부 알고리즘을 설명 할 때 비선형 피팅에 대해 많은 것을 배웠습니다.) 그는 솔직히 말해서 지금까지 모르는 전문 소프트웨어 개발에 대해 배울 수 있다고 보장 할 수는 없습니다. 그러나 그는 자신도 새로운 개념을 배우는 데 항상 능숙했으며 실제로 소프트웨어 개발에 관심이 있다고 믿습니다. 그는 또한 프로젝트의 기술 스택을 요청했으며, 우선 적용하여 집에서 살펴볼 것입니다. 그는 페어 프로그래밍과 팀 작업에 대해서도 궁금했습니다. 이제 고용 계약이 체결되기를 바랍니다.


9
회사가 자신이 사용하는 기술에 대한 지식이없는 사람들을 기꺼이 고용 할 수 있다는 사실이 놀랍습니다. 내가 경력을 쌓기 전에 회사를 찾았 으면 좋겠다.
NoChance

엠마 드 : 그것이 제가 설명하고자했던 "메타 능력"입니다. 필요할 때 스칼라 / 리프트를 배울 수없는 (혹은 기꺼이) 뛰어난 C # 프로그래머를 고용하면 회사의 이점은 어디에 있습니까? 솔직히 말해서 : 실제로 독일에서 좋은 사람들을 구하는 것은 매우 어렵습니다. 특히 당신이 SME가 우리처럼 트렌디 한 대도시에 있지 않을 때.
Silas

2
간단한 제어 흐름과 특정 언어의 다른 매우 기본적인 기술에 대해 약간의 연구를하도록 요청하십시오. 그리고 그가 들어 오면 그것들을 사용하여 문제를 해결하도록 요청하십시오.
대런 영

2
나는 내 현재 위치에서 몇 명의 과학자가 된 개발자와 함께 일했습니다. IMHO는 개발 측면에서 문제를 해결하는 데 매우 능숙하고 좋은 OO 원칙으로 유지 관리 가능한 코드를 작성하는 데별로 좋지 않습니다. '빠르고 더러운'도구를 쓰는 것 이상을 원한다면 전통적인 개발자와 함께 작업해야 할 수도 있습니다.
Jordan Bentley

2
나는이 사람이다. 나는 계산 물리 / 화학 배경을 가지고 있으며, 많은 (때로는 복잡하고 성공적인) 부가 프로젝트와 함께 많은 계산 모델 / 코드를 개발했습니다. 전문 개발 환경에서해야 할 주요 조정 사항은 개발 방법론 및 팀 작업과 관련이있었습니다. 소프트웨어에서 함께 작동하는 데 필요한 사항을 이해해야합니다. 그는 여러분이 사용하는 방법 (TTD / 연관적인 통합과 같은 것들)과 그것들과 함께 일하는 것이 그의 결과에 어떤 의미가 있는지 이해해야합니다.
drxzcl

답변:


21

몇 년 전 물리학 박사 학위를 받았지만 코딩 경험이 거의 없었기 때문에 (Fortran의 학부 과정에), 나는 여기에 매우 편견이 있습니다. 분명히 그것은 개발중인 소프트웨어의 유형에 달려 있지만, 내 관점은 코딩 기술은 반 정도의 과학 / 문제 해결 능력을 가진 사람이 쉽게 선택할 수 있다는 것입니다. 나는 컴퓨터 과학을 공부 한 평생 프로그래머들에게 모욕적 인 의도는 아닙니다 : 물론 멀티 스레딩과 매우 낮은 수준의 아키텍처를 마스터하기 위해 진지한 훈련을받는 기술적 인 측면이 있습니다. 채우려는 위치가 아닙니다.

현재 직책에 대한 기술 인터뷰에서 저는 상당히 복잡한 수학 문제에 직면하여이를 해결하기위한 프로그램을 설계하도록 요청했습니다. 일단 구현되면 문제를 해결하는 알고리즘을 작성하는 것이 강조되었습니다. 내 솔루션을 설명하기 위해 단어를 사용하여 정답을 작성할 수는 있지만 원하는 경우 원하는 언어로 코드를 작성할 수 있습니다. 테스트는 문제 해결 능력과 "프로그래머처럼 생각할 수 있는지"에 대한 것이 었습니다. 분명히 동등한 능력을 가진 후보자가 있고 직접 코딩 경험이 더 많은 사람이라면, 그는 정상에 나왔을 것입니다.

결론은 : 당신이 그를 달성하고자하는 이상에 대한 것이 아니라, 당신이 그를 고용하고있는 기술에 대한 후보를 검사합니다.


2
이전 과학자였던 프로그래머와 함께 작업 한 결과, 저급 세부 사항뿐만 아니라 매우 높은 수준의 내용도 있습니다. 물론 YMMV이지만 문제가되는 것은 일반적으로 깊이가 부족합니다. 모든 직업에 그럴 필요는 없습니다.
Donal Fellows

1
@DonalFellows : 특정 교육을받지 못한 개발자는 폭 넓고 깊이있는 지식이 부족할 수 있습니다. 역할과 제공되는 사내 교육의 양에 따라 다릅니다.
프린스 굴 라시

1
@DonalFellows : OP가 현재 지식이 아닌 학습자의 학습 능력을 결정하는 데 관심이 있다는 점을 감안할 때 ...

2
@DonalFellows : 이전에 말했듯이, OP는 현재 지식이 아닌 지원자의 학습 능력을 결정하는 데 관심이 있다는 점을 감안할 때 ...

2
@ Mark Bannister : 좋은 과학자는 배울 수 있지만 여기서 유용한 질문은 아닙니다. 더 유용한 질문은 과학자가 알아야 할 내용을 배우게 될 것입니다. 그것은 성격 문제의 문제입니다. 과학자는 소프트웨어 엔지니어링에 대해 자신이 모르는 것을 알고 있습니까?
David Thornley

37

그가 필요한 프로그래밍 기술을 얻을 수 있는지 어떻게 확인할 수 있습니까?

당신은 할 수 없습니다 . 아직 가지고 있지 않은 기술을 정확하게 테스트하는 것은 불가능합니다. 그의 지성과 태도에 따라 판단을해야합니다. 궁극적으로 항상 위험이 될 것입니다.

개인적 경험에서 나는 과학에서 프로그래밍으로 전환하는 것이 매우 가능하다고 말할 수 있습니다. 둘 다 기본적으로 복잡한 퍼즐을 풀기 위해 두뇌를 사용합니다.


8
+1 "이 둘은 기본적으로 복잡한 퍼즐을 풀기 위해 두뇌를 사용하는 것으로 요약됩니다."
joshin4colours

1
무슨 일이야? 천국을 위해서 남자를 고용하십시오! 프로그래머는 첨단 선반 작업자 일뿐입니다. 그는 열정적이고 똑똑하며 많은 화학을 알고 있습니다. 당신 그를 고용 하지 않으면 , 다음에 당신이 지금부터 누군가를 고용하려고 할 때 당신은 당신이하지 않은 엉덩이를 걷어차 것입니다.
피트 윌슨

1
CS 졸업생들이 13 살 정도 이래 프로그래밍을 한 것은 드문 일이 아닙니다. 그들이 대학에 입학 할 때, 그들은 이미 대부분의 규모의 중간 프로그래머입니다. 그렇다고해서 학위에서 아무것도 배우지 않았다는 의미는 아닙니다. 프로그래밍은 쉽다 ... 컴퓨터 과학 / 소프트 엔지니어링은 아니다. 이것은 그들이 귀중한 회원이되고 기여할 수는 없지만 ... CS 재단이 결코 같지 않을 것이라는 의미입니다.
user606723

6

이 백서를 확인하는 2 차 자료가 없으므로 보증 할 수 없지만

낙타에는 두 개의 혹이 있습니다
http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf

우리는 프로그래밍 적성에 대한 테스트를 찾았습니다. 우리는 학생들이 프로그래밍 언어와 매우 정확하게 접촉하기 전에, 그리고 몇 주 노출 후 동일한 도구로 극도로 정확하게 테스트함으로써 성공 또는 실패를 예측할 수 있습니다.


3
논문을 읽은 후 나는이 연구에 대해 얼마 전에 읽은 것을 기억합니다. 다시는 찾을 수 없습니다 :( 편집 : 코딩 호러에서 언급 되었습니다. 상기시켜 주셔서 감사합니다
Silas

@Silas 추가
Izkata

5

그가 필요한 프로그래밍 기술을 얻을 수 있는지 어떻게 확인할 수 있습니까?

매우 간단합니다. 그에게 기술을 줘.

자, 그것은 매우 만족스러운 답변은 아니지만 자세히 설명하겠습니다.

나는 토목 공학에서 3 년간 일한 후 프로그래밍을 시작했습니다. 그것은 응용 물리학과 수학 에서 꽤 견고한 배경입니다 . CS 학위가 제공하는 이론적 인 수학은 아니지만 가치가 있습니다. 엔지니어링 경험에서 얻은 것은 문제 해결 에 대한 탄탄한 배경이었습니다 . 수학 배경을 가진 사람은 이미 문제에 대한 해결책에 대해 이야기 할 때 우아함 의 개념을 높이 평가합니다 . 그들은 6 페이지의 치킨 스크래치를 가져 와서 제출을위한 우아한 반 페이지 증명으로 변환하는 데 시간을 보냈기 때문에 이미 리팩토링 교육을 받았습니다.

물리학을 공부 한 사람은 기본 프레임 워크의 솔루션을 함께 결합하는 직관적 인 접근 방식을 개발했습니다.

그리고이 기술 이외의 프로그래밍은 무엇입니까? -언어, 숙어, 패턴 및 프레임 워크. 이것들은 가르치기 쉽다. 할 수없는 문제를 해결하는 것입니다. 이러한 영역에서 교육을 제공 할 수 있다면 훌륭한 개발자가 될 것입니다.

그러면 질문은 "얼마나 빨리 그 사람의 속도에 도달 할 때까지 기다릴 수 있습니까?"

tl; dr; 타이핑을 가르 칠 수 있습니다. 똑똑하게 가르 칠 수 없습니다.


+1, 아주 좋은 답변입니다. 나는 사람들이 직업에 대해 더 개방적인 견해를 갖기를 바랍니다. 수학 학위를 받았다고해서 생계를 위해 프로그래밍을 할 수 없으며 다른 방법으로도 할 수 없다는 것을 의미하지는 않습니다. 배우는 것은 중요한 기술 IMO입니다.
K.Steff

2

재료 과학 학사 학위를 받았지만 소프트웨어 개발 분야에서 모든 경력을 쌓았습니다.

후보자가 기본 프로그래밍 및 알고리즘에 문제가 없을 것이라고 제안하지만보다 "엔지니어링"유형 요구 사항에 대해서는 몇 가지 지침이 필요할 수 있습니다. 즉, 500 줄 기능이없고 효과적으로 테스트하고 효율성을 설계하는 그의 코드를 잘 구성해야합니다.

이것의 대부분은 가르쳐 질 수 있지만, 이것을 확인하기 위해 몇 가지 질문을 디자인하고 싶을 수도 있습니다.


2

또한 그는 석사 학위 논문을 위해 Mathematica로 구현 된 자신의 소프트웨어를 사용하여 이해할 수없는 물리 화학 문제를 해결했습니다. GUI와 8,000 LoC의 눈에 띄는 크기가 포함되어 있습니다.

후보자가 이미 프로그래밍 방법을 알고있는 것처럼 들립니다. 전용 개발자만큼 경험이 많지 않을 수도 있지만 사소한 양의 작업을 완료 해야하는 명백한 프로젝트가 있습니다. 따라서, 상점에서 사용하는 언어와 다른 언어를 사용하는 개발자와 동일한 방식으로 후보를 인터뷰 할 수 있습니다.

  • 핵심 역량 -응시자는 기본 프로그래밍 논리, 흐름 제어, 기본 데이터 구조를 이해합니다.
  • 고급 역량 -응시자는 객체 지향 프로그래밍 및 디자인, 고급 데이터 구조, 인터페이스, 추상 클래스 등을 이해합니다.
  • 문제 해결 능력 -문제가 주어지면 응시자는 확실한 문제 해결 능력을 보여줍니다.

Mathematica가 사용하는 언어는 상당히 발전되어 있으며 Mathematica 용 소프트웨어를 작성하는 데 능숙한 사람은 다른 영역에서 상당히 유능해야합니다. 따라서 해당 경험에 중점을두고 코딩 경험의 기초로 사용하는 것이 인터뷰에 접근하는 좋은 방법이 될 수 있습니다.


2

항공 우주 공학 대학원생이 프로그래머로 말하면 자연 과학에서 프로그래밍으로 도약 할 수 있습니다. 그러나 문제를 해결할 수 있다고해서 코드를 작성하는 능력과 항상 관련이있는 것은 아닙니다. 당신은 이것을 깨닫는 것 같고 그것은 좋은 것입니다.

나에게 그가 파악하도록하는 가장 중요한 개념은 제어 흐름재귀 (그리고 일반적으로 이것의 일부로서 반복)이다. 후보자를 고용하기 전에, 매우 똑똑한 사람이라도 문제를 해결하기 위해 평범한 단어 알고리즘을 작성할 수 있는지 확인하십시오. 그가 그 평범한 단어 알고리즘을 취하여 적어도 의사 코드로 바꿀 수 있는지 확인하십시오. 당신은 그가 다형성의 개념을 적어도 이해할 수 있는지 알아볼 수도 있지만, 이것이이 상황에서 필요한 지식인지는 확실하지 않습니다.

Mathematica / MatLab /의 과학 문제를 해결할 수있는 능력도주의하십시오. 좋은 코드를 작성할 수있는 것은 아닙니다. 그것은 단지 그가 if / else 문장과 같은 기본적인 (때로는 매우 기본적인) 프로그래밍 원칙을 적용 할 수 있다는 것을 의미합니다. 좋은 프로그래머가되는 법을 배우는 것은 일반적으로이 단계에서 누군가에게 개인적이고 고용주의 헌신을 가져옵니다. 경고 : 저는 종이 봉지에서 자신의 길을 프로그래밍 할 수없고 기본 언어 기본 사항을 정직하게 파악할 수없는 훌륭한 엔지니어 인 매우 지능적인 사람들을 만났습니다.

개인적인 경험

나는 학교에서 공학 학위와 약간의 프로그래밍 경험을 가지고 학교를 졸업했습니다. 나는 매우 소량의 C, 꽤 많은 MatLab 및 일부 VB + Access로 작업했습니다. VB.NET 샵에서 프로그래머로서 정말로 유용 해지기까지 약 3 개월의 공부가 필요했습니다. 완전히 능숙 해지는 데 9 개월이 더 걸렸습니다. 그러나, 나는 자신감을 가지고 문제 해결 능력이 내가 직장에서 만난 다른 프로그래머의 99 %보다 우수하다고 말할 수있다. 저의 고용주들은 저를 더욱 귀중한 자산 중 하나로 생각했습니다.

결론

위험 / 보상 제안이지만 종종 순수한 문제 해결 기술을 가진 사람을 고용하면 프로그래밍 개념을 배울 수 있고 프로그래밍을 확장하는 데 시간을 투자 할 수있는 한 장기적으로 돈을 지불 할 수 있습니다 지식. 그러나 나는 그가 당신에게 직업을 제공하기 전에 최소한 프로그래밍의 기본에 대한 기본적인 이해를 가지고 있어야한다고 확신합니다. 내 경험상,이 시점에 도달하면 훨씬 더 나아갈 수 있습니다.


답장을 보내 주셔서 감사합니다. 그것은 내 생각의 대부분을 확인합니다. IMO가 좋은 코드를 작성할 수없는 개발자와 건축가로 일하면서 많은 컴퓨터 과학자들을 만났다고 덧붙이고 싶습니다. 프로그래밍에 관한 기술 기사를 쓰는 사람들도 있습니다. 결론 : 좋은 progammer를 벌이 려면 항상 많은 종류의 책을 읽고, 다른 언어를 배우는 등 어떤 종류의 학위를 가지고 있든간에 필요합니다.
Silas

1

나는 그가 알고리즘과 프로그래밍의 논리에 있는지 알아보기 위해 기본적인 알고리즘 질문과 기본으로 시작할 것입니다. 알고리즘이 무엇인지 이해할 수 있으면 나중에 구체적인 작업을 수행하는 데 필요한 기술을 개발할 수 있습니다.


1

프로젝트에서 소프트웨어 구현에 필요한 프로그래밍 기술을 얻을 수 있는지 어떻게 확인할 수 있습니까?

솔직히, 나는 당신이 1-2 시간의 인터뷰에서이 정보를 얻지 못할 것이라고 확신합니다. 그에게 C # (너무 기술적이지 않은 것)으로 프로그래밍 과제를주고 1 ~ 2 주 동안 해결하십시오. 그것은 이미 Mathematica로 프로그래밍을 배운 사람을 위해 언어의 기초를 배우기에 충분한 시간이어야합니다. 그런 다음 그와 코드를 검토하고 해당 기반을 결정하십시오.


1

과학적인 환경에서의 프로그래밍 연습을 살펴볼 수 있습니까? 자연 과학의 프로그래밍 문화가 어떻게 생겼는지에 대한 아이디어를 얻으려면 스택 오버플로에서). 그렇게하면 자신의 준비를 동료의 준비와 비교할 수 있습니다.

그 문제에 대해, 다른 방법 이 있다는 것을 알고 있는지 배우기 위해 자신이 사용한 프로그래밍 방법을 설명해달라고 요청할 수 있습니다 .

내 사업에는 자격을 갖추어 작업 코드를 함께 사용할 수있는 충분한 상태를 유지할 수 있지만 작업이 구조화되지 않고 유지하기 어려운 경향이있는 많은 "좋은 프로그래머"가 있습니다. 일반적으로 그들은 가르쳐하지만 ... 그들은 할 수 있는 가르 칠 수 있습니다.


0

내가 일하는 다른 부서는 표준 테스트에서 변형을 사용합니다. 첫 번째 과제는 문자열에서 단어를 뒤집는 것입니다. 그런 다음 해당 코드를 사용하여 문자열의 단어 순서를 그대로 유지하십시오. 프로그래밍 언어를 사용하는 대신, 후보자는 종이에 알고리즘을 설계하고 스크래블 보드를 사용하여 알고리즘을 실행합니다.


0

물리학에서 무언가를 계산하는 알고리즘을 자연 언어를 사용하여 설명하도록 요청합니다. 간단한 공식보다 조금 더 복잡한 점이 있는데, 어떻게 계산이 객체에 캡슐화되어 있는지를 물을 것입니다. 이런 식으로 당신은 그의 논리적 사고를 볼 수 있습니다. 이것은 모든 프로그래밍 기술보다 중요합니다.


0

첫째, 그들은 아마도 똑똑 할 것이므로 최악의 시나리오는 지침이있는 훌륭한 프로그래머가되는 법을 배울 수 있습니다. 그러나 만약 당신이 그들이 뛰어 들어가고 싶은 프로그래머가되어야한다면, 그들이 작성한 샘플 코드를 보내도록하십시오.

하나 또는 두 개의 거대한 다목적 함수입니까, 아니면 적절한 추상화 수준에서 기능을 캡슐화 했습니까? 매직 넘버는 전체적으로 하드 코딩되어 있습니까? 코드가 건조합니까? 변수에 합리적인 이름을 주었습니까, 아니면 모든 것이 해독 할 수없는 약어 또는 단일 문자 변수입니까? 코드의 논리를 대부분 따를 수 있습니까? 그들은 OO 기본을 이해합니까?

버전 관리에 무엇을 사용하는지 물어보십시오 (git / hg / svn / cvs / bzr 등). 코드를 프로파일 링하거나 디버거를 사용한 적이 있습니까? 그렇다면 일반적인 디버깅 전략은 무엇입니까?

그들이이 테스트를 통과하지 못하고 시작부터 좋은 코더가 필요하다면이 사람을 건너 뛰십시오. 그렇지 않은 경우 고용하여 일반 프로그래밍 / CS 서적과 함께 일부 소프트웨어 엔지니어링 서적 (예 : Code Complete)을 읽도록 제안하십시오.

(기록을 위해 나는 또한 물리 과학자가 프로그래머가되었다.)


-3

그는 여전히 대학교에 있거나 최근에 마쳤 기 때문에 공부하는 데 익숙합니다. 그에게 Design Patterns 책을 읽고 이해하게하고 한 달 후 (또는 그 동안) 주제에 대해 그와 철저히 토론하십시오. (나는 그렇게 생각한다) 이것은 그의 능력에 대해 많은 것을 말해 줄 수있다. 그러나 한 달의 시간이 걸립니다.


8
-1 문제는 그를 어떻게 면접하는 것을 멈추게 하는가가 아니라 인터뷰하는 방법에 관한 것이었다.
피터 테일러
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.