좋은 프로그래머가 되려면 디버깅 기술이 중요합니까? 상호 작용을받지 않습니다.

다른 자질과 함께 프로그래머는 훌륭한 디버깅 기술이 필요합니까? 주어진 프로그램에서 오류를 찾을 수 없었지만 모든 퍼즐과 프로그램을 해결할 수있는 지원자가있는 경우 해당 직종에 대해 고려해야합니까?

편집 :-퍼즐은 정상적인 빨강, 파랑 및 빨강 파랑 공입니다. 프로그램은 배열에서 연속적인 k 영점을 찾는 것과 같습니다. 디버깅 프로그램은> =이어야하는 조건으로 인해 실패하지만 대신>입니다. 모든 것이 종이에 있습니다.



답변

예, 매우 중요합니다

해당 후보에 대해서는 디버그 할 코드 기반 x에 익숙하지 않을 수 있습니다.

일반적으로 필요한 것은 매우 논리적 인 방법 / 접근법 만 있으면되기 때문에 좋은 문제 해결사는 디버깅 할 수 있어야합니다.


답변

디버깅 할 수 없다면 프로그래머는 아니지만 거의 좋은 프로그래머는 아닙니다.

디버깅은 기술 능력뿐만 아니라 분석 능력과 사고 과정을 실제로 적용하는 실질적인 응용 프로그램입니다. 결과적으로 화이트 보드 나 인터뷰 질문보다 훨씬 유용하고 적절한 테스트라고 평가했습니다.

당신이 가진 직업이 하루 종일 이론적 질문에 답하는 것을 포함하지 않는다면, 당신이 가진 기술을 적용 할 수있는 사람이 필요합니다.

그래도 당신이해야 할 일은 디버깅 능력에 대한 공정한 테스트라는 것입니다. 실제 세계에서와 같은 방식으로 코드를 실행하고 중단 점을 지정할 수 있습니까? 어떤 종류의 오류입니까? 컴파일러가 선택하고 플래그를 지정하는 것입니까 (이 경우 절대로 알 필요가 없으므로 매우 무의미한 질문입니까)?

그것이 종이에 쓰여졌다면 그것은 기본적으로 상세한 읽기 시험일 뿐이며 그것은 일반적인 기술 인터뷰 질문보다 훨씬 더 추상적 인 기술이며, 나는 거의 쓸모가 없다고 주장합니다.


답변

주요 고용 규칙 — 의심 할 여지없이 ‘아니요’라고 말합니다.

저렴하게 많은 새로운 코드를 구현해야한다면 그 사람을 얻을 수는 있지만 개인적으로 계속 검색 할 것입니다.


답변

개발자가 항상 깨끗한 코드를 작성하고 (절대적으로 불가능한) “그린 필드”프로젝트에서만 작업 할 수 없다면 (그렇지 않을 것입니다), 그렇습니다. 디버깅 기술은 절대적으로 필요합니다. 전혀. 나는 디버깅을 좋아하지 않는 개발자들과 경험을 가지고 있었기 때문에 게으르고 테스트를 위해 벽에 QA로 코드를 던졌습니다. 그러나 그 개발자들은 전혀 오래 가지 않습니다.

소프트웨어 개발은 ​​기술과 문제 해결 기술입니다. 이러한 문제에는 비즈니스 문제와 (및 다른 코드) 문제가 포함됩니다. 그런데 많은 유지 보수 프로젝트는 특히 버그 수정에 관한 것이므로 디버깅은 절대적으로 필수적인 기술입니다.


답변

“인터뷰 질문”유형의 웹 사이트가 많이 있으며, 많은 질문과 퍼즐을 공부하는 것이 전적으로 가능합니다. 공부할 수없는 한 가지는 전에는 본 적이없는 코드를 디버깅하는 것입니다. 디버깅하는 방법을 알고 있거나 그렇지 않은 코드를 충분히 작성했습니다. 엔트리 레벨의 위치라면 후보자를 배제하지는 않지만 언어에 대한 경험이 있다고 주장하고 코드를 디버깅 할 수 없다면 확실히 붉은 깃발을 듭니다.


답변

주니어 프로그래머와 시니어 프로그래머의 주요 차이점은 디버깅 기술입니다. 디버깅 기술은 실습과 경험으로 만 제공되는 것입니다.

예를 들어, Java 프로그램이 대화식 모드로 콘솔에서 제대로 작동하지만 동일한 입력에 Unix 파이프를 사용하려고하면 실패하는 이상한 버그를 생각해보십시오. 이전에이 문제가 발생한 경우 new Scanner(System.in)한 번만 호출 되는지 확인할 수 있습니다 . 버그는 파이프 될 때 버퍼를 소비하지만 대화 형 모드에서는 그렇지 않습니다. 상급 프로그래머가이 버그를 더 빨리 식별 할 것으로 기대합니다. 아마도 이전에 경험했거나 과거에 버퍼링과 관련하여 다른 문제가 있었기 때문일 수 있습니다.

퍼즐을 풀고 새로운 코드를 작성하는 것에 관해서는 경험이 중요하지만, 이것은 중급 프로그래머가 상급 프로그래머와 마찬가지로 또는 더 잘 수행 할 수있는 것입니다. 즉, 지능과 기술이 경험과 무관 한 더 큰 효과를 가질 수 있습니다.

새로운 아이디어를 가지고 팀 “젤”을 도울 수있는 주니어 프로그래머에게 투자 할 수있는 위치에 있다면, 새로운 코드를 작성하는 것이 좋을 것 같습니다. 상급 수준의 프로그래머를 찾고 있다면 디버깅 기술이 부족하다는 것이 중요한 경고 신호가 될 수 있습니다. 10 년의 경험이있을 경우 첫해에는 10 번 정도 경험할 수 있습니다.

부수적으로, 10 년의 경험이없는 디버깅에 더 능숙해질 수있는 방법이 있습니다. 나는 과학적 원리를 배우고 실패를 재현, 발견 및 수정하는 방법을 더 잘 이해하는 방법으로 Andres Zeller의 책인 Programs Fail : Systematic Debugging Guide를 추천 합니다.


답변

환경에 따라 다릅니다. 하루 종일 sodoku와 다른 퍼즐을 연주한다면 좋은 후보가 될 것입니다.

그러나 때로는 코드에 버그가 있거나 항상 예상대로 정확하게 작동하지 않는 경우 문제 해결에 능숙한 사람을 얻는 것이 좋습니다.

프로그래머가 무엇을해야하는지에 대한 이상적인 것이 아니라 필요한 것을 고용하십시오.