버그에 대해 생각하는 것이 때때로 문제 해결에 도움이되지 않는 이유는 무엇입니까? [닫은]

어제 오후에 버그를 고치려고 많은 시간을 보냈는데, 사소한 생각이었습니다. 나는 서클에서 돌아 다니면서 무엇이 잘못되었는지에 대한 단서가 없었습니다. 코드의 큰 부분을 다시 작성합니다. SO 확인. 여전히 기쁨은 없습니다.

그래서 나는 집에 갔고, 개를 걸었고, 작은 TV를 보았고, 잠들기 직전에 빙고는 내가 저지른 명백한 실수를 깨달았다. 오늘 아침에 고치는 데 약 10 분이 걸렸습니다.

집에있는 동안 문제에 대해 적극적으로 생각하지 않았습니다. 그러나 상황에서 벗어나면 해결할 수있었습니다.

처음이 아니며, 프로그래밍 문제를 해결하는 것이 일반적인 방법이라는 것을 알고 있습니다. 나는 사람들이 답을 꿈꾸는 것을 들었습니다.

왜 이것이 작동합니까?

더 중요한 것은 문제에서 휴식을 취해야하는시기, 휴식 시간은 얼마나되는지, 그리고 문제를 떠나는 시간이 얼마나 효과적인 지에 대한 좋은 지침이 있습니까?

이 잠재 의식 처리를 최적화하는 방법 (또는 진행중인 작업)을 해결하려고한다고 가정합니다.



답변

문제에 너무 집중하면 한 발짝 물러 설 수 없습니다. 코드를 디버깅 할 때 동일한 테스트를 불필요하게 반복하는 경향이 있습니다.

더 많이 시도할수록 더 많이 실패하고 좌절하게됩니다. 스트레스와 좌절이 증가하면 상황이 악화됩니다.

그렇기 때문에 동료가 우연히보고 어깨 너머로보고 몇 초 안에 문제 (및 해결책)를 지적 할 수 있습니다.

그들은 당신 과 같은 정신 상태에 있지 않습니다 .

나는 종종 특정 시간을 보지 말고 몇 시간 후에 차분한 마음으로 돌아옵니다.

그러나 가장 강력한 기술은 단지 도움을 요청하는 것 입니다.


답변

일정 기간 동안 문제를 해결해왔다면 개발 과정에서 설정 한 패턴을 따라야합니다. 다시 말해, 설정 한 멘탈 프레임 이외의 항목에 대해 일시적인 “검은 점”을 개발합니다.

잠시 동안 문제를 해결하면이 필터를 제거하는 데 도움이되며 필터를 제자리에 두지 않고도 여러 가지 문제를 해결할 수 있습니다.

이런 경우에 종종 나에게 도움이 된 것은 다른 사람에게 왜 그것이 효과가 있는지 설명하지 않는 것입니다.

개발 작업 중에 정신 필터를 개발하는 것 외에도, 뇌는 대규모 멀티 스레드이며 종종 모호하지 않은 프로세스의 일부로 문제를 계속 극복합니다. 때로는 오후에 문제에 대해 할 수있는 모든 것을 배우고 문제를 해결하기 전에 하루나 이틀 동안 문제를 놓아서 사용합니다.


답변

나는 심리학자는 아니지만 하나의 문제에 너무 집중하면 (버그 찾기) 더 큰 시스템에 대한 견해를 잃는 경향이 있습니다. 그러나 종종 대답은 현재 찾고있는 곳의 “아래”가 아니라 다른 곳에서 볼 수 있다는 것입니다. 그 시점에서는 볼 수 없습니다.

따라서 실제로 필요한 것은 트렌치에서 벗어나 전체 시스템을보다 일반적인 관점에서 다시보기 시작하는 것입니다. “이것이 바로 여기에 있다는 것을 알고 있습니다. 아직 찾지 못했습니다”라는 생각을 무시하는 경향이 있습니다. 그것은 항상 우리 모두에게 일어난다. 나는 심지어 내가 “그렇게 내가 좋은 디버깅 기술을 사용하여 버그를 찾을 수 없습니다 알고있는 지점에 도착 여전히 옳은 일을하고 휴식을하지 않는 다른 곳으로”- 인간의 뇌는 이러한이다 재미있는 것.

그러나 화장실에 가거나 동료와 이야기하거나 개를 걷든 상관없이 실제로는 그렇게 많은 일을하지 않습니다. 나는 근처 상점에 가서 사탕을 사러 갔을 때 용액에 재킷을 넣 자마자 거의 항상 머리에 튀어 나왔다. 프로그래밍하는 동안 많은 양의 물을 마시는 것이 좋습니다. 그것은 당신이 매번 휴식을 취한 다음 화장실과 zap을 방문하도록 강요합니다. 왜냐하면 당신이 참호에서 벗어나야하는 이유가 있습니다.


답변

개인적 경험과 내가 훈련 한 주니어 개발자가 목격 한 바에 따르면, 우리는 모두 가정과 기대에 관한 문제에 접근합니다. 함수 x는 태스크 z를 수행하여 결과 z를 생성한다고 가정합니다. 항상 그래야하는데 왜 그렇게 바뀌어야합니까? 우리가 문제에 점점 더 집중할수록, 우리는 기본 사항을 다루었 고 문제는 원래 문제를 해결할 때보 다 훨씬 더 복잡해야한다고 가정합니다. 우리가 진실이라고 생각하지만 실제로 검증되지 않은 것으로 보이는 것들에 피로를 가하고, 당신은 나중에 완전한 “WTF”순간을 맞이하게됩니다.

나중에 가정을 버리고 되돌릴 수있는 문제에서 벗어나게됩니다. 또한 우리는 일반적으로 방금 해결 한 다른 문제로 인해 문제를 해결합니다. 나는 A를 고쳤지만 이제는 B를 고쳤습니다. 이제는 B를 고쳐야합니다. 그래서 우리는 이미 우리가 여행하고있는 추진력과 방향을 가지고 있습니다. 문제 B를 해결하는 것으로 되돌아 가면 문제 A는 더 이상 새로운 가능성으로 막힐 가능성이 없습니다. 선입견없이 문제를 해결할 수 있으며, 이는 새로운 사고의 길과 문제를 바라 보는 새로운 각도를 열어줍니다.

이제, 주니어가 저에게 도움을 요청할 때마다, 그들이 대답해야 할 첫 번째 질문은 “당신의 가정은 무엇입니까?”입니다. 그 문제에 대답하려고하더라도 정신 장애에서 벗어날 수 있습니다.


답변

근육처럼 근육이 피곤해 졌어요 휴식을 취하면 휴식을 취하고 산소 / 연료 등을 보충 한 후 다시 작업을 시작할 수 있습니다.

산책을하거나 운동을하는 것은 실제로 무언가에 갇혀있을 때 좋은 접근 방법입니다. “유레카”순간이 없어도 종종 문제를 해결하기 위해 되돌아 와서 새로운 접근 방식을 취할 수 있습니다.


답변

아이디어와 문제에 대한 인큐베이션 시간 이라고합니다 .

하위 양심은 여전히 ​​비선형 접근 방식으로 인식에서 문제를 계속 처리합니다. 낮잠을 자기 전에 새로운 것을 배울 때 일어나는 것과 매우 유사합니다. 당신의 마음은 정보를보다 유연하게 접근 할 수있는 방법으로 ‘조각 모음’할 시간이 있습니다.

또한 버그에 걸리는 것을 극복하는 데 도움이되는 또 다른 유용한 팁을 고백 디버그 라고 합니다. 여기서 문제를 모르는 다른 사람에게 접근하여 문제를 설명하기 시작합니다. 나는 종종 문제를 큰 소리로 말함으로써 해결책이 떠오른다는 것을 안다.

이 정신 링크를 확인하십시오 :
창의성 팁
문제 낮잠


답변

“우리는 모두에 의해 찔 얻을이 상승
때때로. 슬프게도 우리가 때 집중
상의 너무 많은 고통을 우리가 잊지 정보] 아름다움 장미의.”