프로그래머의 뇌 (펠리너 헤르만스 지음)
📍목차
1장 | 코드 더 잘 읽기
1. 코딩 중 겪는 혼란에 대한 이해
2. 신속한 코드 분석
3. 프로그래밍 문법 빠르게 배우기
4. 복잡한 코드를 읽는 방법
2장 | 코드에 대해 생각하기
5. 코드를 더 깊이있게 이해하기
6. 코딩 문제해결을 더 잘하려면
📍요약
✅문제를 표현하는 방법은 문제에 대한 생각에 큰 영향을 미칠 수 있다
예) 고객을 리스트와 집합으로 표현하는 방법이 고객 객체를 저장하고 분석하는 방법에 영향을 줄 수 있다
✅멘탈 모델
- 문제를 생각할 때 형성하는 정신적 표상
- 사람은 서로 경쟁하는 여러개의 정신 모델을 가질 수 있다
✅개념적 기계
- 실제 컴퓨터가 어떻게 기능하는지를 추상적으로 표현한 것
- 기존의 스키마타(기억과 LTM)를 프로그래밍에 적용할 수 있기 때문에 프로그래밍을 이해하는데 도움이 된다.
📍모델을 사용해서 코드에 대해 생각해보기
✅모델 : 실제를 간단하게 표현한 것 (코드뿐만 아니라 모든 영역에서 나타남)
예) 코드를 쉽게 이해하기 위해 상태표 (반복문), 의존 그래프, 개체 관계 도식 (클래스) 등을 활용
📍멘탈 모델(Mental Model)
✅두뇌 내부에서 만든 모델
예) 멘탈 모델로 삼을 수 있는 개념들
- 방향/무방향 그래프 등의 자료구조
- 옵저버 패턴과 같은 디자인 패턴
- MVC 아키텍쳐 패턴
✅멘탈 모델은 LTM에 저장되고, WM에서도 사용된다
📍개념적 기계(Notional Machine)
✅프로그래밍 언어에서 컴퓨터가 코드를 실행하는 방법에 대해 추론할 때 사용하는 모델
- 일반적인 모델과 다르게 프로그래밍 언어에 국한
- 컴퓨터가 무엇을 하고 있는지에 대한 추상적 표현
✅개념적 기계의 4가지 추상화 층위
- 프로그래밍 언어 예) 계산 (변수에 숫자 대입)
- 컴파일러/인터프리터 예) 변수 (값을 담는 박스)
- 가상 머신/바이트 코드 예) 상호 배타적 연산
- 운영체제 예) 스레드 (인간 협업)