본문 바로가기
주제별 글모음/과학자의 시선

오해하기 쉬운 코딩 교육

by 격암(강국진) 2017. 11. 17.

17.11.17

요즘 코딩교육이 인기가 좋다는 말을 들었다. 나는 그런 교육을 실제로 어떻게 하는지에 대해 자세히 알지 못하지만 내 경험에 비추어 생각해 보자면 일단 그런 종류의 교육을 코딩 교육이라고 부른다는 것 자체가 뭔가 오해의 소지가 있지 않은가 하는 생각이 들었다. 

 

나는 통계 물리학 그리고 뇌과학 연구와 관련해서 포트란이나 C 그리고 매트랩같은 언어로 여러가지 프로그램을 만들고 사용해 왔다. 그리고 요즘은 R이란 걸 손에 익히고 있는 중이다. 이런 나의 경험에 비추어 볼 때 코딩이 중요하냐고 누군가 나에게 묻는다면 나는 분명히 그렇다라고 말할 것이다. 코딩은 당신에게 자유를 준다. 즉 당신은 당신이 상상한 것을 실제로 수행할 수 있고 그렇기 때문에 상상도 더 많이 하게 된다. 

 

예를 들어 보자. 당신이 건축에 관심이 있어서 이런 저런 집을 상상한다고 하자. 그런데 누군가가 당신에게 마술을 가르쳐 준다. 그 마술을 쓰면 당신이 상상하던 집이 짠하고 나타나는 것이다. 이런 마술이 있을 때 건축에 대해서 배우고 상상하는 것과 이런 마술이 없을 때 그렇게 하는 것은 아주 큰 차이가 있다. 실제로 집을 만들어 볼 수 있다면 그 집에 대해서 구체적으로 더 많은 것을 알게 되겠지만 상상만 하는 사람은 자신의 구상이 어떤 치명적 문제가 있는지를 잘 알지 못할 것이다. 

 

컴퓨터 언어를 배운다는 것은 일종의 컴퓨터 하인을 구하는 것과 같다. 컴퓨터가 알아듣는 말로 컴퓨터에게 명령을 하면 컴퓨터가 당신은 해낼 수 없는 일을 짠 하고 해주는 것이다. 그래서 컴퓨터를 쓰면 당신은 당신이 상상하는 것에 대해서 더 많은 것을 배우게 된다. 

 

하지만 여기에는 적어도 두가지 문제가 있다. 하나는 그렇다고 해도 컴퓨터에게 뭘 시킬 것인지를 사람이 알아야 한다는 것이다. 이것은 너무 뻔한 이야기같지만 그렇지 않다. 사실 이게 먼저다. 즉 컴퓨터에게 뭔가를 시키고 싶어하는 사람이 코딩을 잘 배우고 코딩을 계속 하게 된다. 그러니까 배우는 사람이 구체적인 목적이 없이 코딩부터 배우는 것은 매우 비효율적인 교육이 되기 쉽다. 

 

물론 코딩이란 게 뭔지, 어떤 언어가 있는지에 대해 개괄적인 정보를 얻고 그걸 가지고 약간 놀아보는 것도 나름의 가치는 있을 것이다. 그러나 아주 큰 의미는 없다. 컴퓨터 언어도 시간에 따라 빨리 변하기 때문이다. 코딩같은 거 10년 쯤 지나면 환경이 전혀 달라진다. 그래서 계속 그걸 할 것이 아니라면 어린 시절에 어떤 언어를 배워둔 것이 10년뒤에도 큰 도움이 되냐하면 그렇지 않다. 게다가 앞에서도 말했듯이 뭘 하고 싶은가가 훨씬 더 중요한데 그것에 따라서 뭘 배울까가 정해지기 때문에 그렇다.

 

예를 들어 요즘 나는 한 확률강좌에 나오는 문제풀이들을 R이라는 언어로 해보고 있다. 그런데 그렇게 하다보면 나는 아주 기초적인 것을 배우고 나면 내가 원하는 것을 하기 위해서는 어떤 기능이 필요하고 그걸 어떻게 구현할 수 있을까를 생각하게 된다. 그래서 그걸 배우게 되는 것이다. 그런데 내가 뭘 하기를 원하는가가 불명확한 상태에서 그냥 R배우기 같은 것을 멍하게 듣고 있는다면 그건 지루하기 짝이 없을 것이다. 그런 강좌를 그런 상황에서 재미있게 들을 정도라면 그런 사람은 이미 코딩교육운운할 수준이 아니다. 이미 코딩 전문가 수준인 것이다. 혼자서 책한권 있으면 하루 이틀에 언어를 대충 배우는 그런 사람이다. 요즘 말하는 코딩교육이란게 이런건 아니지 않은가? 

 

그러니까 코딩교육의 핵심은 코딩을 해야만 하는 구체적 이유를 아는 것이다. 가지고 놀다보면 배우는게 있다는 말은 옳다. 그래서 별 의도없이 가지고 노는 수준에서 언어를 배우는 것도 다 의미가 있다. 나는 결코 어떤 종류의 체험이나 교육도 의미없다고 부인하고 싶지는 않다. 하지만 그걸 미래를 위해 다른 것보다 더 중요한 교육이며 자신의 아이가 그걸 못한다면 시대에 뒤지는 것으로 생각할 필요는 없다는 것이다. 

 

나로서는 사실 코딩에 대해 지금처럼 애매하게만 접근하는 것은 큰 효과가 있을지 매우 의심스럽다. 이렇게 하는 코딩교육은 사실 별거 아닌 것이다. 해두면 좋지만 안해도 아무 상관없는 그런 것이고 그런 걸 안한다고 시대에 뒤진다는 생각을 해야하는 지는 모르겠다. 당신은 아마도 자신의 아이가 플라톤의 책을 읽지 않았다거나 도보국토종단여행을 안해서 시대에 뒤진다고는 생각하지 않을 것이다. 그런데 내가 보기엔 코딩교육이나 그런 일들이나 서로 배우는 것에 차이가 있을뿐 다 추천할 만한 교육이다. 어느 쪽이 더 미래를 위해 좋은 준비인가 나로서는 차이가 있어보이지 않는다. 어쩌면 도보국토종단여행쪽이 더 좋을 수 있다. 

 

코딩은 나름의 해악도 있다. 다시 위에서 말한 마술로 돌아가 보자. 집을 상상만 하는 사람에게 집을 지어주는 마술은 그 사람을 마술에 중독되게 만들 수 있다. 다시 말해서 집을 상상하는 일은 그만두고 뭔가 생각이 날 때마다 그걸 지어보는 것이다. 뭐든지 지나치면 좋지 않다. 제약이 있는 가운데 상상을 하는 일은 상상력을 길러주지만 자꾸 그걸 마술로 현실화 시켜버릇하면 오히려 그 마술에 중독되고 노예가 된다. 

 

예를 들어 컴퓨터 시뮬레이션으로 어떤 시스템을 연구하는 경우 그 시스템을 이해하려는 노력을 머리를 써서 하는게 아니라 자꾸 컴퓨터 프로그램에 의존하려고 하는 것이다. 그런데 진짜 이해와 통찰은 머리에서 나온다. 프로그램이 혼자서 해주는게 아니다. 자동차에 중독되면 운동부족이 되서 멀리 까지 다니게 되는게 아니라 집바깥에 나가는 것 자체를 싫어하는 사람이 될 수도 있다. 

 

이건 어느 정도 책과 멀티미디어의 차이와 비슷하다. 책은 스스로 상상하는 능력을 요구한다. 그런데 멀티미디어는 그걸 그냥 보여준다. 따라서 멀티미디어가 더 이해가 쉬운 면이 있다. 한권의 책을 보는 것은 어렵지만 한두시간짜리 다큐를 보면 더 실감나고 쉽게 볼 수 있다. 하지만 더 깊은 이해는 고생하면서 책을 읽으면서 얻게 된다. 다큐 하나를 보고 나면 우리는 그걸 금방 잊게 되기 쉽다. 정보가 들어오는 속력이 너무 빨라서 우리의 머리에서도 빨리 나가 버린다. 

 

앞에서 말했듯이 나의 결론은 그저 하나다. 코딩 교육도 나쁜 아니다. 어떻게 하는가에 따라 좋은 교육이 된다. 하지만 유행에 따라가려고 지나치게 노력할 필요는 없다. 대개 그런 실속이 없다

댓글