Skip to main content

10. 복잡한 문제 해결을 더 잘하려면

10.1 문제 해결이란 무엇인가?#

10.1.1 문제 해결 요소#

  • 문제 해결에는 세 가지 중요한 요소입니다.
    • 목표 상태(달성하고자 하는 것, 목표 상태에 도달하면 문제가 해결된 것으로 간주)
    • 문제를 해결해야 하는 시작 상태
    • 시작 상태에서 목표 상태에 도달하는 방법을 규정하는 규칙

10.1.2 상태 공간#

  • 문제의 상태 공간(state space) : 프로그램을 해결할 때 고려할 수 있는 모든 단계

10.2 프로그래밍 문제를 해결할 때 LTM의 역할은 무엇인가?#

10.2.1 문제 해결을 그 자체로 인지 과정인가?#

  • 문제를 해결하기 위해 세 가지 단계를 수반하는 사고 체계를 제안합니다.
    • 문제 이해
    • 계획 수립
    • 계획 실행

문제 해결 시 LTM 사용#

두뇌는 익숙한 문제를 해결하는 것이 더 쉽습니다.#

10.2.2 문제 해결을 위한 LTM 교육 방법#

  • 작업 기억 공간이 결정을 내리기 전에 앞서 두 가지를 먼저 해야합니다.
    • 첫 번째는 STM으로부터 문제의 상황에 대한 정보를 가져오는 것입니다.
    • 동시에 LTM은 관련 배경 지식을 검색합니다.

10.2.3 문제 해결에 역할을 하는 두 가지 유형의 기억#

  • 문제 해결할 때 역할을 수행하는 서로 다른 유형의 기억이 있습니다.
    • 첫째는 운동 능력이나 의식하지 않고 발휘하는 기술에 대한 기억을 절차적(procedural, 암시적, Implicit) 기억이라고 합니다.
    • 두번째 유형의 기억은 선언적(declarative, 명시적, explicit) 기억입니다.
      • 선언적 기억의 또 다른 하위 범주는 의미적(semantic) 기억입니다.

문제를 해결할 때 어떤 유형의 기억이 역할을 수행하는 가#

탈학습#


10.3 자동화: 암시적 기억 생성#

  • 문제 해결 능력을 높이는 두 가지 방법이 있으며 이 기술은 자동화(automaization) 입니다.

10.3.1 시간 경과에 따른 암시적 기억#

  • 암시적 기억은 세 가지 단계로 형성됩니다.

인지 단계#

  • 무언가 새로운 것을 배우는 것입니다.

연상 단계#

  • 응답 패턴이 나타날 때까지 새 정보를 적극적으로 반복해야 합니다.

자율 단계#

  • 기숙이 완벽한 자율 단계에 도달합니다.

10.3.2 자동화를 통해 보다 신속하게 프로그램을 실행할 수 있는 이유#

  • 각각의 기억은예를 들어 '인수분해에 대한 기억'이라는 클래스의 한 인스턴스로 간주되기 때문에, 이 이론은 인스턴스 이론(instance theory) 이라고 부릅니다.

10.3.3 암시적 기억 개선#

  • 자율 단계에 도달하지 않는 기술을 의도적으로 연습해 개선할 방안에 있습니다.
  • 의도적 연습이란 매우 단순하고 쉬운 작업을 완벽에 도달할 때까지 반복적으로 실행하는 것입니다.
  • 보다 복잡한 프로그래밍 개념을 이해하는 데 어려움을 겪고 있다면 프로그램을 처음부터 작성하는 것보다 이미 작성된 프로그램을 수정하는 것도 고려해야합니다.

10.4 코드와 해설에서 배우기#

  • 문제 해결 능력을 향상하기 위해 사용할 수 있는 두 번째 방법은 다른 사람들이 문제를 어떻게 해결했는지 의도적으로 연구하는 것입니다.

10.4.1 새로운 유형의 인지 부하: 본유적 부하#

  • 작업 기억 공간이 꽉 차 있으면 정보를 다시 LTM에 저장하는 일입니다.
  • 본유적 부하는 두뇌가 정보를 LTM에 다시 저장하기 위해 수행하는 노력을 의미합니다.

10.4.2 개발 작업 시 풀이된 예제 활용하기#

동료와의 협업#

  • 첫째, 코드를 혼자 공부할 필요가 없으며 누군가와 함께하는 것이 더 유용합니다.

깃허브 탐구#

소스 코드에 대한 책 또는 블로그 게시물 읽기#


요약#

  • 프로그래밍에 종사하는 많은 사람은 문제 해결이 일반적인 기술이라고 주장하지만, 그렇지 않습니다.
    • 프로그래밍에 대한 사전 지식이 현재 해결 중인 문제와 결합해 프로그래밍 문제를 얼마나 빨리 해결할 수 있는지에 영향을 미칩니다.
  • LTM은 다양한 유형의 기억을 저장하는데, 이들은 문제를 해결할 때 모두 각자 다른 역할을 합니다.
    • 기억의 가장 중요한 두 범주는 암시적 기억과 명시적 기억입니다.
    • 암시적 기억은 아무 생각 없이 실행할 수 있는 작업이며, 명시적 기억은 능동적으로 불러와야 하는 기억입니다.
  • 프로그래밍과 관련된 암시적 기억을 강화하려면 터치 타이핑, 관련 단축키 암기 같은 관련 기술을 자동화하는 것이 가장 효과적입니다.
  • 프로그래밍과 관련된 명시적 기억을 강화하려면 기존 코드, 가급적이면 코드 설계 방법에 대한 설명이 포함된 코드를 연구해야 합니다.
Last updated on