들어가는 글: 설 연휴때 좋은 책을 만났습니다 :-)
이 책은 프로그래머의 인지 부하에 대해 다룹니다. 뇌에는 LTM(장기 기억), STM(단기 기억) 과 작업 기억 공간이 있으며 코딩을 할 때 어느 부분을 어떻게 활용하게 되는지 알려줍니다.
탄탄한 연구결과를 기반으로 하여 흥미로웠습니다. 현직 프로그래머라면 꼭 읽어보세요.
제가 이 책의 내용에 흥미를 느끼게 된 것은 몇 가지 현실적인 상황에 있기 때문입니다.
1. 부서 이동으로 작년 6월부터 주언어가 변경됨 (java -> C++)
2. 6개월간 업무를 했는데 C++ 능력이 생각보다 늘지 않음. 즉, 자바처럼 편한 상태가 아님.
3. 올해는 C++을 더 잘해야 겠다는 생각이 들었음.
4. 그외 (프로그래밍을 더 잘할 수 있는 팁)을 얻을 수 있을까하는 흥미 등
이 책을 이해하는데 필요한 핵심적인 단어들은 다음과 같습니다.
1) 뇌의 LTM, STM 과 작업 기억 공간의 제한성
2) 인지 부하(cognitive load)
3) 청킹(chunking)
4) 플래시 카드(flash card)
5) 프로그래밍 전문가 vs 초보자
6) 정신 모델(mental model)
7) 긍정적 전이(positive trasfer)
8) 설명이 포함된 예시(worked example)
9) 본유적 부하(germane load)
10) 자동화(automatization)
위의 핵심 단어들을 설명해주는 문장들을 인용합니다.
"개념, 자료 구조, 문법을 더 많이 알 수록 두뇌는 더 많은 코드를 쉽게 분리하고 기억하고 처리할 수 있다(37p)"
"자동화는 걷기, 독서, 신발 끈 묶기와 같이 어떤 기술을 여러 번 연습한 후에 아무 생각없이 할 수 있을 정도를 말한다(180p)"
"검색 이전에 먼저 그것을 능동적이고 의도적으로 기억하려고 시도해보기 바란다(47p)"
"새로운 프로그래밍 언어를 배울 때는 이전의 프로그래밍 언어에 대한 기존의 지식을 떨쳐내는데 많은 에너지를 소비해야 한다(129p)"
"전문가들은 새로운 해결책을 찾는 대신에 이전에 유사한 문제에 효과가 있었던 해결책에 의존한다(179p)"
"의도적 연습이란 매우 단순하고 쉬운 작업을 완벽에 도달할 때까지 반복적으로 실행하는 것이다(185p)"
"본유적 부하는 두뇌가 정보를 LTM에 다시 저장하기 위해 수행하는 노력을 말한다(188p)"
이제야 이해가 되었다. 새로운 언어인 C++을 잘하기 위해서는 과거 자바를 열심히 공부했을 때처럼 (자동적으로 나올때 까지) 다시 수련해야 하는 것이었다.
이 책이 뼈때렸다.
"검색하여 아는건 아는것이 아니란다 T_T"
앞으로는 C++의 초보자라고 생각하고 처음부터 단단하게 기초부터 다져야겠다.
마지막으로 한문장 더 인용합니다.
"특정 프로그래밍 기술을 습득하더라도 그러한 기술은 다른 인지 영역으로 전이되지 않는 것으로 나타났다(126p)"
> 프로그래머가 전공 기술만 너무 파서는 안되고 적당한 시점에서는 인생에 필요한 지식과 기술들을 두루두루 (예, 외국어, 경제와 재테크 등) 배워야 하는 이유.
감사합니다.
2022.2.6