요즘에 인기를 끌고 있는 것이 있다면 그 중의 하나는 단연 웰빙(Well-Being)이라고 할 수 있습니다. 웰빙으로 대표되는 것은 천연자연 음식을 먹고, 요가명상을 하고, 신선한 풍경의 시골 마을을 거닐고, 청량한 바람을 맞으며 숲 속에서 산책을 하고, 즐겁고 유익한 독서를 하며, 건전한 운동을 하는 것 등을 포괄합니다. 프로그래머가 웰빙족이 되기 위해서는 마음이 편안해야 하고 몸이 건강해야 합니다. 하루에 10 킬로미터를 걸어 다녀야 몸이 건강하다고 말합니다. 그러나 현실적으로 직장인들이 10킬로를 걸어다닌다는 것은 사실상 불가능에 가깝습니다. 따라서 별도의 시간을 내서 헬스클럽이나 요가명상 수련을 하게 됩니다.
고수 프로그래머가 되기 위해서는 반드시 인내력과 지구력이 갖추어져 있어야 합니다. 얼마나 오랜 시간을 집중력 있게 홀로 고독과 싸우면서 코드와 버그에 대하여 투쟁하느냐에 따라 고수로의 진화냐 아니면 프로그래머 세계에서의 도태냐가 결정됩니다. 고수는 남보다 더 많은 시간을 투자하고 남보다 더 많은 시간을 고독과 싸웁니다. 그리고 많은 인내와 노력을 바칩니다. 물론, 프로그래밍을 제외하고는 광범위한 휴먼 네트워크를 통해서 기술력에 대한 최신 지식과 정보를 얻습니다. 하지만 이러한 고수의 능력과 기질 이외에도 고수가 되기 위해서는 기술력 못지않게 건강해야 합니다. 건강하지 않으면 천하를 그에게 주어도 소용이 없습니다. 무용지물이라는 이야기입니다.
사람에게는 하늘에서 주어지는 복(福)이 있는데, 그 중에서 대표적으로 다섯 가지의 복을 일컬어 오복이라고 합니다. 이 오복에는 첫째, 오래 사는 것, 둘째 건강한 것, 셋째, 돈이 많은 것, 넷째 덕을 쌓아 이름을 남기는 것, 다섯째 죽을 때 편안하게 죽는 것이라고 하였습니다. 물론, 이 다섯 가지 복이 모두 골고루 갖추어야 인생이 편안하고 복이 많다고 할 수 있습니다. 여하튼, 건강은 오복 중에 하나로서 프로그래머를 넘어서서 인생을 살아가는데 있어서 매우 중요한 복이라고 할 수 있습니다.
실제로, 신문기사를 들어보면 어느 프로그래머가 프로그래밍을 오래 작성하다가 과로사로 숨졌다는 소식이 있으며, 프로그래밍에 대한 스트레스 가중으로 병원에 입원하거나 정신과 치료를 받는다는 사람이 있기도 합니다. 그리고 사내에서 직원들 간에 정신적 스트레스가 심하여 불협화음으로 다투기도 하고 싸우기도 한다고 하였습니다. 이 모든 것은 정신의 안정성(Mental Stability)과 정신적 평화(Mental Peace)를 얻지 못했기 때문입니다. 또한 육체적인 피로를 풀지 못해서이기도 합니다. 심신(心身)이 건강하고 튼튼해야지 프로그래밍을 착실하게 오래 할 수 있습니다. 그래서 심신 건강을 북돋아 주는 웰빙이 중요하다는 것입니다.
저는 웰빙 옹호가나 웰빙 신봉자는 아닙니다. 다만, 웰빙을 통해서 나름대로 정신적 육체적 건강을 얻었고 지금도 웰빙족으로 살아가고 있습니다. 제가 그동안 누렸던 복락을 프로그래머들과 함께 나누었으면 하고 이 글을 마련하였습니다. 사실, 고수 프로그래머들은 나름대로 정신적으로나 육체적으로 건전하고 건강합니다. 그들은 자신에게 정신적 육체적 그리고 심지어 금전적으로까지 손해가 되는 일을 하지 않습니다. 피로할 때 즉시 쉴 줄 알고 집중할 때 바짝 긴장감을 갖고 진지하게 프로그래밍하는 것을 압니다. 즉, 시간관리와 자기관리에 충실한 사람이 고수 프로그래머인 것입니다. 고수 프로그래머가 단순히 코딩과 디버깅만 잘한다고 생각하면 오산입니다. 실제로 고수 프로그래머는 훌륭한 코딩과 철저한 디버깅을 위해서 그 기반이 되는 정신과 체력을 튼튼하게 다집니다. 정신의 요소란 프로그래머의 개성이자 성격이라고 할 수 있는데, 고수 프로그래머일수록 다양한 개성과 독특한 개성을 지닙니다. 그들만의 정신세계가 있다는 것이죠.
구지에프라는 명상가가 발견했다는 애니어그램에는 인간의 성질과 성격에 대해서 9가지로 구분합니다. 그 9가지 인간의 성질과 성격에는 첫째, 개혁적인 성향, 둘째 남을 돕고자하는 성향, 셋째, 성취를 원하는 사람, 넷째, 개인주의적인 사람, 다섯째, 탐구적인 사람, 여섯째, 충실한 사람, 일곱째, 열정적인 사람, 여덟 번째 도전하는 사람, 그리고 마지막으로 아홉 번째로 평화주의적인 사람이 있습니다.
고수 프로그래머는 다종다양한 인간의 정신적 양상들을 고르게 갖추고 있는 프로그래머입니다. 즉, 항상 새롭게 온고지신하려는 개혁적인 마인드를 갖추기도 하고 끊임없이 프로그램을 진화시켜 나가려는 마인드를 가진 사람이기도 합니다. 날마다 새롭고 또 나날이 새롭고 그리고 다시 또 새로워지라 탕왕의 가르침처럼 날마다 변화할 필요가 있습니다. 빌게이츠 자신도 변화에 거부하지 않고 변화에 순응했기 때문에 지금의 자신이 있을 수 있다고 하였습니다. 개혁과 변화는 함께 길을 가는 벗과 같습니다. 그리고 남을 돕고자 하는 마음이 중요합니다. 고수 프로그래머는 자신이 배운 지식과 지혜를 아끼지 않고 남에게 나누어주려고 노력합니다. 고수 프로그래머는 남을 도움으로써 그 마음으로부터 즐거움을 얻습니다. 물론 저작권법에 위배되지 않고 회사의 지적 소유권에 피해를 주지 않는 한도에서 최대한으로 남을 돕고자 하는 정신이 고수 프로그래머에게 있다는 것입니다. 그리고 고수 프로그래머는 성취를 원합니다. 즉, 좀더 발전하고 진화하기 위해서 끊임없이 고군분투하는 것이 고수 프로그래머라고 할 수 있습니다. 프로그램을 완성함으로써 얻는 성취감은 프로그래머가 아니면 알 수 없는 희열이요 환희입니다. 또한 고수 프로그래머는 어떤 면에서 매우 개인주의적입니다. 어찌 보면 자신만 아는 사람으로 비추어 질수도 있습니다. 하지만, 이러한 개인주의는 공동체 발전에 도움을 주고 이바지하는 개인주의이지 단순히 혼자만 잘 살겠다는 이기주의가 아니라는 점에 주목해야할 것입니다. 자신의 발전을 위해서 온힘을 쏟는 정신이 바로 개인주의의 발로라고 할 수 있습니다. 자신이 발전하고 많이 배우고 기술력이 출중해야 남을 도울 수 있다는 사실을 알아야 합니다. 자신이 부족하고 가진 것이 없으면 남을 돕는 것은 사실상 어렵고 불가능해 집니다. 즉, 고수 프로그래머가 되기 위해서는 악착같이 먼저 개인을 중심으로 기술적 지식과 지혜를 연마하고 축적하도록 노력해야 합니다. 끊임없는 배움이라는 가르침을 얻는데 적지 않은 도움이 되는 것은 개인주의적 성향이나 기질과 남을 돕고자 하는 성향이 결합되었을 때라고 할 수 있습니다.
애니어그램에서 제시하는 9가지 인간의 성격 모두가 골고루 아우러졌을 때 고수 프로그래머의 적합한 정신적 기질을 얻을 수 있다고 할 수 있습니다. 다른 인간의 성격들을 지니지 않은 채 어느 한가지의 성격만 특출 나서는 고수 프로그래머가 되기는 어렵지 않나 생각합니다. 오복(五福)이 모두 골고루 갖추어져야 인간에게 행복이 있고 가치가 있는 것처럼, 에니어그램(Enneagram)에서 제시하는 9가지 인간의 성격 모두가 골고루 갖추어져 있을 때 프로그래머는 고수 프로그래머로 도약할 수 있다고 할 수 있습니다.
또한, 고수 프로그래머는 치열한 탐구적인 정신으로 무장되어 있습니다. 고수 프로그래머는 쉽게 포기하지 않으며 항상 연구하는 자세를 갖습니다. 컴퓨터 프로그램에 대해서 뿐만 아니라 하드웨어에 대해서도 그리고 일반 사사물물에 대해서 치밀하게 사색하고 연구하는 성향을 지닌 것이 고수 프로그래머라고 할 수 있습니다. 코딩과 디버깅을 통해서 프로그램을 개발해 감으로써 프로그램이라는 사물의 이치를 심오하게 탐구해 나갈 수 있습니다. 이러한 탐구정신은 바로 장인정신과 일맥상통합니다. 그리고 고수 프로그래머는 자신에게 맡은 일에 충실한 사람입니다. 물론 반드시 맡은 바에 책임을 지니어야 한다는 구속적인 의미는 아닙니다. 자유정신에 입각하여 누가 뭐라고 해도 시키는 일에서부터 시작하여 알아서 해야 할 일을 모두 충실하게 하는 프로그래머를 고수 프로그래머라고 말합니다. 또한 고수 프로그래머는 열정적인 사람입니다. 고수는 히딩크 감독이 말한 것처럼, 스티븐 잡스 회장이 스탠포드 대학 강연의 연설문 마지막 인용구에서 말한 것처럼 항상 배고파야 합니다. 고수 프로그래머가 되기 위해서는 만족하지 않고 불같이 타오르는 끊임없는 열정이 필요합니다. 이러한 열정이 바로 프로그램을 장기간 작성할 수 있도록 하는 원인이 되며 많은 량의 프로그램 코드를 창출해 내도록 해 줍니다. 열정이 없다면 일의 성취도도 낮을 것이며 매사에 태만하고 나태해 보일 수 있습니다. 고수 프로그래머는 부지런합니다. 근면하다고 할 수 있습니다. 그리고 고수 프로그래머는 도전적입니다. 한 가지 문제가 생기면 그 문제를 해결하기 위해서 도전합니다. 도전 정신은 고수 프로그래머에게 있어서 매우 중요한 정신이기도 합니다. 산을 넘어봐야 기술을 얻을 수 있다고 어느 고수 엔지니어가 말한 것처럼, 고수는 험하고 높은 산을 넘으려는 도전정신이 가슴과 머리에 갖추어져 있어야 합니다. 산을 넘지 않고서는 결코 기술력을 얻는다는 것은 요원한 일입니다. 마지막으로 에니어그램(Enneagram)의 지혜에 따르면 고수 프로그래머는 평화주의적인 사람입니다. 고수 프로그래머는 남과 싸우거나 남과 갈등을 일으키려고 하지 않습니다. 그리고 고수 프로그래머는 남을 적으로 만들지 않습니다. 고수 프로그래머는 남이 자신에게 도움을 주는 존재요 배움을 가르쳐 주는 존재로 인식하기 때문입니다. 익은 벼가 먼저 고개를 숙이는 것처럼 고수 프로그래머일수록 고개를 숙이고 더 많은 것을 배우려고 노력합니다. 고수 프로그래머는 겸허하고 겸양하며 겸손합니다. 즉, 고수 프로그래머는 외적인 투쟁이 아니라 내적인 투쟁을 통해서 마음속의 적들을 물리치며 세상의 평화를 가져다주는 사람입니다. 이러한 정신에는 자유를 사랑하고 평화를 염원하는 정의롭고 사랑스러운 마인드가 고수 프로그래머에게 구비되어 있다고 할 수 있습니다.
웰빙족 프로그래머란 바로 이러한 에니어그램(Enneagram)에서 제시한 9가지 인간의 성격을 모두 갖추어 고수 프로그래머로 나아가는 프로그래머를 의미합니다. 이를 위해서는 건전한 사유와 올바른 사유가 필요하고 항상 남들의 의식세계를 배우고 얻으려는 노력이 필요합니다. 그리하여 자신의 의식을 확장시키고 남들의 의식들을 종합시키고 통합시켜 나갈 때 고수 프로그래머로 성장하는 것이라 할 수 있습니다. 일례로, 프로그래밍 세계에는 팁(Tip)이라는 것이 있습니다. 팁(Tip)은 요령, 꾀, 방법이라고도 하며 일종의 프로그래밍 노하우입니다. 이러한 팁 하나하나는 프로그래머의 의식을 반영해 줍니다. 따라서 다양한 팁과 노하우를 축적하는 것은 다양한 프로그래머들의 의식을 경험하고 배울 수 있게 해 줍니다. 물론, 이를 위해서는 다양한 고수 프로그래머들이 작성한 코드들을 많이 대면하고 반복해서 읽고 응용하여 자신의 코드 속에 통합시켜 넣으려는 시도에 힘을 쏟아야 할 것입니다.
사람들은 최근 육체적인 건강을 위해서 요즘 요가와 헬스를 많이 하는데, 요가 동작을 보면 다양한 동작을 시행합니다. 그리고 헬스도 한 가지 기구로만 운동하지 않고 다양한 기구를 사용해서 운동을 합니다. 이와 같이 다양한 동작과 다양한 기구를 이용하는 것은 인간의 인체 구조의 다양한 부분을 운동시키기 위함이라 할 수 있습니다. 즉, 요가나 헬스 등 모든 운동은 무술까지 포함해서 인간의 인체구조 전체를 골고루 활성화시키고 이완시키도록 함으로써 혈액순환을 돕고 신체적 불균형을 치유하여 신체의 균형과 조화를 이루도록 해 줍니다.
웰빙족 프로그래머는 이와 같은 다양한 육체적 동작과 운동을 통해서 다양한 인체 부위를 적극적으로 활성화하여 몸의 건강을 유지하는 동시에 앞에서 제시한 에니어그램(Enneagram)의 9가지 인간 성격을 모두 자신의 의식세계에 통합함으로써 다양한 성격과 의식을 갖춤으로써 고수 프로그래머로 도약함을 목적으로 하고 있습니다. 운동에서도 자신이 좋아하는 운동이 있고 요가체조에서도 자신이 좋아하는 체조자세가 있는 것처럼, 9가지 인간 성격에서도 자신에게 맞는 성격이 하나 정도가 눈에 띨 것입니다. 그것은 바로 인간의 고유성과 개체성을 구별 짓게 하는 것으로 다양한 고수 프로그래머들 마다 독특한 성향이 있는 것은 바로 그 때문이라 할 수 있습니다. 즉, 신체적으로 활성화되고 균형을 이루는 부분이 각기 다를 수 있고 정신적으로 9가지 대표적인 성격이 각기 다른 배율로 분포되어 있을 수 있으므로 모든 프로그래머가 동일한 체력과 동일한 정신력을 갖추는 것은 아니라고 할 수 있습니다.
웰빙족 프로그래머는 요가, 헬스, 명상, 무술 등을 통해서 자신의 신체와 정신을 단련하고 이를 통해서 신체의 균형과 조화를 도모하고 더 나아가 에니어그램(Enneagram)에서 제시하는 정신의 9가지 성격을 모두 증득하도록 하는데 초점을 두어야 할 것입니다. 이렇게 웰빙족 프로그래머가 되면 자연스럽게 고수 프로그래머의 길로 다가서게 됩니다. 물론, 프로그래밍 기술력이 고수 프로그래머를 판가름하는 매우 중요한 기준이기도 합니다. 하지만, 그 기술력의 기초에는 프로그래머의 체력과 정신력이 있다는 사실을 명심해야 합니다. 체력과 정신력이 약해서는 고수 프로그래머는 요원한 일이 될 것이니까 말입니다.
정신의 다양성, 즉, 다양한 정신세계를 증득하기 위해서는 고수들이 작성한 다양한 기술서를 포함한 서적들과 다양한 코드를 읽어야 할 것입니다. 그리고 그들의 정신세계를 분석하고 분해하여 자신의 글이나 코드 속에 통합시켜 나가야 합니다. 이러한 과정 속에서 에니어그램(Enneagram)에서 제시한 다양한 인간의 특질을 이해하게 되기도 합니다. 하지만, 가장 중요한 것은 자신의 본성(Real Self)을 찾아 심층적 자아를 참구해 나가는데 있습니다. 자신의 내면에 존재하는 참된 본성 속에는 이 모든 9가지 특질이 합쳐서 통합되어 있다고 할 수 있습니다. 따라서 웰빙으로서의 명상(Meditation)은 이를 위해서 매우 좋은 수련도구라고 할 수 있습니다.
요가, 헬스, 명상, 무술 등을 통해서 심신의 건강을 이루고 다양한 정신적 기질을 기르고 고수 프로그래머들과 가까이 지냄으로써 그들로부터 영감과 지적 통찰력을 얻으면 고수 프로그래머는 요원한 일은 아닐 것입니다. 세상은 다양한 요소로 구성되어 있기 때문에 세상을 이해하는 다양한 시각이 존재하고 또한 다양한 정신요소가 존재합니다. 이러한 다양한 정신요소가 바로 구지예프의 에니어그램(Enneagram)에서 말하는 9가지 인간의 성질을 결정한다고 할 수 있습니다. 그리고 이러한 9가지 인간의 성질은 고수 프로그래머들과의 만남과 그들이 작성한 책들과 코드를 통해서 얻을 수 있습니다. 결론적으로, 고수 프로그래머가 되기 위해서는 웰빙족 프로그래머가 될 필요가 있으며, 이를 위해서는 심신 수련을 열심히 하여 몸의 균형과 조화를 이루고 정신의 안정성과 평화를 얻으며 동시에 에니어그램(Enneagram)에서 말한 9가지 인간 성질을 증득해야 할 것입니다. 그리고 이 고수 프로그래머의 길은 필자의 졸고 현자의 코드(Philosopher's Code)에서 이야기한 바와 같이 참된 본성을 찾아 나가는 프로그래머만의 구도의 길이기도 합니다. ■
참고문헌
1. 에니어그램(Enneagram)의 지혜, 돈 리처드 리소, 러스 허드슨/주혜명 옮김, 한문화
2. 프로그래머의 길, 신영호 저, 홍릉과학출판사
3. 현자의 코드(Philosopher's Code), 신영호 저.