펠리너 헤르만스(Felienne Hermans)가 인지과학(Cognitive Science) 연구를 바탕으로 프로그래머가 코드를 읽고, 생각하고, 쓰는 과정을 설명한 책이다. "왜 이 코드는 읽기 힘든가"를 개인의 능력 문제가 아니라 기억 체계의 한계로 풀어 준다.
세 가지 기억
코드를 읽을 때 세 가지 인지 과정이 함께 일어난다.
- 장기 기억(Long-Term Memory, LTM): 키워드의 뜻, 알고리즘, 패턴 같은 이미 아는 지식을 꺼낸다
- 단기 기억(Short-Term Memory, STM): 지금 읽은 변수명, 메서드명을 잠깐 붙잡아 둔다. 용량이 아주 작다
- 작업 기억(Working Memory): 실제로 생각하는 곳. "여기 인덱스가 하나 모자라네" 같은 판단이 일어난다
코드가 헷갈리는 이유도 셋으로 나뉜다. 지식 부족(LTM), 정보 부족(STM, 필요한 정보가 다른 파일에 있음), 처리 능력 부족(작업 기억이 넘침).
주요 개념
- 아는 것이 많을수록 코드를 큰 덩어리로 묶어 읽는다 → 청킹과 코드 읽기
- 작업 기억이 처리할 수 있는 양에는 한계가 있고, 코드 표현 방식이 부담을 키우기도 한다 → 인지 부하
- 문법과 개념은 꺼내 보는 연습으로 오래 기억한다 → 인출 연습과 간격 반복
- 이름이 동작과 어긋나면 잘못된 추측을 하게 된다 → 언어적 안티패턴
그 밖의 요지
- 잘못 알고 있는 개념(오개념, Misconception)은 "틀렸다"는 말만으로 고쳐지지 않는다. 새 정신 모델(Mental Model)로 대체해야 하고, 테스트와 문서가 그 역할을 돕는다
- 작업이 중단되면 머릿속 모델을 다시 세우는 데 시간이 든다. 멈출 때는 다음 할 일과 생각을 메모나 주석으로 남긴다
- 새 팀원 온보딩에서는 한 번에 한 가지 활동만 시키고, 추상 개념과 구체적인 예를 함께 준다. 전문가도 낯선 것을 배울 때는 초보자처럼 세부에 묶인다 → 상호 참조 전략
- 터치 타이핑이나 단축키처럼 손에 익는 기술(암묵적 기억, Implicit Memory)을 자동화하면 생각에 쓸 여유가 생긴다
출처: 『프로그래머의 뇌』 펠리너 헤르만스 (원서 The Programmer's Brain)