궁극의 코드 카타
본문 출처:『코딩호러가 들려주는 진짜 소프트웨어 개발 이야기』제프 앳우드 지음, 임백준 옮김, pp.98~100
사이언티픽 아메리칸에 실린 전문가의 생각The Expert Mind
출처: http://www.sciam.com/article.cfm?id=the-expert-mind&print=ture
에릭슨은 중요한 것은 경험 그 자체가 아니라 어떤 사람이 현재 가지고 있는 능력을 약간 뛰어넘는 수준의 도전이 끊임없이 부여되고 그에 대응하는 '노력이 담긴 학습'이라고 주장한다. 평범한 사람들이 체스나 골프 혹은 악기를 다루는 일에 수천 시간을 보내고도 아마추어 수준에서 벗어나지 못하는 반면 제대로 훈련을 받은 학생은 상대적으로 짧은 시간 안에 그들의 실력을 뛰어넘는 이유가 여기에 있다. 예컨대 체스를 두는 데 들어가는 시간이, 심지어 토너먼트에 참가해서 두는 시간까지 포함해도, 체계적인 훈련에 비해 그 사람의 체스 실력이 느는 데 큰 영향을 주지 못한다는 사실은 흥미롭다. 그러한 게임에서 훈련의 주된 가치는 미래의 학습을 위해 현재의 약점을 한 단계 끌어올리는 데 있다.
'노력이 담긴 학습'은 현재 능력의 최첨단 끝에 놓인 문제점을 끊임없이 개선하는 것을 의미한다. 현재 시점에서는 제대로 풀어내지 못하는 그런 문제들 말이다. 제대로 하지 못하는 문제를 개선하는 것이 아니라면 실력을 전문적인 수준으로 끌어올릴 수 없다. 그렇기 때문에 그런 문제를 일부러 찾아서 도전하고, 궁극적으로 그런 문제를 편하게 해결할 수 있는 수준으로까지 능력을 끌어올려야 한다.
그런 도전은 때로 회사에서 하는 일 속에서 발견될 수도 있다. 하지만 꼭 그럴 필요는 없다. 훈련을 직업적 활동에서 분리하는 것은 종종 코드 카타Code kata라고 불린다.
미리 정해진 동작을 반복해서 훈련하는 것을 의미하는 카타라는 개념은 무술에서 빌려온 것이다.
코드 카타(노력이 담긴 학습을 실천하고 프로그래밍 기술을 연마하는 방법)에 해당하는 예를 보고 싶다면 스티브가 쓴 글은 탁월한 출발점을 제공한다. 스티브는 그것을 실전 훈련 Practice driills이라고 불렀다.
'10년 동안 프로그래밍 배우기 Teach Yourself Programming in Ten Years'에 정리돼 있는 프로그래밍 학습에 대한 피터 노빅의 일반적인 조언도 좋다.
실용적인 데이브의 21가지 코드 카타를 통해 영감을 얻을 수 있고, 자기가 살고 있는 곳에서 가까운 코딩 도조에 참여할 수도 있다.
제프 앳우드의 코드카타
1 블로그를 시작하라
나는 2004년 무렵에 이 블로그를 학습의 일환으로 시작했다. 그렇게 소박하게 시작했지 만 이 블로그는 얼마 지나지 않아 내 경력에 가장 중요한 일로 자리 잡았다. 따라서 당신 도 블로그를 시작해야 한다. 잘 쓰고 의사소통에 능숙한 사람의 목소리만이 다른 사람에 게 전달되는 법이다. 그런 사람들이 논쟁을 주도한다.
2 몇 가지 주목할 만한 오픈소스 프로젝트에 활발하게 참여하라. 멋지게 이러쿵저러쿵 말하는 것은 다 좋은 일이다. 하지만 당신은 말만 하는 사람인가 아니면 실천도 하는 사람인가? 사람들은 당신의 말이 아니라 행동을 보고 판단하기 때문에 실천하는 것은 대 단히 중요하다. 내가 저것을 만드는 데 도움을 주었지, 라고 말할 수 있을 만한 공적이고, 구체적이며, 유용한 일들에 대한 흔적을 남겨라.
댓글
댓글 쓰기