다른 자질과 함께 프로그래머는 훌륭한 디버깅 기술이 필요합니까? 주어진 프로그램에서 오류를 찾을 수 없었지만 모든 퍼즐과 프로그램을 해결할 수있는 지원자가있는 경우 해당 직종에 대해 고려해야합니까?
편집 :-퍼즐은 정상적인 빨강, 파랑 및 빨강 파랑 공입니다. 프로그램은 배열에서 연속적인 k 영점을 찾는 것과 같습니다. 디버깅 프로그램은> =이어야하는 조건으로 인해 실패하지만 대신>입니다. 모든 것이 종이에 있습니다.
답변
예, 매우 중요합니다
해당 후보에 대해서는 디버그 할 코드 기반 x에 익숙하지 않을 수 있습니다.
일반적으로 필요한 것은 매우 논리적 인 방법 / 접근법 만 있으면되기 때문에 좋은 문제 해결사는 디버깅 할 수 있어야합니다.
답변
디버깅 할 수 없다면 프로그래머는 아니지만 거의 좋은 프로그래머는 아닙니다.
디버깅은 기술 능력뿐만 아니라 분석 능력과 사고 과정을 실제로 적용하는 실질적인 응용 프로그램입니다. 결과적으로 화이트 보드 나 인터뷰 질문보다 훨씬 유용하고 적절한 테스트라고 평가했습니다.
당신이 가진 직업이 하루 종일 이론적 질문에 답하는 것을 포함하지 않는다면, 당신이 가진 기술을 적용 할 수있는 사람이 필요합니다.
그래도 당신이해야 할 일은 디버깅 능력에 대한 공정한 테스트라는 것입니다. 실제 세계에서와 같은 방식으로 코드를 실행하고 중단 점을 지정할 수 있습니까? 어떤 종류의 오류입니까? 컴파일러가 선택하고 플래그를 지정하는 것입니까 (이 경우 절대로 알 필요가 없으므로 매우 무의미한 질문입니까)?
그것이 종이에 쓰여졌다면 그것은 기본적으로 상세한 읽기 시험일 뿐이며 그것은 일반적인 기술 인터뷰 질문보다 훨씬 더 추상적 인 기술이며, 나는 거의 쓸모가 없다고 주장합니다.
답변
주요 고용 규칙 — 의심 할 여지없이 ‘아니요’라고 말합니다.
저렴하게 많은 새로운 코드를 구현해야한다면 그 사람을 얻을 수는 있지만 개인적으로 계속 검색 할 것입니다.
답변
개발자가 항상 깨끗한 코드를 작성하고 (절대적으로 불가능한) “그린 필드”프로젝트에서만 작업 할 수 없다면 (그렇지 않을 것입니다), 그렇습니다. 디버깅 기술은 절대적으로 필요합니다. 전혀. 나는 디버깅을 좋아하지 않는 개발자들과 경험을 가지고 있었기 때문에 게으르고 테스트를 위해 벽에 QA로 코드를 던졌습니다. 그러나 그 개발자들은 전혀 오래 가지 않습니다.
소프트웨어 개발은 기술과 문제 해결 기술입니다. 이러한 문제에는 비즈니스 문제와 (및 다른 코드) 문제가 포함됩니다. 그런데 많은 유지 보수 프로젝트는 특히 버그 수정에 관한 것이므로 디버깅은 절대적으로 필수적인 기술입니다.
답변
“인터뷰 질문”유형의 웹 사이트가 많이 있으며, 많은 질문과 퍼즐을 공부하는 것이 전적으로 가능합니다. 공부할 수없는 한 가지는 전에는 본 적이없는 코드를 디버깅하는 것입니다. 디버깅하는 방법을 알고 있거나 그렇지 않은 코드를 충분히 작성했습니다. 엔트리 레벨의 위치라면 후보자를 배제하지는 않지만 언어에 대한 경험이 있다고 주장하고 코드를 디버깅 할 수 없다면 확실히 붉은 깃발을 듭니다.
답변
주니어 프로그래머와 시니어 프로그래머의 주요 차이점은 디버깅 기술입니다. 디버깅 기술은 실습과 경험으로 만 제공되는 것입니다.
예를 들어, Java 프로그램이 대화식 모드로 콘솔에서 제대로 작동하지만 동일한 입력에 Unix 파이프를 사용하려고하면 실패하는 이상한 버그를 생각해보십시오. 이전에이 문제가 발생한 경우 new Scanner(System.in)
한 번만 호출 되는지 확인할 수 있습니다 . 버그는 파이프 될 때 버퍼를 소비하지만 대화 형 모드에서는 그렇지 않습니다. 상급 프로그래머가이 버그를 더 빨리 식별 할 것으로 기대합니다. 아마도 이전에 경험했거나 과거에 버퍼링과 관련하여 다른 문제가 있었기 때문일 수 있습니다.
퍼즐을 풀고 새로운 코드를 작성하는 것에 관해서는 경험이 중요하지만, 이것은 중급 프로그래머가 상급 프로그래머와 마찬가지로 또는 더 잘 수행 할 수있는 것입니다. 즉, 지능과 기술이 경험과 무관 한 더 큰 효과를 가질 수 있습니다.
새로운 아이디어를 가지고 팀 “젤”을 도울 수있는 주니어 프로그래머에게 투자 할 수있는 위치에 있다면, 새로운 코드를 작성하는 것이 좋을 것 같습니다. 상급 수준의 프로그래머를 찾고 있다면 디버깅 기술이 부족하다는 것이 중요한 경고 신호가 될 수 있습니다. 10 년의 경험이있을 경우 첫해에는 10 번 정도 경험할 수 있습니다.
부수적으로, 10 년의 경험이없는 디버깅에 더 능숙해질 수있는 방법이 있습니다. 나는 과학적 원리를 배우고 실패를 재현, 발견 및 수정하는 방법을 더 잘 이해하는 방법으로 Andres Zeller의 책인 Programs Fail : Systematic Debugging Guide를 추천 합니다.
답변
환경에 따라 다릅니다. 하루 종일 sodoku와 다른 퍼즐을 연주한다면 좋은 후보가 될 것입니다.
그러나 때로는 코드에 버그가 있거나 항상 예상대로 정확하게 작동하지 않는 경우 문제 해결에 능숙한 사람을 얻는 것이 좋습니다.
프로그래머가 무엇을해야하는지에 대한 이상적인 것이 아니라 필요한 것을 고용하십시오.