새로운 프로그래머를 평가하는 가장 좋은 방법은 무엇입니까? [닫은]


51

새로운 직업을 구할 수있는 가장 좋은 후보자를 평가하는 가장 좋은 방법은 무엇입니까 (프로그래밍 기술 측면에서만 이야기하는 것)? 우리 회사에서는 성적이 좋지만 실제 프로그래밍 기술이없는 사람들과 나쁜 경험을 많이했습니다. 그들의 기술은 문제를 분석하고 해결책을 찾을 수없는 코드 원숭이와 같습니다.

주의해야 할 사항 :

  • 우리 나라의 교육 시스템은 정말 짜증납니다. 이런 종류의 직업에 능숙한 사람들은 재능이 있거나 실제로 스스로 배우려고 노력하기 때문에 좋습니다.

  • 대학 / 대학원 / 대학원 학위가 반드시 일을하는 방법을 정확히 알고있는 것은 아닙니다.

  • 인증 과정을 담당하는 사람들도 기술이 없거나 임금이 낮은 직업이기 때문에 인증은 여기서 아무 의미가 없습니다.

우리는 실제로 유연하고 기계적인 사고가없는 좋은 후보자를 얻을 필요가 있습니다 (경험별로 이런 유형의 사람들은 성과가 낮기 때문에).

우리는 정부 기관에 있으며 후보자 인 사람들은 반드시 외부에서 오는 것은 아니지만 올바른 후보자를 찾을 때까지 후보자를 받아 들일 수 있습니다.

내 질문에 너무 공격적으로 들리지 않기를 바랍니다. BTW 저는 프로그래머입니다.

편집 : 나는 여기에 정말로 복잡한 것을 요구한다는 것을 알았습니다. 나는 "정답"의 토글을 풀고 편견없이 토론이 유창하게 진행되도록 할 것입니다.


코드 원숭이와 관련하여 말한 것처럼 창의력을 소중히 생각합니다. 나는 과거의 프로그래머가 주어진 접근법을 사용했다면 무차별 대입 방식이 마음에 들지 않습니다. 대단히 또는 오랫동안 지속되었다는 것을 의미 할 수 있습니다. 또한 교육은 무역 기술에 중점을 두지 않아야하며, 그것이 매우 중요하다고 말하지만 실제 등급을 기본 능력 수준 이상으로 중요하지 않은 것으로 생각하십시오. 모듈을 다시 가져 오기 전에 다른 모듈 패스 종속성과 냉각 기간이있는 많은 작은 패스 / 실패 모듈로 구성된 Khan Academy 스타일 시스템을 더 많이보고 싶습니다.
alan2here

답변:


52

후보자 선발에 관해서는 보통 3 가지 계획을 씁니다.

  • 정기적 인 검사FizzBuzz 같은 코딩 질문 하고 코딩 예제를 제공하기 위해 많은 지식 질문입니다. 위치에 따라 OO 원칙, SQL 디자인 원칙 등이 될 수 있습니다. 나는 테스트를 통해 질문의 어려움을 증가시켜 얼마나 멀리 갈 수 있는지 확인합니다. 아이디어는 실제로 모든 질문에 답변하는 것이 아니라 (만약 더 좋을 경우), 무언가를 알지 못할 때 인정할 수 있는지 확인하는 것입니다. 신뢰는 필수적이며 팀원에게 누군가 거짓말을하고 싶지 않습니다.

  • 응시자와 함께 시험에 응시 하고 답변에 대해 토론하십시오. 응시자의 한계에 도달 할 수있는 질문의 연장. 이것은 광범위 할 수 있으며, 광범위할수록 좋습니다.

  • 마지막 부분은 아니지만 코드 검토 . 응시자에게 코드 조각을 가져 오도록 요청합니다 (일반적으로 이전 테스트 / 토론과이 검토를 며칠 간격으로 작성하여 한 조각의 코드를 작성하고 연마하도록합니다). 그런 다음 두 사람과 정기적으로 코드를 검토합니다. 한 명은 응시자와 직접 협력 할 것이며 한 명은 응시자와 함께 시험을 검토 한 사람입니다. 코드 검토와 관련하여 JohnFX 에서이 기사 를 읽을 수 있습니다 .

이 모든 것이 끝나면이 후보자가 팀의 일부가되기를 원하는지 결정할 수 있어야합니다.


4
나는 코딩 질문과 지식 질문에 동의하며, 후보자들에게 코드를 가져 오라고 요구 한 적이 없다. 내 의견으로는, 사소한 것이 아닌 것을 보여주고, 더 큰 시스템에 대해 너무 많은 지식이 필요하지 않으며 다른 사람들에게 보여줄 수있는 실질적인 코드를 찾는 것은 쉽지 않습니다.
Andrea Zilio

코드 검토를 말하고 싶습니다. FizzBuzz는 너무 남용되었습니다. 그리고 사람들을 놀라게 할 수도 있습니다. 나는 건강 관리 및 금융 서비스의 프로그래머였으며, fizzbuzz와 같은 것은 쓸모가 없습니다. 훨씬 복잡한 상호 작용을 이해할 수 있어야합니다. 파이 게임의 FPS라도 코드 샘플을 요청하십시오. 코드 샘플이 없으면 코더가 아닙니다.
Christopher Mahan

1
@ChristopherMahan FizzBuzz의 가치 (그리고 간단한 코딩)는 단순한 게이트 키퍼입니다. 그들이 선택한 언어로 FizzBuzz를 구현할 수 없다면 어떤 코드를 작성할 수 있습니까?
Vatine

@Vatine FizzBuzz는 프로그래밍 기술이 아닌 논리적 추론 능력을 테스트합니다. 물론, 그것을 할 수 있어야합니다. 간단한 프로그래밍 질문은 다음과 같습니다. 화면에 흥미로운 방식으로 정렬 된 항목 목록을 표시합니다. 코드를 작성해야하지만 작성해야 할 무언가를 생각해 내고 두뇌 티저를 알아 내려고 시도하지 않아도됩니다. 나는 그들이 정규식을 사용하기를 원했기 때문에 한 번 인터뷰에 실패했으며 그 문제에 대해 정규식은 과잉이며 파이썬은 이것을 할 수있는 내장 기능을 가지고 있다고 대답했습니다. 나는 거기에서 일하고 싶지 않았다고 생각합니다.
Christopher Mahan

Code Review는 끔찍한 아이디어이며 JohnFX의 반박은 충분하지 않습니다. 나는 훌륭하지만 고용주의 독점 코드 기반 이외의 작업을하지 않는 많은 개발자를 알고 있습니다. 이들은 가족이있는 사람들과 직장 밖에서해야 할 일입니다. 그러나 그들이 일할 때, 그들은 매우 생산적입니다.
MrFox

20

그들에게 FizzBuzz 를 제공 하여 해결하십시오. 그것은 그들의 최악을 제거해야합니다.

그런 다음 약간 더 어려운 것-예를 들어 내장 라이브러리 함수없이 문자열을 뒤집는 방법. 그들의 생각 과정이 무엇인지 알기 위해 해결하는 동안 이야기하도록 요청하십시오.

그들이 이야기를하는 것이 아니라 걸을 수 있다고 확신 할 때까지, 그들이 매우 쉬운 것을 발견한다면 더 어려운 문제를 계속 겪을 수 있습니다.


1
인터뷰하는 프로그래머의 수준에 따라 달라질 수 있습니다. 하급 직원의 능력에 접근하는 것이 좋을 수도 있지만, 인터뷰에서 그러한 질문이 내가 일하고 싶은 회사가 아니라는 명백한 지표라고 생각합니다.
jfrankcarr

3
나는 말하는 부분에 동의하지 않습니다. 문제를 해결하면서 종종 자신이나 다른 사람들과 대화합니까? 사람에게 약간의 공간을주고 조금 생각하게하는 것은 어떻습니까? 따라서 사소한 것이 아니라면 좋은 습관이 아니라고 생각합니다.
Andrey Rubshtein

1
@Andrey-말하는 부분은 그들의 사고 과정에 대한 통찰력을 얻는 것입니다. 당신은 그들이 문제에 대해 어떻게 생각하고 문제를 해결하기를 원합니다. 더 나은 옵션이 있습니까?
Oded

5
@Oded, 그렇습니다. 그들이 어려운 문제인 경우, 실제 생활에서와 같이 한동안 혼자 생각하게 한 다음 원하는만큼 질문하십시오. 모든 구두 시험에서와 같이.
Andrey Rubshtein

4
최근에 CS 전문가를 인정한 몇몇 학교의 교환 원으로서 사소한 fizzbuzz가 훌륭한 필터라는 것을 알았습니다. 내가 졸업 한 대부분의 사람들은 아마 적당한 시간 안에 그것을 해결할 수 없었을 것이다. 그 사람들은 일자리를 구하기 위해 고군분투했거나 그렇지 않았습니다. 나는 joelonsoftware.com/articles/GuerrillaInterviewing3.html을 따르는 것이 좋다고 생각 합니다.
Rig

14

직업에 대한 열정을 찾으십시오.

사람을 찾습니다 조엘을 인용하자면 " 스마트하고 일을 끝낼. "

나머지는 중요하지 않습니다


7
문제는 그들이 똑똑한 지 수 없다는 것 입니다.

4
@ 차드 : 학습에 대한 열정은 "일을 끝내지"않습니다. 누군가가 일을 할 수 있는지 알아 내려면 무언가를하도록 요청해야합니다.
케빈 클라인

2
@ kevin cline, 내 게시물을 조정했습니다. 그들은 직업에 대한 열정이 필요합니다. 보통 배우기를 원함으로써 보여집니다. 그렇습니다. 몇 가지 질문이 있고 대화가 진행되어야하며 일련의 질문이어서는 안됩니다. 그러나 그들이 일을 끝내는지 알아 내려면, 장애물이있는 곳과 어떻게 극복했는지 예를 들어보십시오. 기술, 사람, 프로세스 등 모든 사람이 자신의 직무에서 장애물을 치지 만, 일을 끝내는 현명한 사람은 그것을 극복 할 수있는 방법을 찾고이를 충분히 설명 할 수있을 것입니다. 그들의 능력.
CaffGeek

3
내 경험에없는 @mouviciel. 내가 아는 가장 똑똑한 프로그래머 중 일부는 외향적입니다.

4
개발자 후보자와 함께 방에 앉아 똑똑하지 않은지 알아낼 수 있다면 가능한 사람을 찾으십시오.
JeffO

13

25 년간의 프로그래밍을 바탕으로 (다른 프로그래머를 고용하는 경우는 5-6 회만 포함됨) :

긍정적 인 지표 :

  • 기술에 대한 열정

  • 취미 프로그램

  • 권장되는 경우 기술 주제에 대해 귀를 기울일 것입니다.

  • 수년에 걸쳐 중요한 (그리고 종종 수많은) 개인 사이드 프로젝트

  • 스스로 새로운 기술을 배웁니다

  • 다양한 기술에 더 적합한 기술에 대한 의견

  • 그가“올바른”것으로 생각하지 않는 기술로 작업한다는 생각에 매우 불편하다

  • 분명히 똑똑하고 다양한 주제에 대해 대화를 나눌 수 있습니다

  • 대학 / 직장 오래 전에 프로그래밍 시작

  • CV 레이더 아래에 숨겨진“빙산”, 대규모 개인 프로젝트가 있습니다.

  • 다양한 관련없는 기술에 대한 지식 (CV에 없을 수 있음)

부정적인 지표 :

  • 프로그래밍은 하루 일입니다

  • 장려 할 때조차도“상점”을하고 싶지 않습니다.

  • 회사가 후원하는 과정에서 새로운 기술을 배웁니다

  • 선택한 모든 기술로 "행복한 기술은 훌륭합니다"

  • 너무 똑똑해 보이지 않아

  • 대학에서 프로그래밍 시작

  • 모든 프로그래밍 경험은 이력서에 있습니다

  • 외부 경험이없는 하나 또는 두 개의 기술 스택 (예 : 자바 애플리케이션 개발과 관련된 모든 것)에 중점을 둡니다.

또한 다음과 같이 제안합니다.

  • FizzBuzz의 시험 (또는 같은 뭔가 알고리즘을 작성하는 기본 능력을 테스트합니다.
  • 더 어려운 버전의 FizzBuzz 테스트 (실패 또는 거의 실패 지점으로 이동)
  • 코드를 토의하고 자기 비판적으로 기꺼이 할 수 있는지 확인하고 다음과 같은 개선 사항을 찾으십시오.
    • 좋은 변수 이름 (숙련 된 숙련 된 코더는 "플래그"(WTF ??)와 같은 프로덕션 환경에서 변수를 사용합니다)
    • 모듈화.
    • 문제 예측 및 "방어 적 코딩"수행
  • "결함"을 개선의 기회로보고자하는 의지. 최고의 코더는 항상 이전 코드의 결함을 끊임없이보고 있다고 생각합니다. 그들은 결점을 찾는 것이 개인적인 모욕이라고 생각할만큼 자기 중심적이지 않다. 그들은 그것을 더 잘할 수있는 기회로 본다. (결함없이 결함을 볼 수없는 사람들은 결함을보고 압도 당한다 (그리고 불신이되거나,이를 피하기 위해, 그들은 결함을 무시한다).
  • 그들은 디버깅 할 수 있습니까?
  • 그들은 단위 테스트를 할 수 있습니까? (저는 "QC가 그렇게한다"고 말하는 너무 많은 프로그래머들과 이야기를 나.습니다. 나는 테스팅에 대해 이야기하지 않고 테스팅에 대해 이야기하고 있습니다. 함수를 작성하고 작동합니까? 문제가있을 수 있습니다 (NULL 입력 등)? 그렇게 할 수 없다면, 언제 완료했는지 어떻게 알 수 있습니까?
  • 그들은 좋은 의사 소통 능력을 가지고 있습니까? (최소한 : 이해하고 이해하지 못하는시기에 대한 이해력과 자기 지식과 "이해할 수 없습니다. 다시 설명해주십시오"라는 의지가 있습니다.

위의 요약 중 많은 부분이 훌륭한 기사 인 좋은 프로그래머를 발견하는 방법 에서 얻을 수 있는데, 이는 장거리 지표에 좀 더 초점을 맞췄습니다. 내 직관과 경험을 확실히 확인합니다. 또한 "좋은 프로그래머는 무엇인가"의 체크리스트에서 일반적으로 언급되지 않은 많은 것들 (예 : "열정")입니다.


10

프로그래밍 인텔리전스 평가는 Turing Test의 한 형태입니다. 따라서 작동이 보장되는 폐쇄 형 평가 절차는 현재 없다. 지능적인 프로그래머는 다른 지능적인 프로그래머를 인식해야하지만 합리적인 확률로만 가능합니다.

팀원들에게 눈 일 냄새를 맡을 수 있고 어리석은 사람들과 일하는 것을 본능적으로 싫어하는 사람들이있을 경우, 기회가 더 좋아질 것입니다. .

(스택 오버플로의 품질을 부작용으로 만드는 데 도움이되는 한 가지 방법은 작업 요구 사항과 어떤 방식 으로든 오래된 스택 오버플로 질문을 파헤치는 것이지만 귀하의 의견으로는 열등한 답변이 있습니다. 좋은 답변이라면 게시하도록하세요 (군중 소싱 OCR에 대한 요약과 비슷합니다).


7

그들에게 문제를, 바람직하게는 그들이 작업 할 문제 영역과 관련된 문제를주고, 그들이 어떻게 접근 할 것인지 토론하도록 요청하십시오. 자신의 기술 수준에 얼마나 자신감이 있는지에 따라 토론, 의사 코드 또는 실제 코드의 비트를 작성하도록 할 수 있습니다.

예를 들어, 조직에서 전화 회의를 한 경우 안전한 온라인 등록 시스템을 코딩하는 방법을 설명하도록 요청하십시오. 그들은 몇 가지 기본 사항을 다루고 정확히 구현해야하는 것에 대해 좋은 질문을 할 수 있어야합니다. 상호 작용할 때 조직에 적합한 지 여부와 필요한 역할을 결정할 수 있어야합니다.

나는 퀴즈 테스트와 두뇌 티저를 프로그래밍하는 팬이 아니다. 그들은 어떤 사람들에게는 재미있을 수 있지만, 팀에 가장 적합한 사람들을 포함하여 다른 사람들을 성가 시게하거나 스트레스를 줄 수도 있습니다. 또한, 그러한 많은 시험에 대한 정보는 온라인에서 쉽게 구할 수 있으며 프로그래머 능력을 측정하기 위해 생존 능력을 둔화시키는 시험 및 기타 전술에 대한 충격을 유발할 것입니다.


후보자 선정을위한 퀴즈 / 뇌 테스트의 단점에 대해 동의합니다. 문제는 모든 후보자와 코드를 검토 / 토론하는 데 너무 많은 시간이 소요된다는 것입니다. 그리고 아마도 결과는 더 작은 것입니다. 내가 찾고있는 것이 아니라 개인 감독이 덜 필요한 것을 선호합니다. 그리고 나중에 내가 더 적합한 후보자를 가질 때 이야기 / 토론 / 인터뷰
Rafael

3
너무 시간이 걸리나요? 누군가 후보자와 대화해야 할 것입니다. 필기 시험은 효과가 없습니다. 시험 내용은 빨리 대중의 지식이되고 응시자들은 암기 된 답변으로 도착합니다.
케빈 클라인

10
@ kevincline : 정확히, 당신은 그들과 이야기해야합니다. 제록스 (70 년대로 돌아가서)에서 인터뷰를하고 있었고 해싱 알고리즘에서 충돌을 어떻게 처리 할 것인지 물었습니다. 나는 프로그래밍에 대한 공식적인 학교 교육은 없었지만 당시 약 5 년 동안 해왔으므로 해시가 무엇인지 모른다고 말했다. 면접관이 나에게 그것을 설명하고 질문을 다시했다. 몇 가지 유형의 충돌 문제를 발견하고 해결하면서 한 시간 이상 계속했습니다. 그는 내가 한 시간 안에 그렇게 할 수 있다면 그들이 내게 던진 것을 다룰 수 있다고 말했습니다. 나는 직업을 얻었다. 그가 나에게 이야기 했기 때문에 .
피터 로웰

@PeterRowell 그것이 필요한 방법입니다. +1
Chiron

3

이 질문과 그 답변을 읽으면 관심이있을만한 기사를 쓰게되었습니다.

소프트웨어 개발자 채용시 이상한 채용 관행

좋아, 기사 제목은 쓰레기이지만 기사는 문제의 핵심입니다. 그들이 당신이 생각하는 역할에 대해 부적절 할지라도 인터뷰를하기로 선택한 것은 후보의 문제가 아닙니다. 거친 곳에서 보석을 찾을 수 있도록 잘 인수 된 고용 절차를 정의하지 못했다면 결과에 따라 살아야 할 것입니다. 그렇습니다. 기대에 부응하지 마십시오. 서신 및 이력서를 기준으로 후보자를 필터링하려면 먼저 지원자에게 자신과 자신이 원하는 역할에 대한 서한을 작성하고 이력서 작성 방법을 확인해야합니다. 인터뷰 대상 후보가 한두 명 뿐인 경우 사전 심사를 올바르게 수행 한 것입니다.

실제로 자신의 시간에 가치가 있다고 생각되는 1 ~ 2 명의 후보자를 찾으면, 몇 가지 잘못된 테스터 질문을하는 것이 아니라, 이러한 사람들을 알게되고 소프트웨어에 대한 공개 토론에 참여하는 데 시간을 투자하십시오 일반적으로 공학. 전통적인 인터뷰 상황에서는 그 어느 때보 다 후보자에 대한 일반적인 접근 방식을 통해 더 많은 것을 배울 수 있습니다. 또한 한 번의 인터뷰로 마무리하지 말고 주요 후보자를 공개 토론이 사용되는 여러 회의 및 후보자가 잠재 동료와 만나는 곳에서 대우하십시오. 부적절한 기술 지원자들은 고도의 기술 토론에서 잘 번창하지 못하고 경비를 떨어 뜨릴 때 그 결함을 매우 빨리 보여줄 것이므로 시간이 낭비되지 않습니다.


좋은 지적입니다. 그러나 나는 너무 많은 인터뷰에주의해야한다. 응시자와 귀하의 시간은 모두 가치가 있습니다 (특히 응시자가 현재 다른 곳에 고용 된 경우). 내 경험상 점점 더 많은 인터뷰에서 수익이 감소하고 있으므로 한두 번의 인터뷰로 제한합니다. (추가) 전화 인터뷰도 타협 할 수 있습니다.
sleske

1
@sleske, 나는 특히 같은 사람들이 모든 인터뷰에 참석하는 경우 교장에 동의합니다. 따라서 회사와 팀 모두에게 가장 적합한 것을 찾아야하는 부담을 공유하고 다른 사람들의 관찰을 통해 배울 수있는 기회를 제공하는 것이 좋습니다. 나쁜 인터뷰는 더 이상 진행되지 않지만 후보자에 관심이있는 이해 관계자가 더 많은 인터뷰를 필요로 할 수 있으므로 매우 광범위한 팀에서 3-4 회의 인터뷰를하는 것은 드문 일이 아닙니다. 그러나 너무 많은 사람들은 몹시 무질서한 인상을 줄 것입니다. 또한 응시자에게 사전 인터뷰 횟수를 알려주기 위해 비용을 지불합니다.
S.Robins

@ s-robins 흥미로운 의견은 내 질문의 일부 측면에 대해서만 설명하고 싶습니다. 우리가 통제 할 수없는 사유로 인해 정상적인 채용 프로세스를 기반으로 후보자를 선발 할 수 없으며, 대신 후보자가 와서 직무를 수행하기 위해 올바른 기술 / 지식을 보유하고 있는지 말해야합니다. 정상적인 채용 과정에서 이러한 일이 너무 자주 일어나지 않을 수도 있습니다. 그러나 우리 입장에서는이 상황을 처리해야합니다.
Rafael

@Rafael, 귀하가 의견을 정확하게 이해한다면, 귀하는 "다른 곳에서"후보들을 평가 받게되며, 후보자에 대한 사전 지식없이 후보자에 대한 객관적인 평가를하는 것이 어렵다는 것을 의미합니다. 이것은 당신이 일하는 조직 내에서 체계적인 문제처럼 들립니다. 후보자를 보내려는 사람들과 만나서 면담하기 전에 부적합한 후보자를 걸러 낼 수있는 시스템을 고안하는 것이 좋습니다. 아마도 더 공식적인 신청 프로세스를 구현하도록 요청할 수도 있습니다.
S.Robins

@ s-robins 당신은 잘 이해했습니다 ...
Rafael

1

당신은 어느 언어에 대해 말하지 않았지만, 누군가의 지식을 테스트하는 것은 상당히 쉽습니다. 그것은 당신이 찾고있는 수준에 달려 있지만 인터뷰 질문과 관련하여 상당히 많은 질문이 있습니다.

그러나 당신은 당신의 인터뷰를 개최하기로 결정, "측면 생각 퍼즐"면접 질문을하지 마십시오 .


2
아마 나는 우리가 개발하기 위해 사용하고있는 언어를 명시하지 않았다. 왜냐하면 우리는 훌륭한 프로그래머 (그 / 그녀의 respestive capacitation 과정을 가지고있다)는 그것의 sintax와 무관하게 어떤 언어로도 프로그래밍하는 법을 배울 수 있다고 믿기 때문이다.
Rafael

2
@Rafael norvig.com/21-days.html . 내가 말했듯이, 그것은 주니어 프로그래머 또는 상급자를 찾고 있는지 여부에 달려 있습니다.
BЈовић

나는 대부분의 후보에 대해 이야기하고 있기 때문에 새로 졸업생입니다. 저는 주니어 프로그래머를 언급하고 있지만 제 질문은 제 개인 채용 프로세스에 관한보다 광범위한 맥락에서 진행됩니다
Rafael

@Rafael이 경우에는 주니어에게 너무 많은 것을 기대하고 있습니다. 프로그래밍 언어를 마스터하는 데 걸리는 시간을 알려주는 위의 의견에 게시 한 기사를 읽으십시오.
BЈовић

나는 특정 프로그래밍 언어를 마스터하는 것에 대해 이야기하고 있지 않다. 나는 최고의 일반 프로그래밍 기술 세트를 가진 최고의 사람을 얻는 것에 대해 이야기하고있다. (왜 언어를 지정하지 않는지) 나는 모든 사람을 기대할 수 없다. 그것은 우리가 프로그래밍하고있는 언어의 후보 마스터로서옵니다. 그래서 사람들이 언어를 모른다면 커패시턴스 과정을 이수해야합니다.
Rafael

1

FizzBuzz 관련 질문에 답하고 첫 번째 질문을 고용하는 것이 좋습니다. 모든 훌륭한 프로그래머가 당신과 같은 문제에 접근하거나 말을 끊지 않고 인터뷰를 처리하거나 세 번째 변수없이 정수를 교환하는 것과 같이 원하거나 관심있는 언어 또는 어리 석음을 알지 못하기 때문에 추가 테스트에 결함이 있습니다 (어쨌든 누가 필요합니까? I RAM이 128 바이트를 초과했기 때문에 평균?).

생각 해봐 FizzBuzz 질문이 200 개 중 199 개를 제거하면 수백 건의 인터뷰가 사라졌습니다. 실제로 수백 명의 잠재 고객과 인터뷰를 했습니까?

FizzBuzz 이후 수익이 감소하는 것처럼 보입니다. 그것은 199/200이 거의 비슷하다고 가정합니다. 그리고 나는 당신의 시간도 귀중하다고 생각합니다 ...


2
FizzBuzz가 프로그래머의 역량을 평가하기위한 표준 테스트가 얼마나 무서운지. 그러나 이것은 시도되고 진정한 시험입니다
-CS

0

이것이 의견인지 대답인지 확실하지 않지만 기본적으로 Matthieu가 말한 것입니다. 1 ~ 2 분 (5 분 이하) 걸리는 어리 석고 쉬운 질문을 원하고 다른 영역에 대해 질문해야합니다.

바보 같은 쉬운 질문의 예는 목록이있는 것처럼 재귀에 관한 질문이며 루프를 사용하지 않고 역순으로 인쇄해야합니다. 정규식이 일반적으로 개발에서 수행되는 경우 간단한 정규식 질문입니다. C ++를 사용하는 경우 비트 및 바이트에 대한 질문 (char을 long으로 받아들이고 이진 표현을 인쇄하는 템플릿을 작성하십시오. 전문화는 필요하지 않습니다. 비트 길이를 알아 내려면 sizeof ()를 사용하십시오)

질문 당 <= 3 분 소요됩니다.


0

그들이 해결하려했지만 시도 할 수 없었던 가장 흥미로운 프로그래밍 과제, 해결하는 동안 어떤 접근법을 사용했는지, 해결할 수없는 이유 및 해결할 수있는 다른 접근법에 대해 물어보십시오.

이것은 프로그래머의 능력을 프로그래머로 판단하기에 충분합니다.


0
  1. 그들이 알고 있다고 주장하는 것을 방어 할 수 있습니까? 그들은 기술이나 다른 프로젝트에서 한 일로 이력서 / 이력서에 넣었습니다. 그들이 주제에 대해 어떻게 심도있게 다룰 수 있는지보십시오.
  2. 그들은 새로운 것을 배울 수 있습니까? 사용중인 기술 또는 업무상 비즈니스 전문가와 관련된 특정 주제에 대해 이야기하고 이들이 주제를 파악할 수 있는지 확인하십시오. 그들은 지적 질문을합니까? 그들은 비유를 생각해 낼 수 있습니까? 다른 산업이나 기술에서 수행 한 것과 유사합니까?

  3. 오히려 프로그래밍을 원하십니까? 목록에서 1 위일 필요는 없지만 코드 작성을 선호해야합니다. 그리고 실제로 코드를 작성하고 무언가를 만들어서 주위에 앉아서 말하거나 보드에 하루 종일 그림을 그리는 것을 의미합니다. 계획을 최소화하거나 카우보이 코딩을 장려하지는 않지만 결국에는 코드를 가져야합니다. 키보드를 피하는 사람들을 피하십시오. 이것은 관리 위치가 아닙니다.

1에서 10까지의 점수로 점수를 매기거나 자신의 냄새를 맡을 수 있습니다.


0

그것이 당신이 더 나아질 것이라고 느끼면 거의 모든 나라에 프로그래머가 존재합니다. 그들을 제거하는 방법은 문제입니다.

첫 번째 잡초는 이력서입니다. 내가 찾은 것 중 하나는 주장 된 언어 경험이 많으며 그 언어에서 그들이 한 일을 설명 할 수 없다는 것입니다. 나는 이력서를 보아 그들이 발명 한 모든 언어를 알고 있다고 주장하지만 그들의 경험은 실제로 Access와 Visual Basic에서만 일한 것으로 나타났습니다. 그들은 쓰레기통에 바로 들어갑니다. 10 페이지의 이력서가 휴지통에 들어갑니다 (특히 2 년 미만의 경험이있는 사람들의 경우 10 페이지의 이력서). 경험이 거의없는 최근의 대학 졸업생들로부터 그들이 어떻게 자신을 발표하는지에 대해 까다로워 야합니다. 최고의 후보자는 이력서에주의를 기울이고 오류는 없습니다. 이력서를 교정하는 데 귀찮게하지 않은 사람은 거의 없습니까?

전문적으로 준비된 이력서는 쓰레기통에도 들어갑니다. 수백 개의 이력서를 읽은 후에는 정확히 동일한 문구를 사용하여 이력서를 선택할 수 있습니다. 전문적으로 준비된 이력서에서 내용을 신뢰할 수 없으며 그 사람이 자신의 준비를하지 않았다는 것을 알고 있습니다. 이것은 자신의 문제를 해결하기 위해 다른 사람들에게 의지하는 사람입니다. 당신은 정말로 프로그래밍 위치에서 그것을 원합니까?

당신이 선택한 것을 눈에 띄게 만드는 것들을 찾으십시오. 물론 학교 밖에서는 어렵지만 업적, 오픈 소스에 대한 기여 등을 찾으십시오.

다음 잡초는 전화 인터뷰입니다. 실제 업무와 관련된 기본 개념에 대해 문의하십시오. 사람들에게 필요한 개념에 대한 기본 지식이 없다면 개인 인터뷰에 참여할 필요가 없습니다. 젊음은 종종 인터넷에서 모든 것을 볼 수를 변경할 수 없기이 불공평하다고 생각하지만, 사실은 내가 조회 한 좋은 프로그래머 만난 적이 있습니다 모든 것을 인터넷을. 매번 찾아 보지 않아도되는 직업에 대한 지식이 있어야합니다.

전화 인터뷰 후 최고의 4-5 후보자와 인터뷰를 선택해야합니다. 물론 1-2 명의 좋은 후보자 만 있다면 이미 제거한 사람들과의 인터뷰를 귀찮게하지 마십시오. 이제 어려운 질문을하고 그들이 어떻게 문제에 접근하는지 느끼게 될 것입니다. 나는 fizzbuzz 테스트를 너무 잘 알고 있기 때문에 절대로 사용하지 않을 것입니다. 대신 자신의 코드 기반에서 일부 문제를 구성하십시오. 나는 그들에게 요구 사항과 코드를 줄 수 있고 코드가 요구 사항을 충족시키는 지 여부와 그렇지 않은 이유 및 요구 사항을 충족시킬 수있는 방법을 물어볼 수 있습니다. 나는 그들이 해결해야 할 가장 어려운 프로그래밍 문제와 답을 찾기 위해 어떤 조치를 취했는지 설명하도록 요청했다. 좀 더 심층적 인 기술적 질문을하겠습니다. 기술 역량, 문제 해결 및 디버깅 능력 및 기존 팀에 적합한 능력에 대한 느낌을 얻으려고 노력한다는 것을 기억하십시오. 나는 또한 그들이 스트레스를 얼마나 잘 다루는 지 판단하기위한 답을 모른다고하는 질문을합니다. 스트레스가 많은 직업입니다. 직장 스트레스가 인터뷰 스트레스보다 크기 때문에 인터뷰에서 접는 사람을 원하지 않습니다 . 현재 우리가 취약한 분야에서 강점을 찾고 있으며 팀에서 일하고 고객에게 자신을 소개 할 수있는 능력을 찾고 있습니다. 직장의 스트레스가 인터뷰 스트레스보다 크기 때문에 인터뷰에서 접는 사람을 원하지 않습니다. 현재 우리가 취약한 분야에서 강점을 찾고 있으며 팀에서 일하고 고객에게 자신을 소개 할 수있는 능력을 찾고 있습니다. 직장의 스트레스가 인터뷰 스트레스보다 크기 때문에 인터뷰에서 접는 사람을 원하지 않습니다. 현재 우리가 취약한 분야에서 강점을 찾고 있으며 팀에서 일하고 고객에게 자신을 소개 할 수있는 능력을 찾고 있습니다.


-1

응시자는 기술을 자유롭게 사용할 수 있도록 해결해야하는 실제 문제가 있어야합니다.

그녀가 날고있는 색으로 나오면, 그녀는 안에 있습니다!

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