본문 바로가기

잡담

프로그래밍을 다른 사람들과 공유한다는 것

얼마 전 한 블로그에서 이런 글을 보았다.

개발자들은 저주 받았습니다. 자기 일하는 것을 주변의 다른 사람들(개발을모르는)과 공유하지 못합니다. 아버지 어머니는 도대체 내 딸이 무슨 일을 하는지 모릅니다. 저는 이 벽을 넘어서 보고 싶습니다.내가 평소 하는 일을 조금이라도 다른 사람들과 공유할 수 있기를 기대합니다.

제가 해보고 싶은 것은, 바로 컴퓨터프로그래밍을 아는 사람과 모르는 사람이 함께 섞여서 서로 학습하고 또 즐거운 시간을 보내는 겁니다. 그 사람들이 모여서 정치이야기나 탤런트 스캔들 이야기, 혹은 유치한 게임 외에 도대체 뭘 같이 할 수 있을지 상상하기도 힘들죠? 저는 확신을 갖고있습니다. 이것은 가능하며, 엄청나게 재미있고 유익하며 모두에게 큰 계발을 줄 것이라는 것을. 예를 들면 소프트웨어 전문가들,하드웨어 전문가들, 예술가들, 일반인들이 섞여서 2박 3일간 같이 미디어 아트를 배우고 실험하고 협력해서 뭔가 만드는 걸 할수도 있겠죠. 여기에 대해서는 뭔가 작당하고 있는 것이 있습니다. 차후에 성과가 있으면 공유하도록 하겠습니다.

by 김창준, from Agile blog

정말 공감가는 내용이다. 지난 주 같은 기숙사동에 사는 친구들과 밥 사먹으러 나가면서 했던 얘기 중에, 다른 과 아이들에 비해서 특히 전산과 다니는 사람들은 전공에 관한 얘기를 많이 하는 것 같고, 그럴 때마다 다른 과 사람들은 대화에 참여하기가 힘들어진다는 것이었다.

사실, 물리·수학·생물·화학 같은 것만 해도, 기본적으로 과학고를 나오고 1학년 공통 기초과목들을 제대로 들었다면 학부생 수준에서는 대략 말이 통하게 마련이다. 그런데 유독 전산―그러니까 프로그래밍―쪽은 그렇질 못하다. 물론 기초과목으로 Java를 가르치는 '프로그래밍 기초'가 있긴 하지만, 프로그래밍이라는 것 자체가 어렸을 때부터 공부해왔던 '교과목'들과는 많이 다른 성격을 띠기 때문이다. 프로그래밍 문법을 익히거나 컴퓨터의 역사를 배우는 것은 정말 그런 교과목을 익히는 방식으로 가능할 지 모르겠지만, 실제로 전공 이상의 수준에서 프로그래밍을 다룰 때는 그런 것들과 그에 대한 공부 방식은 거의 도움이 되지 않는다. 몇 가지 기본적인 룰 안에서 고차원적 문제를 해결하기 위한 알고리즘을 생각해내는 것이라든가, 코딩 과정에서 발생하는 수많은 삽질과 디버깅, 경험에서 우러나오는, 마치 인간 라이브러리인 양 갑작스레 툭툭 튀어나오는 geek스런 답변들…. 조금이라도 이런 것이 대화에 끼어들게 되면 비전산전공자(..)들은 마치 안드로메다 관광열차를 타는 듯한 느낌을 받는다(고 한다 -_-).

그나마 비교적 균질하다는 같은 KAIST 학생들끼리도 그러할진데, 하물며 같은 과학이나 공학 분야를 전공하지 않은 부모님이나 친척, 다른 학교/과에 다니는 친구들, 다른 직업을 가진 사람들은 어떠하겠는가? 그래도 나같은 경우는 부모님과 대화를 많이 하는 편이라 어렸을 때부터 계속 관심사의 변화를 서로 추적·공유해왔기 때문에 전문적인 내용은 몰라도 대충 서로 뭘 하고 있다는 것 정도는 이해하지만, 같은 전산 전공 친구들도 보면 '공부'는 꼭 책상에 앉아서 책펴고 하는 것이라는 생각에 집에서 컴퓨터를 못하게 한다거나 하는 경우를 볼 수 있었다. 아마도 현재 개발자라는 직업을 가진 분들 중 다수가 어린 시절 이런 경험을 하셨으리라 짐작한다. 요즘은 많이 바뀌었지만 대신 '그런 3D 업종을 누가 하냐'라는 이야기가 많아진 듯하다.

프로그래밍이라는 그 자체를 들여다보면 매우 재미있는 활동이다. 칙센트미하이 교수가 쓴 『Flow』라는 책에서 말하는 '플로우' 상태에 빠기지 딱 좋은 예가 바로 프로그래밍이다. 다만 개발자가 3D 업종이 되는 건 그러한 플로우 상태를 방해하는 외적 요인(흔히 말하는 갑을병정 관계 같은 것들)이 프로그래밍의 자기목적성을 해치기 때문이다. 어쨌든, 끊임없이 눈앞의 작은 목표(기능·함수 단위의 구현 따위)를 두고 제대로 실행되었을 때의 적절한 피드백 타이밍 등은 플로우의 조건으로써 충분하다. 물론, 수학이나 물리학 같은 다른 이공계 과목들에서도 충분히 이런 플로우는 가능하다. 문제는, 전산 전공자가 다른 학문에서의 플로우 상태를 이해하거나 경험하기는 비교적 쉬운데, 반대의 경우는 힘들다는 것이다. 왜 그런 것일까?

내가 생각하건대 다양한 원인 중에서 하나를 꼽자면 교육의 문제라고 볼 수 있을 것이다. 주변에서 '전산 잘 하는 애들 보면 머리가 굉장히 좋은 것 같애'라는 말을 심심찮게 들었는데, 그렇게 말하는 사람들의 생각을 가만히 따져보면 스스로 터득해온 과정을 놀라워하는 경향이 있다. 대체로 중고등학교 무렵에 프로그래밍을 잘 하는 사람들은 거의 독학이기 때문이다. 나도 체계적으로 전산 지식을 배운 건 대학 와서이지 그 전엔 고등학교 때 C++을 거의 문법 수준으로만 배운 게 전부였다. 하지만 프로그래밍 자체는 초등학교 때 이미 시작했다. (물론 올림피아드 준비 등으로 학원에 다니거나 집중 훈련을 별도로 하는 경우도 있다.)

사람들은 왜 그 과정을 놀라워할까? 프로그래밍을 책만 보고 공부하는 건 마치 피아니스트가 악보만 읽고 곡을 끝내는 것과 같다. 실질적인 스스로의 노력과 의지에 의한 연습 과정(우리 식으로 말하면 삽질-_-)이 많이 필요하다. 적어도 대학 입학 전까지의 다른 분야들은 그러한 삽질 없이 외부 의지(부모님의 압박이나 학원의 압박 등)로 때워지(는 것처럼 보이)고, 그렇게 공부해왔던 사람들에겐 그 누구한테도 배우지 않고 혼자 그 복잡한 프로그래밍을 터득해가는 과정이 신기해보일지도 모르겠다. 하지만 다른 분야들도 프로그래밍을 공부하는 것과 같은 방식으로 이루어지는 것이 궁극적으로 가장 바람직한 방향일 것이다. 그만큼 응용력과 창의력이 높아질 수 있다.

한편, 프로그래밍을 하는 사람들에게 발생하는 문제점도 있는데, 바로 인간 관계와 사회성의 결여다. 보통 학생 시기에 프로그래밍을 독학하는 사람이 자료를 얻는 출처는 거의 90% 이상이 인터넷 커뮤니티나 각종 레퍼런스 사이트다. 그러다보니 아무래도 온라인 상의 활동에 치중하게 되고, 독학의 특성 상 누군가 옆에서 체계적으로 지도해주지 않기 때문에 한쪽으로 치우친 성향을 갖기 쉽다. 글로 대화하는 능력은 뛰어난데 실제 얼굴을 마주보고 대화하는 능력이 점점 떨어지고, 점점 더 논리적으로만 소통하려고 하게 된다. 이것은 주변인들이 '재미없는 사람'으로 인식하게 되는 가장 큰 요인이다. 또한 플로우에 쉽게 빠지는 만큼, 운동이나 친구들과의 놀이 등 다른 사회적 활동에 소홀하게 되는 경우가 많고, 사람마다 다르긴 하지만 일반적으로 학과 성적은 떨어지는 경향이 나타나기 때문에 부모들과의 관계도 나빠진다.

동아리 프로젝트도 해보는 등 여러 사람들과 함께 프로그램을 짜면서부터, (나를 포함해) 사람들이 능력이 안 되어서가 아니라, 순전히 의사소통 방법의 미숙함에서 오는 문제가 굉장히(사실은 거의 다) 많다는 것을 깨달을 수 있었다. 같은 프로그래밍을 하는 사람들끼리도 발생하는 문제인데 다른 사람들과 대화할 때는 더욱 심한 것이 당연한 것이다. 뭐랄까, 이런 면에서 생각해본다면 프로그래머와 일반인들 사이의 가교를 놓아줄 수 있는 사람이 필요할 것 같다는 생각마저 든다. (최근의 신생 직업 중 하나인 Web Publisher도 개발자와 디자이너 사이의 아교 역할을 하는 것처럼.)

결론적으로 창의성을 기를 수 있는 스스로의 의지와 노력에 의한 공부, 그 과정에서 지나치게 불필요한 삽질을 막아주는 적절한 지도자가 있다면 다른 학문을 배우는 것이 프로그래밍을 배우는 것과 보다 유사해질 것이고, 전산 전공자들과 타 전공자들 사이의 간극을 좁히는 데 도움이 될 것이다. 또한 프로그래밍을 독학한 사람들에게서 나타나는 사회성 부족을 채우기 위해서도 절제력을 길러줄 수 있는 지도가 필요할 것이다. 이와 함께 발전적인 토론과 전문 지식의 의사소통 방법도 체계적인 교육이 꼭 필요하다. (물론 이것만이 전부는 아니겠지만, 프로그래머의 긍정적 geek스러움이라는 것의 원천이 어디서 나왔는지, 또 반대로 프로그래머는부정적 의미의 geek스러움에서 벗어나기 위해서 어찌해야 할 지 서로 이해하는 데 도움을 줄 것이다) 현재까지 내가 보고 듣고 느낀 교육과정이 양쪽에게 모두 심각한 문제가 있다. 이런 문제들이 지금 우리가 느끼는 프로그래머와 일반인들 사이의 괴리감·이질감을 발생시킨 여러 원인들 중 하나다.

다시 처음 이야기로 돌아와서, 대안언어 축제와 그와 비슷한 행사들을 통해 전산 전공자와 비전공자 사이들이 함께 뭔가 창조적인 활동을 하게 하고 싶다는 김창준 님의 그 글은, 지금의 다소간 답답한 상황을 풀어줄 수 있는 아주 긍정적인 시도로 평가하고 싶다. 비록 근본적으로 사람들의 인식을 바꿔놓기는 어렵지만(위에서 언급한 교육의 문제 해결은 아니므로), 그런 활동에 참여하는 프로그래머나 다른 분야 사람들 모두 새롭고 놀라운 경험이 되리라 믿는다.

덧붙여, 내가 미래에 하고 싶은 일이 바로 그런 융합이다. 단순히 프로그래밍 혹은 전산 분야만 하기보다는, 전혀 다른 분야의 사람들과 협력하여 창조적인 일을 해보는 것이다. 프로그래밍 그 자체도 무척이나 매력 있는 활동이지만, 그보다는 내가 가진 다양한 재능과 관심―피아노 연주, 작곡·편곡, 그림 그리기, 디자인, 생물학, 신경과학 및 인지과학, 물리학과 천문학, 로봇공학과 기계공학 등―들을 하나도 남김없이 충분히 활용하고 싶다. 내가 가진 전산학과 프로그래밍에 대한 지식과 기술들은 그런 활동을 하는 데 기초가 되어줄 수 있을 테고, 그동안 살면서 지속적으로 다른 분야에 관심을 가져왔던 것은 아교 역할을 해낼 수 있을 것이다.
  • 트롤 2006.10.07 03:26

    좋은 글 잘 읽었다.

  • 건더기 2006.10.07 10:08

    저는 회계학과 학생인데도...
    왜 이 글을 읽으면서 이리도 찔릴까요....ㅡㅡ;;

    (그래요... 제가 가장 좋아하는 수업은 무려 '조별 P.T.'있는 강의라고요...ㅡㅡ;;
    슬라이드 한 장당 내용이 무조건 3줄을 넘지않는... 흠냐리...ㅡㅡ;;;;)

  • 진실's 2006.10.07 13:44

    좋은 글이야. 긴 글이야.ㅋㅋ
    근데 SP하다가 기분 전환용으로 읽기에는 전혀 도움이 안되는구나. ;ㅁ;

  • polarnara 2006.10.07 14:35

    확실히 전산쪽은 비전공자들에겐 진입장벽이 높게 느껴지는 것 같아요. '교양과학'이라는 말은 있어도 '교양전산'이라는 말은 없듯이.
    학문을 공부하면서 학문을 '융합한다'는 것, 저도 역시 굉장히 재미있는 일이라고 생각해요. 자기가 배웠던 이쪽의 지식이 전혀 상관없어 보이는 저쪽의 지식과 연관된다는 걸 포착하고, 그걸 토대로 또 수많은 다른 지식들하고도 연관지어가면서 나중에는 오히려 그 두 가지가 따로 떨어져서는 안될 것처럼 느껴지지까지 하구요. Daybreaker님이 다른 분야 사람들과 함께 일하면서 그들에게 도움을 줄 수 있고, 역으로 그들에게서 새로운 것들을 얻을 수도 있을거예요 :-)

    • daybreaker 2006.10.07 21:41 신고

      진입장벽이 높게 느껴지는 건, 전산을 전공하는 사람들은 다른 사람들이 공부하는 걸 (잘 하든 못 하든 어쨌든 간에) 같이 배우지만, 그 다른 사람들은 전산을 제대로 다루어볼 기회가 전혀 없기 때문이겠죠.
      학문 융합의 시대니 어쩌니 하는 소리도 많이들 하고 있던데, 요즘 들어서 문화기술대학원은 어떨까 하는 생각마저 들고 있습니다. -_-;;;

  • MSerenity 2006.10.07 23:02

    좋은 글 잘 읽었어요 :-) 확실히 그런 면이 있다고 봐요. 고등학교때 프로그래밍을 잘하는 형이 하나 있었는데, 그 형은 사실 쉬운거라면서 설명을 하는데 전혀 쉽지가 않더라고요. 그래서 농담하나 -_- 하는 생각도 했답니다. 하지만 비슷한 것을 여러번 짜보니까 정말 쉬운거였더라고요;;; 전산은 경험이 절대적으로 필요한 학문이라 전공자와 역시 이야기가 잘 통하질 않아요. 전산 전공자가 다른 쪽으로 접근하는 방법도 필요하겠지만 역시 전 비전공자들이 좀 더 전산에 접해볼 필요도 있다고 생각해요 ^^

    • daybreaker 2006.10.08 19:52 신고

      경험의 차이가 크죠. 삽질을 얼마나 해봤느냐에 따라 내공이 달라지니까..-_-; 전산 고유의 특성이 좀 있는 것 같기도 합니다.
      음.. 근데 저랑 반말해도 되는 사이 아니었던가...요?;;;

  • MrGeek 2006.10.08 14:59

    저도 실력은 미숙하지만
    고등학교 동아리내에서 선배로서 후배들을 가르치는 입장이 되어
    자주는 아니더라도 주당 한번꼴은 교육을 합니다.

    저같은 애송이도 쉽게 착각을 하더군요
    "이 아이들은 기본적으로 IF-ELSE같은 조건문은 '쉬우니까' 금방 건너 뛰겠고
    C#은 정말 1달 정도면 익힐 수 있지 않을까?" 라고 말이지요.

    그러나 실제로 해보니 IF-ELSE의 개념만 이해시키는데도
    큰 노력이 필요함을 느낄 수 있었습니다.
    C#은 커녕 C 문법 조차도 전혀 이해를 못하더군요.

    자신도 모르는 사이에 자신이 처음 이 분야를 접했을 때 느꼈던 난해함을 잊어가는것 같습니다.

    저도 분명 MSL을 하다가 C, C++을 접했을 땐
    남산타워에 처음 올라가 본 아마존 원주민 꼴이었을 텐데 말이지요.
    * 그나저나 제 블로그에도 자주 들러주시면 감사하겠습니다 ;ㅁ;..
    (재미없는 글들 투성이지만 말이지요;;)

    • daybreaker 2006.10.08 19:54 신고

      어쩌면 Esoteric Programming Language라는 것들이 전공자들에게 올챙이적 시절을 일깨워주기 위한 것일지도 모릅니다. =3==3

      그리고 MrGeek 님 블로그에 있는 배경음악을 끌 수 있도록 바꿔주시면 좋겠..;

  • Mastojun 2006.10.09 01:54

    좋은글 읽고 갑니다 :D

  • CN 2006.10.09 15:15

    MrGeek옹의 얘기가 나와서 말인데 한마디 하자면.. 사실 반복과 제어는 어려운 개념입니다. 이 두개의 개념을 이해시키기가 가장 어렵더군요. 어린애들에게 클래스를 가르치는 일이 반복과 제어를 가르치는 일보다 쉽습니다. =3==3

  • Ego君 2006.10.15 22:36

    좋은 글 읽고 갑니다. 시험 끝나고 나서 트랙백 할 계획입니다:D
    저도 입학해서 친구들이 다 컴퓨터공학쪽보다 산업공학쪽으로 다 간것을 보면 전산은 컴퓨터에 익숙하다고 자신하는 사람들이 가는 것 같단 느낌이 듭니다.(컴퓨터공학이 뭐하는 곳인지 산업공학이 뭐하는지 안가르치고 대학교 1학년 끝나고 C언어가 단지 어렵다는 이유로 바로 전산을 기피하는 친구들을 보니 님 글이 공감갑니다.)

  • Arkind 2006.10.22 16:58

    좋은 글 읽고 갑니다.// 고등학생이지만 프로그래밍을 조금 다뤄본 입장에서 상당히 공감이 가는 글이네요..

  • egoing 2007.08.19 20:32

    잘 봤습니다.
    저는 전산을 전공하지 않았지만 전산을 하고 있습니다.
    그런 점에서 님의 글이 좀 다른 측면에서 공감이 갑니다.

    프로그래밍이 무엇인가?를 생각해봤습니다.
    그것은 기계와 대화하는 것이 아니라,
    이를 통해 조금 더 행복해질 사람들과의 대화가 아닐까요?

    세상에는 다양한 언어가 있는데
    어떤 사람은 혀를 이용하기도 하고,
    어떤 사람은 프로그래밍을 이용하기도 하죠.

    중요한 것은
    그것이 어떤 것이건 간에
    사람을 향해야 한다는 점인 것 같습니다.

    그런 점에서
    프로그래머들도 자신들이 하고 있는 일이 사람과 대화하는 것이라는 것을 의식하고
    인간에 대해 보다 잘 이해하기 위해 노력하는 것이 필요할 것이라고 생각합니다.

    프로그래머들의 언어를 빌려 그것을 이야기 하자면
    최상위 클래스는 Object가 아니라 Humen이라고 생각합니다.

    그리고 프로그래밍도 결국 사람이 하는 것이기 때문에
    프로그래머이기전에 인간이 되는 것이 중요하다고 생각합니다.
    (인간이 된다는 표현은 착해져라! 이런 뜻이 아닌거 아시죠? ^^)

    전자렌지가 어떤 원리로 동작하는지를 일반인들이 이해하기는
    어렵고, 그럴 필요도 없을지도 모릅니다.
    그러나 전자렌지를 통해 사람들이 행복해지잖아요?
    마찬가지로 전산 역시
    프로그램이 얼마나 사람을 행복하게 하느냐?로써 대화할 수 있을 것이고,
    이것이 좋은 프로그램이냐? 아니냐?에 대해서도
    재미있게 이야기 할 수 있을꺼라고 생각해요.

    좋은 글 잘 봤습니다. ^^

  • GHd 2013.07.20 19:53

    당신 매력있어, 자기가 얼마나 매력있는지 모르는게 당신매력이야

  • ghd 2013.07.23 01:20

    당신 매력있어, 자기가 얼마나 매력있는지 모르는게 당신매력이야