글쓰기와 프로그래밍 – 방법론은 있습니까?

이번 겨울계절학기에 ‘논리와 비판적 사고’라는 과목을 수강했다. 무려 3년 반만에 돌아온 학교와 수업들은 녹록치 않았으나 큰 신고식을 치르고 어찌어찌 종강을 했다. (어저께)

이 수업은 상당히 독특하면서 실용적이었는데, 연역논증, 귀납논증 등등의 이론적 내용은 비교적 간단하게 배우고 실제 상황에 적용하는 훈련을 많이 한 것이 인상적이었다. 강의 중반부터 이어진 ‘논리 문제 만들어서 발표하기’, ‘칼포퍼식 토론회’, ‘문제해결적 글쓰기’ 3단 콤보는 지적으로 challenging 하면서도 흥미로운 경험이었다. 생활 속의 논리적, 비판적 사고를 느껴볼 수 있었다고나 할까.

기말 최종 과제는 문제해결적 글쓰기였는데, 토론회에서 다루었던 ‘한반도 대운하’에 대해 입장을 정리하는 것이었다. 나는 토론회 때 (가위바위보 져서) ‘찬성’ 조에 있었기 때문에 글쓰기도 찬성 입장에서 했다. (할 수밖에 없었다.) 글을 쓰는 것도 정해진 기법에 따라서 진행하도록 설계된 과제였는데, 하나의 완성된 글을 이렇게 빨리 써본 적이 없는 것 같다.

논증구조와 개요작성이 너무나도 치밀하게 되어야만 글쓰기로 넘어갈 수 있게 설계되어 있는 글쓰기 프로세스였다. 우선 논증구조에서는 실제 글에 사용할 논증을 논리적 허점이 없도록 3, 4단계까지의 세부논증으로 탄탄하게 구성했다. 이 과정에서 비약이 생기지 않도록 연관관계를 검증하고.. 개요작성에서는 실제 문단의 순서에 맞게 어떤 포인트를 살려서 쓸 것인가를 배치하고 가다듬었다.

이렇게 준비과정이 끝나고 나니 글쓰기는 그냥 차려놓은 밥상에 있는 밥을 주워먹는 것처럼 쉬웠다. 빈칸 채워넣기 같은 느낌?

프로그래밍을 할 때도 설계가 잘 되어 있으면 실제 코딩 작업은 이렇게 빈칸 채워넣기 같은 느낌이 아닐까? 물흐르듯 글이 술술 써지는 느낌을 코딩에서도 느끼기 위해서는 결국 앞의 작업들, 설계와 분석 단계가 중요할 것이라는 생각이 든다. 물론 이러한 생각을 가지고 설계하고 코딩하려는 시도를 했던 적도 더러 있었는데, 별로 성공적인 경험은 아니었다. 돌아보건대 설계와 분석이 미흡했기 때문인 것 같다. 결국 성공했던 경험과 그렇지 못했던 경험 사이의 차이는 방법론이 아니었을까. 어떠한 방법론을 통해 문제에 접근하는가 생각 이상으로 중요하다는 생각을 한다.

  1. 마인드도, 방법론도 없는 상태
  2. 마인드는 있는데 방법론은 없는 상태
  3. 마인드는 없지만 방법론은 있는 상태
  4. 마인드도, 방법론도 있는 상태

나는 그 동안 2번에 천착되어 있었던 것 같다. 항상 새로운 것을 적용하고 보다 효율적으로 해 보고 싶은 마음가짐은 충만했지만, 적절한 방법론을 practice에 옮기고 실행해 보지는 않은 상태. 그러면서 나는 열려 있으니까, 이건 당연히 되는 걸거야, 단지 행동에만 옮기지 않은 것뿐. 이라는 자기 위안을 삼았는 지도.

클래식이라 부르기에 손색이 없는 토마스 쿤의 과학혁명의 구조에서 인상깊게 파악했던 부분이 생각난다. 이론을 보는 것이 아니라 문제를 먼저 풀라는 말. 문제 속에 이론이 있고, 문제를 해결하는 데 도움이 되지 못하는 이론은 쓸모 없는 것이라는 말.

WoC 프로젝트를 통해 새로운 방법론을 가지고 실험을 해 보려고 한다. 멋진 멘토님이 계시니 무언가 되지 않을까 하는 막연한 기분좋은 기대를 해 본다.