나의 노트

워드 커닝햄은 프로그래머를 어떻게 보았는가

이 문서는 워드 커닝햄이 c2.com에 공개한 서문과 후문을 바탕으로, 그가 프로그래머를 어떤 존재로 이해했는지 정리한 메모다.

기준 자료:

한 줄 요약

워드 커닝햄에게 프로그래머는 단순히 코드를 타이핑하는 사람이 아니라, 자기 일의 방식을 성찰하고 개선하며, 경험을 패턴으로 축적하고, 코드로 사고를 검증하고, 작업 환경까지 스스로 통제하려는 사람이다.

1. 프로그래머는 "언어를 말하는 사람"보다 더 큰 존재다

The Pragmatic Programmer 서문에서 커닝햄은 많은 프로그래밍 책이 사실상 "프로그래밍 언어를 말하는 법"만 가르친다고 지적한다. 하지만 그는 그것이 프로그래머가 하는 일의 작은 일부일 뿐이라고 본다.

핵심 생각:

그가 높이 평가한 프로그래머는 작업 중에도 자기 작업 자체를 관찰한다. 회의가 왜 필요한지, 다른 방식으로 대체할 수는 없는지, 자동화할 수는 없는지까지 생각한다. 즉 "프로그래밍을 방해하는 것"처럼 보이는 일도 개선 가능한 대상으로 본다.

정리하면:

2. 프로그래머의 핵심 자산은 도구보다 경험이다

Analysis Patterns 서문에서 커닝햄은 개발 실패의 원인을 도구, 기법, 표기법, 코드 부족에서 찾지 않는다. 오히려 이미 좋은 프로그램을 만들 기계와 수단은 충분히 있으며, 실패의 더 큰 원인은 경험 부족이라고 말한다.

핵심 생각:

그래서 그가 본 좋은 프로그래머는 새로운 문법을 빨리 익히는 사람보다:

에 가깝다.

3. 프로그래머는 코드를 통해 이해를 시험하는 사람이다

Smalltalk Best Practice Patterns 서문에서 커닝햄은 코딩을 "이해의 궁극적 시험"이라고 본다. 무엇을 알고 무엇을 모르는지가 코딩에서 드러난다는 것이다.

핵심 생각:

그는 코드를 읽고 추론하고 반성하라고 말한다. 코드는 자신에게 무엇이 빠졌는지를 알려준다고 본다. 이 관점에서 프로그래머는:

이다.

4. 프로그래밍은 결국 사람의 일이다

같은 서문에서 커닝햄은 "이 책은 코드에 대한 책이지만 사실은 사람에 대한 책"이라고 말하는 방향으로 논의를 끌고 간다. 기계는 사고를 비춰주는 반사체일 뿐이며, 코드는 지금 함께 일하는 사람들과 예전에 생각을 남긴 사람들의 흔적을 담는다고 본다.

핵심 생각:

따라서 그가 생각한 프로그래머는 고립된 천재보다:

에 더 가깝다.

5. 프로그래머는 패턴을 만들고 따르는 사람이다

커닝햄은 여러 서문에서 일관되게 pattern이라는 형식을 중시한다. The Pragmatic Programmer에 대해서도 단순한 팁 모음이 아니라 서로 강화하는 해법들의 체계, 즉 패턴 언어에 가깝다고 평가한다.

핵심 생각:

이 점에서 프로그래머는:

이다.

6. 프로그래머는 자기 환경을 소유하고 통제해야 한다

Kent Beck: Sorted Collection 후문에서 커닝햄은 "플러그를 뽑을 수 없는 컴퓨터는 프로그래밍하지 말라"는 패턴을 이야기한다. 이 말의 핵심은 공포나 기계 혐오가 아니라 ownership and control이다.

핵심 생각:

이 관점에서 프로그래머는 단순한 사용자보다:

이다.

종합

커닝햄의 글들을 종합하면, 그가 생각한 프로그래머는 대략 다음과 같다.

그래서 커닝햄에게 프로그래머란 단순한 "개발 노동자"라기보다, 사고를 코드로 실험하고, 경험을 패턴으로 남기며, 공동체가 재사용할 수 있는 지식을 만드는 실천가에 가깝다.

짧은 해석

워드 커닝햄의 프로그래머관은 세 가지 축으로 압축할 수 있다.

성찰

경험

공유

출처 메모

이 정리는 아래 자료를 직접 읽고 요약한 것이다.