“최고만을 고용”하는 것이 일반적인 데스크탑 응용 프로그램 프로그래밍에 대한 실질적인 조언입니까? [닫은]


61

배경을 위해 우리는 etabs 와 비슷한 UI와 같은 AutoCAD를 사용하여 데스크탑 엔지니어링 응용 프로그램을 수행하고 있습니다.

정말 나를 괴롭히는 것 중 하나는 최고의 개발자를 고용해야 하는가? 우선, 채용에 큰 어려움을 겪고 있습니다. 우리가보고있는 대부분의 이력서는 간단한 CRUD 앱 또는 많은 하드 코어 프로그래밍과 관련이 없다고 생각되는 SharePoint 사용자 지정을 수행하고 있습니다. 우리가 인터뷰를 요구하는 사람들조차도 피보나치 시퀀스와 간단한 이진 검색을 할 수 없으며, 후보자가 확인할 사전을 찾을 필요가 없도록 힌트를 제공 하고 문제를 명시 적으로 철자 할만 큼 충분히 감사합니다. "피보나치 수열"은 무엇을 의미합니까?

예, 우리는 계산 기하학 / 선형 프로그래밍 작업을 수행 할 때 일정 수준의 프로그래밍 적성이 필요하며 소프트웨어 아키텍처를 설계하거나 사용할 소프트웨어 패턴을 결정할 때 일정 수준의 프로그래밍 적성이 필요하지만 그 이상 , 우리의 코드 중 상당수는 배관 코드 일뿐입니다. 프로그래밍에 익숙한 사람이 수행 할 수 있습니다.

우리는 지금 프로그래밍 재능이 필요하고 슈퍼 스타 개발자를 고용하는 것이 매우 어렵다는 것을 감안할 때, Joel이 설교 하는 것과 직접 모순되어 표준을 낮추고 그저 그렇게 고용 한 사람들 만 고용하고 싶습니다 .

어떻게 생각해?

편집 : 전체 계산 기하학 / 선형 프로그래밍 라이브러리를 다시 작성할 필요가 없습니다. 내 응용 프로그램과 관련하여 필요한 모든 문제는 적절한 계산 기하학 / 선형 프로그래밍 용어로 캐스트하는 방법을 알고 기존 라이브러리를 사용하는시기 / 방법을 알아야합니다. 따라서 그렇게 어렵지는 않습니다.


53
표준 답변 : 아마도 당신은 너무 낮은 급여를 제공하고 더 나은 개발자는 당신을 위해 일하고 싶지 않다? 어쨌든, 이진 검색을 할 수없는 사람들에게 문제가 있다면, 수퍼 스타가 부족한 문제가 아니라 일반적인 분쇄기 코더가 할 수 있어야합니다.
quant_dev

15
제목 대문자를 사용하면 PANDA로 읽을 수 있습니다.
cthom06

13
그들은 피보나치 시퀀스를 쓸 수 없습니까? 결코 어렵지 않습니다 ...이 사람들은 실제로 프로그래머가 될 수 없습니다.
벤 B.

6
Graviton, 그것은 모두 월급에 이릅니다. (예를 들어) 연봉으로 3 배의 시장 가치를 제공했다면 사람들이 당신을 위해 일하기 위해 기꺼이 직장을 떠날 것입니다. 나는 당신이 그에게 많은 것을 제안한다고 제안하지는 않지만 요점을 설명합니다. 좋은 이력서를 원하면 지불해야합니다.
riwalk

7
@ user1525 그저 사소한 것이기 때문에 개발자는 일반적으로 그것을 구현하는 데 문제가 없어야합니다 (재귀 또는 재귀 없음)
Darknight

답변:


110

나는 당신이 Joel을 너무 많이 읽지 말 것을 권한다. 그가 자신의 블로그에 작성한 내용은이 사이트에 대한 그의 답변과 모순되므로 실제로 그의 말을 많이 듣지 않을 것입니다.

슈퍼 스타를 만드는 이유와 그 이유는 길고 아무데도없는 토론을 열어야하는 이유입니다. 엘리트주의이며 실용적이지 않습니다.

당신이 필요한 것은 :

  1. 하고있는 일을하고 싶어요
  2. 열정적 인 열정적 프로그래머
  3. 일을 올바르게하는 데 필요한 것을 배울 수있는 잠재력이있을 것

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

CS- 강력한 프로젝트에 참여하고 CRUD 응용 프로그램을 코딩하는 것을 보지 않는 다른 젊은 졸업생이 몇 명인지는 믿지 않을 것입니다. 얼마 전 나는 그들 중 하나였으며 컴파일러 개발과 관련된 프로젝트에 참여하는 것을 실제로 꿈꾸었지만 찾을 수 없었습니다. 왜 그들에게 기회를주지 않습니까?

나는 AutoCAD가 수퍼맨에 의해 작성된 것이라고 생각하지 않습니다. 성공적인 프로젝트의 대부분은 단순히 일을 끝내고 싶었던 사람들에 의해 이루어졌습니다.


대부분의 이력서는 간단한 CRUD 앱 또는 SharePoint 사용자 지정을 수행하고 있습니다.

대부분의 직무에 필요한 경우 무엇을 기대해야합니까? 사람들은 유니에서 CS를 공부했을 수도 있고 실제로 잘했을 수도 있지만 10 년 동안 실제 프로그래밍에서 사용하지 않았다면 기억하지 못할 것입니다. 분명히이 지식이 어디에도 사용되지 않으면 아무도 신선도를 유지하기 위해 매년 오래된 CS 책을 읽지 않을 것입니다.


11
놀라운 답변!

33
예,하지만 단서가없는 열정적 인 열정적 인 사람들과 함께 일했습니다. 그것들은 죽은 무게이며 조직에서 원하지 않습니다. 멍청한 덤불을 제거하기위한 몇 가지 기본 적성 검사는 아주 좋은 일입니다.
quick_now

3
마지막 단락은 티에게 나를 설명합니다.
ozz

20
전혀 쓸모없고 오류가 눈에 띄게 많은 "적성 검사"를 보았습니다 (오류를 찾아서 지적 할 때 테스트를 실패하게 한 것은 개발자로서 우리 업무의 일부입니다).
jwenting

2
@Developer Art, 아마도 당신에게 행운이 있었습니까? 면접 질문의 잘못을 그들에게 납득시킬 수 없었다면, 직업에 어떤 문제가 생길지 상상해보십시오.
마크 랜섬

41

내가 정말 좋아하는 책은 먼저 모든 규칙을 어기 는 것입니다 . 일반 관리자와 우수한 관리자의 차이점에 대한 많은 정보가 있습니다. 좋은 관리자가 반복해서 말한 주요 통찰력 중 하나는 문장에서 그들 중 하나에 의해 요약되었습니다. 나는 올바른 고용을 찾기 위해 너무 오래 기다리지 않았으며, 잘못된 고용을 충분히 빨리 해고하지 않았습니다. 예, 고용하는 데 오랜 시간이 걸리지 만 시간이 걸릴 가치가 있습니다.

명심해야 할 두 번째 사항은 프로젝트 처리량을 측정 할 때 5-8 명으로 구성된 팀의 생산성 피크가 있다는 것입니다. 20 명 이상의 팀이있을 때까지 동일한 생산성으로 돌아올 수 없습니다. 소규모 팀 역학이 작동하는 규모 이상의 팀을 성장시키는 데 매우 신중해야합니다. 그리고 만약 당신이 그 임계 값 이하로 유지한다면, 당신은 정말로 5-8 명의 사람들이 좋기를 원합니다.

두 가지 점 모두 올바른 고용을 유지하기 위해 강력하게 말합니다.


2
인용문 +1 지난 몇 년 동안 내가 깨달은 것을 완벽하게 반영합니다.
Kris

게다가, 5-8 피크 흥미로운 것은 당신이 십명을 얻을 마자, 당신은 단지 물론, 작업 요구가 너무 분할 할 수 :) 분할 할 수 있다는 것입니다 바람직 무작위로 ...
매튜 M.

@ mattieu-m : 많은 사람들이 그 이론을 가지고 있습니다. 두 그룹이 실제로 상호 작용을 많이해야하는 경우에는 효과가 없습니다. 그들이 정말로 별개의 우려를 줄 수 있다면, 그것은 잘 작동합니다.
btilly

26

모두가 "최상위 1 백분위 수만 고용"한다고 주장합니다. 그것이 사실이라면, 고용 된 사람들의 100 %가 모든 사람들의 "최상위 1 백분위 수"에있을 것이기 때문에, 모든 사람들의 99 %가 (어느 특정 분야에서든) 실직 할 것입니다. 이것이 사실이 아니기 때문에, 우리는 모두 그 그룹에 속하지 않은 경험 많은 사람들이 있습니다 (왜 다른 질문을합니까?). 이것이 사실이 아니라는 것을 우리는 알고 있습니다.

실제로 그러한 사람들로만 구성된 조직은 매우 불안정합니다. 자아가 너무 많고, 상충되는 아이디어가 너무 많습니다. 모든 사람이 자신의 일을하면서 무너 지거나, 모든 것의 상대적인 장점에 대한 이론적 토론을 끝내지 않거나, 결정을 내릴 때마다 정서가 타 오르면서 끊임없는 소리로 진화합니다.


13
문제는 신청자 중 상위 1 % 만 채용한다고해서 개발자의 상위 1 %를 고용한다는 의미 는 아닙니다 . 8 ') * 슈퍼 히어로 가가는 한, 그들은 팀의 나머지 팀에게는 문제로 여겨지는 빈도이다. 한 사람이 200 %에서 일하지만 5 명을 50 %로 줄이는 것은 순이익이 아닙니다.
Mark Booth

2
+1 : 통계적으로 대부분의 사람들은 평균의 몇 퍼센트 포인트 내에 있습니다. 그것을 이해하지 못하는 사람은 꿈의 세계에 살고 있습니다. 그리고 당신은 절대적으로 맞습니다 : 평균에서 너무 멀리 떨어져있는 사람들은 능력이 평균 보다 높 거나 낮 더라도 파괴적 입니다.
Satanicpuppy

5
@Satanicpuppy : 통계적으로, 사람들의 3 분의 2에 대한 정규 분포가 평균에서 1 표준 편차 내에 있고 98 %와 같은 것이 2 표준 편차 내에 있습니다. 이것은 표준 편차가 무엇인지 또는 실제로 임의의 분포가 정상인지에 대해서는 아무 것도 말하지 않습니다. 프로그래머들 사이의 프로그래밍 능력은 확실히 왜곡되어 있으며 정규 분포의 올바른 꼬리 일 수도 있습니다.
David Thornley

11
주된 이유는 이유 중 프로그래밍 재능 프로그래머는 왜곡 될 수 및 / 또는 프로그래밍 재능 경우 정규 분포의 오른쪽 꼬리가 될 것이다 인간이 정규 분포되었다. 프로그래머가되는 인간의 하위 표본은 그 분포의 편향된 표본입니다. 즉, 프로그래밍에 능숙하거나 더 나쁜 사람들은 프로그래머가되는 경우가 거의 없습니다. 이로 인해 "평균"프로그래머가 일반 인구에 비해 평균 재능을 초과 할 수 있으며, 프로그래머 분포 재능이 정규 분포의 오른쪽 꼬리처럼 보일 수도 있습니다.
Michael McGowan

2
@david : "아무도 평균보다 훨씬 낮은 사람은 없습니까?" 네가 일하는 곳에서 일했으면 좋겠다.
Satanicpuppy

25

가장 먼저 물어봐야 할 것은 원하는 기준에 맞지 않는 이력서를받는 이유입니다. 나는 많은 훌륭한 사람들과 함께 일했기 때문에 거기에 있었고 응용 프로그램은 나에게 매우 흥미롭게 들립니다. 피보나치 시퀀스와 이진 검색을 수행 할 수있는 사람들을 찾을 수 없다면 (이것보다 더 어렵습니다. 크 누스에 따르면 첫 번째 출판물과 첫 번째 올바른 출판물 사이에 몇 년이 걸렸습니다), 좋은 사람들이 떨어져 있습니다.

지불하고자하는 것보다 더 많은 기술을 요구하고 있습니까? 잘못된 장소에 광고하고 있습니까? 당신의 회사는 위치 나 명성에 의해 매력적이지 않습니까? 이것이 첫 번째이자 가장 기본적인 문제이며 긴급하게 해결해야 할 문제입니다. 당신과 당신의 동료들은 의심 할 여지없이 당신을 위해 일하지 않는 좋은 사람들을 알고 있습니다. 그들에게 당신이 가진 것을 보여주고 유혹을받을 것인지 아닌지 물어보십시오. 원치 않는 문제를 이해하기에는 너무 가까이있을 수 있습니다.

그들이 적용되는 최고이기 때문에 사람들을 고용하지 마십시오. 그들이 원하는 것을 할 수 있기 때문에 사람들을 고용하십시오. 그게 다 적용되기 때문에 평범한 사람을 고용하면 천천히 좋은 사람들을 잃을 것이고, 대수학이 흔들리는 사람들과 함께 계산 기하학로 일을하려고 노력할 것입니다. (평범한 프로그래머 몇 명을 고용하기 때문에 평범한 직원을 고용하는 것도 좋은 일이지만, 필요한 곳에 양질의 직원을 고용 할 수 있어야합니다.)


7
HR 부서는 소프트웨어 후보를 선별하는 데 무능합니다. 요구 사항 : 커피 스크립트 10 년, 프로그래밍 40 년 PHP, 교육 : BS / BA
시크릿

1
@ user1525 : HR 무능력 일 가능성이 매우 높지만 중요한 점은 이유와 방법을 수정하는 방법 (또는 수정이 불가능하다는 것을 발견하는 것)이므로 배를 뛸 시간이 분명합니다. 나는 결론에 뛰어 들지 않을 것이다. 당신의 대답은 또 다른 접근법을 제안합니다. 좋은 사람들에게 이력서를 제출하고 HR이 무엇을하는지보십시오.
David Thornley

18

"피보나치 시퀀스와 간단한 이진 검색을 수행 할 수 없습니다"

당신의 기준은 확실히 틀 렸습니다. 내 그룹에서 우리는 모두 물리학 자 또는 엔지니어입니다. 나는 우리가 CS 과정에 참석하지 않았기 때문에 아무도 이진 검색을 할 수 없을 것이라고 내기를 보았습니다. 실제로 우리는 라이브러리를 사용합니다. 나는 심지어 binsearch를 직접 쓰는 사람이 중요한 것에 집중하는 방법을 모른다고 말합니다.

후보자가 똑똑하고 그룹에 적합하다면 훨씬 더 중요합니다. 그의 프로그래밍 재능을 확인하려면 집에서 할 일을 시키십시오. 시간이 얼마나 걸 렸는지 확인하고 그 결과가 후보자가 진짜 일인지 알아 내기 위해 결과를 논의하십시오.


3
신청자가 이진 검색을 정확하게받을 것으로 기대할 수는 없지만, 신청자에게 힌트를 줄 수 있다면 친해져야합니다. IMO, 사람들이 백과 사전을 가지고있는 것보다 사람들이 제시 한 문제를 어떻게 해결하려고하는지 보는 것이 더 흥미 롭습니다.
dpk

11
나는 훈련에 의해 물리학 자이고 눈가리개를 한 손으로 등 뒤로 묶어 이진 검색을 할 수 있습니다. 죄송하지만 간단한 이진 검색 구현을 작성하는 방법을 모릅니다. 그것을 설명 할 다른 단어는없고 단지 가난합니다.
quant_dev

네, 맞아요. 적어도 기본 아이디어 인 이진 검색은 실제로 수행 될 수 있습니다. 나도 할 수있어
마이클

... 적어도 기본 아이디어 (필자는 그것이 무엇인지 먼저 찾지 않고서는 피보나치를 할 수는 없지만). 그러나 이와 같은 시험은 방금 CS 수업에 참석하거나 실수로 질문을 준비한 사람들에게 유리합니다. 응시자에게 실제 프로그래밍 예제를 제공하는 것이 더 유용합니다. 즉각적인 압력없이 더 복잡한 문제를 해결하는 방법을 보여주고 후보에게 어떤 종류의 작업을 기대할 수 있는지 보여줄 수 있습니다 (좋은 예를 선택하십시오). 교과서 질문 IMHO보다 훨씬 유용합니다.
마이클

2
그들의 머리 꼭대기에서 피보나치 수열의 정의를 모르는 것은 걱정하지 않습니다. 그러나 설명 된 후에 프로그램을 계산하기 위해 프로그램을 작성할 수 없다는 것은 걱정입니다 (단순한 CRUD 앱에서 소계를 계산하는 것만으로도 기대할 수 있습니다!).
Stephen C. Steel

13

"최고의 인재를 뽑는 것"은 너무 많은 컬트가되고 있다고 생각합니다.

대부분의 프로그래밍 작업은 일상적이며 창의적이지 않습니다. 정말 창의적인 새 프로젝트를 진행할 때도 마찬가지입니다. 그것의 대부분은 험난하고 종종 패턴을 기반으로합니다. 이것은 UI에 특히 해당됩니다.

대부분의 현대 시스템은 너무 많은 사람들이 작성해야하므로 본질적으로 모두 최고가 될 수는 없습니다. 대부분의 사람들은 평균적이지만, 비록 그렇지 않더라도 여전히 "평균적인"사람의 작업을 많이 수행해야합니다.

즉, 기본 역량과 최소한의 현명한 요구 사항을 요구하는 것은 부당한 것이 아니며 타협해야 할 것이 아닙니다.

일상적인 수술에 대해 생각해보십시오 : 위험 내성에 따라 의과 대학 학장이 시간을 갖기까지 10 년 정도 기다리지 말고 평범한 의사의 진료를받는 것이 좋습니다. 그렇다고 순서대로 수술을 수행해야한다는 의미는 아닙니다.


당황하지 말고 ... 그러나 수백 또는 수천 종류의 수술을 수행 한 "평균"의사는 더 많은 지식은 있지만 경험이 거의없는 의과 대학 학장보다 선호 될 것입니다.
JoelFan

8

"최고를 고용하다"는 "어쨌든 현재 우리가 이용할 수있는 최고를 고용하는 것"을 의미하는 경향이 있으며 회사마다 다른 것을 의미합니다. 일부는 록 스타 코더를 원하고, 다른 이들은 세심한 소프트웨어 엔지니어를 원하고, 다음은 숙련 된 소프트웨어 장인을 원합니다. "유니버설 베스트 (universal best)"는 없으므로 명심하십시오. 작업 사양에 따라 한 가지 유형의 프로그래머를 찾고 있고 인터뷰에서 다른 유형의 프로그래머를 찾고 있다고 말합니다. 갑자기, 당신은 성냥을 얻지 못합니다.

즉, 나는 그렇게 프로그래머와 일하는 것을 좋아하지 않습니다. So-so는 경험과 관련이 없으며 (20 년 동안 프로그래밍되어 왔지만 여전히 잘하지 못합니다) 적성과 열정과 관련된 모든 것. So-so가 두 가지 중 하나에 영향을주는 경우 문제가있는 것입니다. 코드가 충분하지 않기 때문에 팀의 다른 구성원이 기여를 재 작업해야하는 사람을 고용 할 필요도 없습니다. 그들은 자신의 일을하려는으로 좌석에 더 많은 부랑자는이 질문에 대해 항상없는 좌석에 대한 자세한 부랑자는 불행히도 팀의 더 나은 구성원에 대한 더 많은 작업을 의미 하고 그래서 - 그래서 프로그래머가 제공 한 혼란을 정리 .

어떤 사람들은 록 스타가 아니라 견고한 중급 프로그래머입니다. 그들은 팀에있는 것이 좋으며 그것이 "그래서 그렇게 프로그래머"라는 의미가 아닙니다. 후자는 매년 성과 검토 시간에 해고 당하지 않는 사람입니다.


1
"rockstar programmer"라는 용어조차도 내가 말하고 싶어한다.
ozz

6

관리자 유형으로서 "최고 1 %"를 고용하는 것은 실용적이지 않으며 필요하지 않다는 데 동의합니다. 내 조언은 올바른 팀을 고용하여 제품을 빌드하고 유지 관리하는 것입니다 (빌드 대 유지 관리는 요구 사항이 매우 다르므로 서로 다른 두 팀이 될 수 있음)

현재 "핵심 인물"(예 : 업무 수행, 좋은 태도, 불확실성 / 높은 수준의 요구 사항 등)을 수행 할 수있는 팀원을 식별 한 다음 직원을 고용하는 것이 좋습니다. 과거와 함께 일했습니다 (그리고 분명히 존중하십시오). 이를 통해 인터뷰 프로세스에 대한 많은 불확실성을 제거하고 팀을 화나게합니다.

또한 더 "장기"-인턴 프로그램에 많은 투자를합니다. 프로그래밍 팀이 20 명인 경우 1 년에 5 명의 인턴을 구하여 실제 업무를 수행하십시오. 매년 좋아하는 1-2 개를 다시 가져 와서 5 개의 랜덤 변수를 추가로 가져옵니다. 이것은 아마도 팀을 좋은 프로그래머로 가득 채울 수있는 가장 좋은 방법 일 것입니다. 그런 다음 기회 적으로 외부에서 채용하고 해당 후보에 대한 기준을 높일 수 있습니다.

이미 언급했듯이 인터뷰 과정에주의를 기울이십시오. 응시자가 코드를 작성하도록하십시오 (또는 더 나은 방법으로 "1 시간 집에 가져 가세요"문제에 대한 해결책을 살펴보십시오). 팀과 함께 점심을 먹도록하십시오. 그들의 기술적 및 대인 관계 기술을 배우십시오. 그리고 다음 주에 시작되는 큰 프로젝트를 위해 20 명 이상이 필사적 일 때라도 "아니오"라고 말하는 것을 두려워하지 마십시오.


6

내 경험에 따르면 Paretto Principle은 프로그래밍에도 적용됩니다. 작업의 80 %는 개발자의 20 %가 수행하며 그 반대도 마찬가지입니다. 숫자가 과장 될 수 있습니다. 실제로 직원의 20 %가 50 %의 작업을 수행하게됩니다 (작업으로 코드 라인이 아니라 좋은 작업을 의미 함). 실제로 종 모양과 비슷합니다. 따라서 10 명으로 구성된 팀에서는 1 명의 영웅, 2 명의 위대한 녀석, 4 명의 평균 및 2 ~ 3 명의 한심한 사람이 있습니다.

많은 회사들이 종 곡선을 사용하여 평가를 평가합니다. 따라서 후보자가 아무리 밝아도 레벨에 해당됩니다. 모든 사람이 같은 레벨에있는 팀을 가질 수 없습니다. 발생하지 않습니다.


2
+1, 동의합니다. 하지만 문제는 "정중 한 것들"(예 : 팀 사기 등)이 필요합니까, 아니면 팀 없이도 잘 할 수 있을까요? 그리고 면접에서 알아볼 수 있습니까?
nikie

10
한심한 정의. 그들이 지루한 그런트 작업을 수행하지만 놀라운 도약을 할 수없는 좋은 plodders라면, 당신은 여전히 ​​그렇습니다. 그러나 그들이 희망이없고 아무것도 할 수 없다면, 그들은 공간 낭비입니다.
quick_now

한심한 사람을 유지하는 유일한 이유는 다른 사람을 더 잘 대체 할 수 없기 때문입니다. 그것들은 우리가 "동키의 일"이라고 부르는 것입니다.
DPD

1
인터뷰에서 찾을 수 있습니까? 예, 면접관의 기술에 따라 다릅니다. 나는 그들이 약간의 texbook 프로그램과 문제를 수동으로 진행하게했다. 그들이이 수준을 통과하면 나는 그들이 생각할 수 있는지 판단하기 위해 더 복잡한 문제를 제공합니다. 한심한 사람들은 구문에 능숙 할 수 있지만, 실제로 이해하지 못하고 rote로 배우는 것은 단지 배신자 일뿐입니다. 그들은 문제 해결에 실패합니다. 어떤 사람들은 스스로 생각할 수없고 Ctrl + C, Ctrl + V 언어로만 작동 할 수 있다고 말할 것입니다.
DPD

4
당나귀 일 드론은 적어도 일을한다. 그들은 Haskell에서 10 년 동안 개발 한 자료를 3 주 만에 OCaml에 대한 몇 가지 링크로 다시 쓰고 싶을 때 접촉하는 모든 것이 cr * p로 바뀝니다. 그렇다면 당신은 정말로 그들을 원하지 않습니다!
quick_now

4

여기에 이미 많은 답변이 있지만 여전히 논의해야 할 요점이 있다고 생각합니다. 소위 직원을 고용하는 것이 소프트웨어 품질에 미치는 영향과 그것이 관리자로서의 삶을 훨씬 더 어렵게 만드는 방법입니다.

"최고의 개발자를 고용해야합니까?" 항상 큰 지방입니다. 물론 실제로는 이것이 항상 가능한 것은 아닙니다. 이 질문을 고려하여 당신이하고 있다고 생각하는 위험한 실수는 "우리의 소프트웨어는 너무 간단해서 그렇게 할 수있다"고 생각하는 것입니다. 이것은 잘못입니다.

소프트웨어가 완성 될 것입니다. 의심의 여지가 없지만 훌륭한 팀과는 매우 다른 결과를 기대할 수 있습니다. 더 많은 버그, 더 많은 성능 문제, 더 많은 유지 관리 및 확장 성 문제 등이 있습니다. 더 복잡한 문제를 해결하기 위해 소위 사람들을 보모해야합니다. 적절한 아키텍처 결정을 내림으로써 소위 사람들을 보모해야합니다.

동의하고이를 관리 할 준비가 되었다면 괜찮습니다. 프로세스와 결과에 대비하십시오.


+1. 예. 도움을 받아 이진 검색 작성할 수없고 순수 죽은 체중 이외의 다른 사람이 될 수있는 사람들을 고용 할 수 있다는 생각은 아마 말도 안됩니다.
Tom Anderson

3

훌륭한 개발자를 고용하는 것은 실제로 문제가되지 않는다고 생각합니다. 진정한 도전은 그들이 당신을 위해 일하고 싶어하게 하는 것입니다.

최고의 인재를 고용해야합니까?
나는 그렇게 믿는다. 훌륭한 개발자는 모든 것을 정시에 완료하는 사람 만이 아닙니다. 그러한 사람 만이 다른 사람보다 더 생산적 일 수 있습니다. 훌륭한 개발자도 모범을 보이고 있으며 단순히 다른 팀원에게 영감을줍니다. 다른 사람들은 그들과 함께 일하면서 크게 발전 할 수있었습니다.

자, 표준을 낮추겠습니다. 정말 멋지다. 아마 당신은 정말로 형편없는 사람을 고용 한 후에 마음이 바뀔 것이다. 모든 CS 질문에 완벽하게 답변하지만 실제로 한 줄의 생산 코드를 작성할 수없는 사람. 좋은 결과 내길 바랄 게 :)


3

물러나 보자.

우리는 무엇을하려고합니까? 소프트웨어를 작성하십시오.

우리는 왜 최고를 고용해야한다고 생각합니까? 그 괴물 같은 아놀드 아이가 젖은 종이 봉지에서 빠져 나올 수 없었기 때문에 이제 SQL이 모두 망쳐 져서 로그인 할 수 없습니다.

그래, 최고가 뭐야? 잘 모르겠습니다. 그는 아마도 많은 돈을 원하고 6 피트 길이의 이력서를 가지고 큰 포트폴리오를 가지고 Google이나 다른 곳에서 일한 사람 일 것입니다. 그는 학위를 소지하고 이름 끝에 몇 글자를 써야 할 것입니다. 그래, 그게 나에게 최고인 것 같고, 가장 좋은 것은, 나는 아놀드 아이를 괴롭히지 않는 사람을 의미한다. 아, 그리고 그는 학교에서 "거품 종류 쓰기"또는 그들이 부르는 것과 같은 정말 힘든 쓰레기를 처리하는 방법을 알아야합니다. 다른 사람 중 한 명에게 학교에서해야 할 까다로운 일을 말해달라고 부탁합니다.

아놀드 아이를 싫어하는 것 같아? 당신은? 나는 버그가 많은 코드에 지 쳤고, 일을 끝내는 데 시간이 오래 걸리며, 인터뷰하는 새로운 사람들은 모든 것을 다시 써야한다고 말합니다.

그래, 괴물 아놀드 아이에게 어떻게하라고 부탁해? PHP 웹 사이트를 만들고, jQuery를 작성하고, PHP가 MSSQL을 사용하여 기본 CRUD를 수행하고 배경색을 변경하도록하십시오.

그게 가장 좋은 일에 어울리는 일처럼 들립니까? 나는 최선을 다할 수 있다고 확신하지만, 이것과 일치하는 올바른 스킬 셋을 가진 사람이라면 누구나 이것을 할 수 있습니다.

그래서 최선이 필요하지 않습니까? 그렇습니다. 목표를 달성 할 수있는 기술을 갖춘 사람이 필요합니다.

오. 네.


@ user1525, CRUD 앱이 아닙니다. 엔지니어링 소프트웨어입니다.
Graviton

항상 그런 것은 아닙니다. 많은 작업은 데이터 구조, 알고리즘 또는 계산 복잡성에 대한 지식이 필요하지 않습니다. 물론, 그들은 구글 검색의 직업이 아니지만, 그에 대한 수요가 엄청납니다. 구인 게시판에서 "jquery 플러그인이 필요합니다"또는 "이 psd와 같은 iPhone 앱을주세요"라는 대부분의 게시물을보십시오. 사람들은 최고 또는 최저를 원합니다.
시크릿

3

질문 제목에 "일반 데스크톱 응용 프로그램"이 언급되어 있지만 텍스트에는 계산 기하학 및 선형 프로그래밍 지식을 적용해야한다는 내용이 나와 있습니다. 이것들은 모든 진보의 사회적 결과가 막대한 수십 년에 걸친 대규모 연구 프로그램을 만들어 낸 응용 분야입니다 (리콜 프로그래밍 추상 리소스 할당 ). 결과적으로 이러한 영역에서 문제를 해결하는 데 매우 정교한 접근 방식이 많이 있습니다.

나쁜 고용

  • 이런 종류의 문제에 대해 들어 보지 못했을 수도 있습니다.
  • 일반적인 솔루션에 익숙하지 않을 수 있습니다.
  • 아마도 더 나은 것들에 대해 알지 못했을 것입니다 (힌트 : 대부분의 저학년들은 문제에 대해 들으면 멋진 물건에 대해 듣지 않습니다).
  • 거의 확실하게 그러한 것들을 구현하는 데 시간이 걸릴 것입니다 (그들 중 일부는 데이터 구조에 맞는 전체 대학원 세미나를 제공한다는 것을 고려했을 때 교수님 포함).

다시 말해, 실제로 보행자에서 작업 중인지 생각해보십시오. 당신이 큰 경우에, 채용이 훨씬 쉬워야합니다. 그렇지 않은 경우, 필요한 것을 할 수있는 사람을 위해 노력하십시오.


전체 계산 기하학 / 선형 프로그래밍 라이브러리를 다시 작성할 필요는 없습니다. 내 응용 프로그램과 관련하여 필요한 모든 문제는 적절한 계산 기하학 / 선형 프로그래밍 용어로 캐스트하는 방법을 알고 기존 라이브러리를 사용하는시기 / 방법을 알아야합니다.
Graviton

2

분명히 나는 ​​Joel의 표준에 의한 슈퍼 스타 프로그래머가 아닙니다. 그럼에도 불구하고 저는 20 년 동안 개발자로 일하면서 성공적인 프로젝트를 작성했습니다. 나는 당신의 질문을 해결할 수있었습니다. 그러나 실제로는 데이터베이스 또는 라이브러리 기능을 요청하여 더 복잡한 작업을 수행하는 작업 경험이 적습니다.

그러나 경험이 적은 사람들을 고용하기로 결정했다면 다루기 쉬운 기술을 사용해야합니다. 예를 들어 전체 프로젝트에 C ++를 사용하려는 경우 C ++ 부분을 최고 사용자가 작성한 라이브러리로 제한하고 다른 사용자는 Visual Basic에서 사용자 인터페이스를 구현할 수 있습니다.


2

귀하의 직급에 참여할 직원에서 검색 한 값을 기록하십시오.

유일하게 높이 평가되는 가치가 프로그래밍 역량 인 경우, 그 가치에 관심이있는 사람들에게 빨리 둘러싸여 있습니다. 가장 유능한 프로그래머는보다 정교한 가치 시스템을 가지고 있기 때문에 팀에 참여하지 않아도됩니다.

그러나 혁신적이고 창의적이며 신뢰할 수 있고 황홀하고 호기심이 많으며 스스로 학습하고 사교적이고 유능하며 헌신적 인 사람들을 찾고있을 가능성이 높습니다. 귀사에서 이러한 가치를 이해하고 존중하며 직원들이 더 발전 할 수 있도록 기꺼이 도와주십시오.

현재 직원의 가치를 이해하고 포용하고 업무 응용 프로그램에서 전달하십시오. 지속 가능한 가치 체계를 갖춘 훌륭한 회사는 훌륭한 직원을 유치합니다.


-1 : 물론 돈을 말하고 (그리고 OP가 이야기했다면) 의미가 있습니다. 그래도이 답변이 어떻게 도움이 될지 모르겠습니다. 당신은 기본적으로 내가 올바르게 이해한다면 그의 응용 프로그램에 충분한 마케팅을하지 않는다고 말하고 있습니까? 글쎄, 어쩌면 그것은 조금 도움이 될 것입니다.하지만 나는 보통 많은 유능한 사람들이 적어도 합리적인 가치를 .. duh .. 역량에 두지 않는 것을 보지 못합니다. .. 내가 말했듯이 "프로그래밍 역량"을 돈으로 바꾸면 대답이 의미가 있지만 미안합니다.
n1ckp

내 의견을 이해하지 못하면 수정하지 않아야합니다. 어쨌든, 의미하는 것은 매우 간단합니다. 시간이 지남에 따라 저는 훌륭한 프로그래머들을 만났습니다. 그들은 그들의 언어, 알고리즘, 수학, 물리학을 알고 있습니다. 그러나, 처음에 그것들을 훌륭하게 만든 것은 단순한 공예 이상의 것에 대한 관심이었습니다. 그들은 종종 자신과 다른 사람들의 호기심을 소중히 여깁니다. 그들은 독립적 인 학식을 중요한 특성 (또는 가치)으로 보거나 주변 사람들에게 영감을줍니다. 종종 이러한 가치는 소득보다 중요합니다.
Dibbeke

@Dibbeke : 글쎄, 이것이 어떻게 질문과 관련이 있는지 알지 못하기 때문에 부분적으로 수정했습니다. 그래도 좋은 소리와 나는 당신의 마지막 의견에 동의하지 않지만 (당신의 대답은 다른 것이지만) 여전히 그것이 OP에 도움이되거나 실제 질문에 대답하는 방법을 보지 못합니다.
n1ckp

@ n1ck 마케팅을 할 때 기본 프로세스를 기반으로 채용 프로세스가 실제로 같은지 궁금해지기 시작했습니다. 나는 모른다. 그러나 나는 신뢰와 존중의 소셜 네트워크를 구축하는 것이 그것의 영향을 많이 받는다는 것을 알고있다. 이는 회사의 명성에 영향을 미치며 최고의 소프트웨어 개발자를 유치하는 데 도움이됩니다.
Dibbeke

@Dibbeke : 마지막 의견을 받았는지 확실하지 않지만 적어도 당신과 동의한다고 생각합니다. 그러나 다시 한 번 OP에 도움이되는지 확실하지 않습니다 (지금은 질문과 어떻게 관련이 있는지 더 많이 알지만). 무엇이 나를 이렇게 네, 그는 자신의 회사에 대해 아무것도 이야기하지 결코 말할 수 어쩌면 그의 회사가 나쁜 평판을 가지고 원인이 될 수 있지만, 난 당신이 결론에 뛰어 것 같아 ..
n1ckp

1

모든 조직에는 경험이 많은 사람과 적은 사람이 있습니다. 뿐만 아니라 한 분야의 전문가가 다른 분야의 초보자가 될 수 있습니다. 열정적 인 아마추어가 코드 기반에 비해 해를 끼칠 수는 있지만 실수를 해결하고 경험이 풍부한 동료와 경험을 논의함으로써 배우는 방식입니다.

제 제안은 수퍼 스타를 고용하기보다는 합리적으로 밝은 사람들, 회사 문화에 적응하고 배우고 자신의 한계에 대해 감사하는 사람들을 고용하려고한다는 것입니다.


1

확실히 당신은 최고만을 고용하기를 열망해야합니다. 그렇다고 자동으로 성공했다는 의미는 아닙니다. "가장 좋은"제품은 너무 많으며, 이길 수있는 전투에서 승자와 패자가있을 것입니다. 많은 부분이 문제에 대해 열심히 일하려는 적성과 의지, 그리고 가능한 자원에서 비롯됩니다.

시작하기 전에 포기하는 것이 가장 확실한 방법입니다.


1

이진 검색은 대부분의 프로그래머가 실제로 올바르게 작성하려고 애쓰는 것으로 잘 알려져 있기 때문에 흥미로운 문제입니다 ( Bendingly Programming Pearls에 작성 ). 응시자의 실패에 근거하여 응시자를 배제하지 않는 한 시험해 보는 것은 그리 나쁘지 않을 것입니다. 그들이 신속하고 정확하게 해결하면 적어도 어떤 유형의 프로그래머인지 암시하여 특정 경우에 더 많은 정보를 얻습니다.


1

최고를 고용해야합니다. 그러나이 용어는 문맥 상 여러 차례 인용되었다. 전반적인 의미에서 최고의 프로그래머가 아니라 해당 직책에 필요한 기술을 갖춘 최고의 후보를 찾아야합니다. 소프트웨어 개발은 ​​광범위하며 모든 직책에 동일한 기술 지식이 필요한 것은 아닙니다.

이 질문을 스스로에게 물어보십시오 (당신은 이미 그랬습니다.) : 5 년 동안 같은 직책에 다른 엔지니어가 있다면, 피보 난치 시리즈와 이진 검색을 기억하겠습니까?

대답이 '아니요'인 경우 인터뷰 패턴을 변경하십시오. Google 또는 bing과 같은 검색 응용 프로그램에서 작업하려면 12 가지 검색 알고리즘을 알아야 할 수 있습니다. 다른 사람은 모두 map.get ( "");

교과서 제네릭 좋은 프로그래머가 아닌 직책에 필요한 인터뷰 대상을 지정하십시오.


1

당신이 정말로 품질에 관심이 없다면 아웃소싱 웹 사이트 중 하나를 사용하고 작은 프로젝트로 시작하는 것이 좋습니다. 그런 다음 그들이 일을 할 수 있다면 돈을 지불 할 수 있고, 그렇게 할 수 없다면 쉽게 구제 할 수 있습니다.

그러나 데스크톱 엔지니어링 응용 프로그램에 실제로 일상적인 코딩이 많은지 의문입니다. 그것들은 매우 복잡 할 수 있으며 대부분의 프로그래머는 복잡성을 관리하는 데 능숙하지 않습니다. 앞으로 몇 년 동안 팀을 묶을 많은 인스턴트 레거시 코드를 쉽게 만들 수 있습니다. 일반적으로 새 프로젝트의 첫 번째 채용이 가장 중요하며 전체 프로젝트의 분위기를 조성 할 것입니다.


0

나는 사람을 문제에 맞추는 것을 언급하는 위의 모든 의견에 전적으로 동의합니다. 이것은 보통 정기적 인 문제를 해결하기 위해 수퍼 스타를 고용하는 것이 아니라 장기적인 관계를 초래합니다.
그러나, 당신은 항상 특정 직책이 아닌 회사를 위해 고용을 시도해야합니다. 같은 사람이 조만간 개인 연락처 등을 사용하여 팀을 전환하고 다른 곳에서 Deadweight가 될 수 있기 때문입니다. 회사가 내부 전송 지침을 매우 엄격하게 유지하고 회사 바를 충족하지 못할 것으로 생각되는 사람을 고용하기 전에 향후 몇 년 동안 팀에서 수행 할 작업을 명확하게 파악해야합니다 (그러나 현재 문제는 해결 될 것임) ). 개발자의 평범함이 팀을 더욱 어렵게 만드는 사례를 너무 많이 보았습니다.

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