어느 프로그래머의 몰입 경험

Visualization Enables the Programmer to Reduce Cache Mis

A cache miss는 컴퓨터의 캐쉬 영역에 데이타를 쓰거나, 데이타를 읽어올 때 일어나는 에러를 말함. A cache miss refers to a failed attempt to read or write a piece of data in the cache

몰입 상태의 경험에 대해 종종 듣게 되는데 제 페이스북 친구이며 프로그래머인 권기훈님이 자신의 몰입 경험을 페이스북에 올린 걸 허락을 받고 가져 왔습니다. 8, 90년대 어느  유명한 프로그래머 이야기가 생각나네요. 이 사람이 군대를 가게 되었는데 프로그램을 할 환경은 되지 않고 프로그램은 하고 싶고, 그래서 머리 속에 컴퓨터 화면을 띄워 놓고 상상 속에서 컴퓨터 프로그램을 했다고 합니다. 대체로 몰입이 일어나면 시각화(Visualization)도 잘 되는 것 같습니다. 혹은 시각화 능력이 뛰어난 사람일수록 몰입을 잘 하는 특성을 갖고 있든지요.

대흠.

 

먹고, 자고, 숨쉬는 것 이외에 지금 하고 있는 것에 몰입하다 보면 어느새 지금 하고 있는 바로 그 것과 일체감을 느끼는 때가 옵니다. 이 때에는 의식이 믿을 수 없을 정도로 맑아져 자신이 하고 있는 그 것과 관련된 모든 느낌을 온전히 느끼며 믿기지 않을 만큼 대단한 성과를 낼 수 있는 능력을 발휘하게 됩니다.

15년 전 쯤에 프로그램을 만들면서 문득 3만 라인이 넘는 소스코드 전체와 프로그램의 구조가 머리속에 떠오르고 유닉스 터미널 접속 창이 마치 머리속과 같아져 머리속에 떠오르는 것이 그대로 터미널 속 vi 편집기에 옮겨지는 것 같은 신기한 경험을 했었습니다. 그러면서 무언가 복잡하다는 것은 전혀 없이 엄청난 기쁨과 환희가 온몸을 가득 채웠던 경험이 있습니다.

이후로 좀처럼 이런 상태를 다시 경험하기는 어려웠는데… 나이를 먹고 삶의 경험이 쌓이면서 자연히 알게 되었습니다. 다시 그 때와 같은 몰입을 하기에는 생각할 것과 챙겨야 할 것이 너무 많아 졌음을… 다시 그 느낌을 느껴보기 위해 이런 저런 방법들을 써 보았지만 허사였습니다. 몰입을 하는데에는 기교가 중요한 것이 아니라 면면부절 잠시도 끊이지 않고 집중할 수 있는 그 자체가 가장 중요한 것이더군요.

특별하진 않지만, 잘 벼려놓은 칼날처럼 단련되어 있던 기술들이 군대를 갔다 오는 동안 망각 속으로 사라져 녹슬게 되었습니다. 대신 나이를 먹어가면서 이런 저런 경험을 하는동안 더 넓게 볼 수 있게 되고, 근본적인 원인을 볼 수 있는 직관과 통찰을 서서히 얻게 되었습니다. 그 결과로, 15년전 느꼈던 아주 특이한 경험이 무엇이었는지 알게 되고, 그 동안 왜 그 경험을 다시 할 수 없었는지도 알게 되었습니다.

몰입을 하기 위해서는 몰입할 수 있는 환경을 먼저 만들어야 합니다. 본 게임(?)에 들어가기 앞서, 주변 상황들을 정리하여 가장 중요한 단계에 들어 섰을 때 멈추지 않고 질주할 수 있는 준비가 필요합니다. 건강한 몸과 정신, 가족 안에서의 화목과 안정, 등 뒤를 맡길 수 있는 든든한 동료들 내면을 함께 공유할 수 있는 친구들 경제적인 안정과 미래에 대한 낙관이 모든 것들이 다 갖추어진다면 다른 곳에 신경이 분산되지 않으므로 몰입하는데 더할나위 없이 좋은 환경을 만들어 줄 수 있습니다.

그러나 현실에서 이런 것들을 모두 만족할 수 있는 기회는 거의 오지 않습니다. 이루고자 하는 목표에 대한 분명하고 명쾌한 인식과 당위성. 꼭 이루어 내고야 말겠다는 강한 신념과 의지. 반면에, 이 두가지는 주변에 영향받지 않고 온전히 스스로의 힘으로 준비할 수 있는 것입니다. 이루고자 하는 바로 그 것을 자신의 일부로 여기고 그 것을 이루어 가는 동안에는 또 다른 일에 신경을 빼앗기지 말고 밥을 먹을 때에도, 길을 걸을 때에도, 화장실을 갈 때에도 오로지 그것만 생각하고 몰두하며 자신의 일을 스스로 주도적으로 해가다 보면 그 때는 반드시 찾아 옵니다.

 페이스북 원글 링크