소프트웨어 교육, 과연 코딩교육이 먼저일까?
소프트웨어 리터러시를 갖춘 부모가 되기 위한 걸음을 내딛기 전에 한 가지 냉철하게 생각해 봐야 할 것이 있다. 바로 코딩교육 내지는 각종 소프트웨어 교육에 대한 것이다.
눈높이 교육, 하브루타 교육, 칼 비테 교육, 몬테소리 교육, 영어유치원, 국악유치원 등 자녀교육에 열을 올리는 우리나라 부모들이 조금이라도 나은 자녀교육을 위해 애쓰는 와중 비교적 최근 교과과정에 편입된 소프트웨어 코딩교육 때문에 또 난리다.
어떤 학원을 보내야 좋은 건지, 블록코딩 물리코딩 하는데 그거 잘하는데 보내면 되는 건지, 방과후 코딩학원 선생님들이 과연 믿을만 한 건지, 온라인 교육도 괜찮은 건지, 학교 수업만 들어도 잘 따라갈 수 있는 건지, 다른 엄마들은 그룹을 만들어 개발자를 초빙해 소프트웨어 과외까지 시킨다는데 우리 애도 과외를 시켜야 하는 건 아닌지, 더 나아가 대치동 청담동엔 특급 강사진이 즐비한 코딩학원이 생겼다는데 그쪽으로 이사라도 가야하는 건 아닌지.
그러나 정말 중요한 건 학원이나 선생님이 아니다. 엄마나 아빠가 컴퓨터나 소프트웨어에 대해 얼마나 이해하고 있는가가 시작이고 내 아이에 대한 관찰이 또 그만큼 중요하다.
정작 부모 스스로는 하드웨어나 소프트웨어에 대한 생각과 가치관을 정립하지 못했으면서 막연하게 내 아이가 뒤쳐지지 않았으면 하는 마음으로 코딩학원을 보내거나 소프트웨어 과외를 시키는 행위들은 결국 자신의 불안감을 덜기 위한 행위 그 이상도 이하도 아니다.
똑같이 코딩 학원을 보내더라도 우리 아이가 어떤 특성과 생각을 갖고 있고 뭘 하게 되는 건지는 알아야 하는 것이다.
요즘에야 코딩학원, 소프트웨어 학원, 프로그램 강의 같은 용어들을 훨씬 많이 쓰지만 20년 전만 해도 컴퓨터학원 다닌다 그랬다.
뭐 대단한 거 가르쳐 주는 것도 아니었고 컴퓨터가 물리적으로 어떤 부품들로 만들어져 있는지, 프로그램을 어디에 저장하는지, 또 요즘 블록코딩 처럼 그 당시 '베이식(BASIC: Beginners' All-purpose Symbolic Instruction Code)'이란 단순한 프로그래밍 언어가 교육용 언어로 유행했는데, 아이들이 다룰만한 정말 간단한 프로그래밍 언어를 가르쳐 주거나 하는 그런 학원이었다. (참고로 베이식을 우리나라 말로 풀자면 '기호처럼 표현한 명령코드를 사용해 초보자들이 여러 목적으로 프로그래밍 할 수 있게 만든 언어'다)
지금이라고 별반 다를 바 없어보이긴 하지만 그 당시에도 아이들에게 컴퓨터는 게임을 위한 도구로서 의미가 가장 컸다. 나도 30~40줄짜리 베이식 코드를 입력하고 실행하면 숫자게임이나 가위바위보게임 같은 초간단 게임이 되는 프로그램이 50~60개 정도 수록된 책을 한 권 사서 아버지 퇴근하시기 전 몰래 아버지 방에 들어가 컴퓨터에 쳐보곤 했던 기억이 새록새록하다.
근데, 이렇게 20년 가까이 소프트웨어 개발자로 일해보니 어릴 적 다녔던 컴퓨터 학원도 그렇고 선생님 설명을 듣고 책을 보며 입력한 짤막한 코드를 실행해보는 것 자체로는 사실상 제대로 된 소프트웨어 교육이라고 할 수가 없다는 생각이 든다. 아니 소프트웨어 교육이라고 하기엔 정말 거리가 먼 것들이었다.
그도 그럴것이 제대로 된 교육이 이루어졌다면 새로운 것에 대한 호기심이 왕성해 그렇게나 엄마를 졸라 등록했던 컴퓨터 학원을 겨우 한 달인가 두 달 그것도 다니는 둥 마는 중 하다가 흥미를 잃고 그만뒀을 리가 없다.
컴퓨터 학원에서 배우는 내용이나 코딩이 재미가 없었던 탓도 있었겠지만 지금에 와 생각해보면 그 당시 교육내용이 내가 컴퓨터로 해보고 싶었던 기대에 너무 못미칠 정도로 제한적이었기 때문이었다는 생각이다. 차라리 하록선장의 전함 아르카디아호를 전지에 그리거나 과학상자를 조립하는 게 훨씬 재밌었다.
컴퓨터 학원은 그렇게 끝났지만 소프트웨어 개발자가 된 지금도 소프트웨어 하면 생생하게 떠오르는 세 가지 추억이 있다. 초등학생 시절 당시 실업계 고등학교 (요즘엔 특성화고라고 한다) 정보처리과 교사였던 아버지를 따라 간 고등학교 아버지 책상에서 카셋트 테잎에 저장된 '벽돌깨기' 게임을 컴퓨터 하드 본체에 로딩하며 플레이 했던 기억과 중학생 시절 5.25인치 디스켓 몇장이었는지도 가물가물 하지만 충격적이었던 모션처리만큼은 지금도 생생한 전설의 명작 '페르시아 왕자'라는 게임을 처음 플레이 했을 때 그리고 역시 중학생 시절 코엑스에서 열렸던 매킨토시 박람회에서 봤던 아직도 잊혀지지 않는 화면 속 컬러와 그래픽이다.
아버지는 자신이 코볼이나 포트란 같은 프로그램을 가르치고 시험문제를 출제하는 교사였음에도 자식이 컴퓨터를 만지는 건 그다지 탐탁치 않게 여기셨다. 프로그램을 다룰 줄도 알고 요즘말로 코딩도 되는 사람이 이렇게나 빙 돌아 개발자가 될 아들내미에게 프로그래밍 한 번 안가르쳐 준 것이 지금도 야속하게 느껴진다. 하지만 아버지는 그 당시 내가 아는 모든 사람들 중에 컴퓨터와 소프트웨어를 제일 잘 이해하고 있는 사람이었고 가끔씩 아버지가 서재에 가득한 플로피 디스크 중 'Lotus 123' 같은 프로그램을 꺼내어 그것이 어떤 프로그램인지 또 얼마나 비싼 프로그램인지 플로피 디스켓을 함부로 다루면 안되는 이유 같은 것들을 말씀해 주실 때마다 난 정신적으로 소프트웨어에 점점 다가갔던 듯 하다.
그 후로 난 고등학교 1학년 때 수학점수가 낮다는 이유로 문과로 배정받았고 수2를 안 배우는 문과라는 이유로 공대는 아예 선택지에서 제외된 채 경영학도가 되었다. 그리고 빙빙 돌아 결국 10년이나 뒤늦게 소프트웨어 개발자가 되었다.
여담이 길어졌지만 그럼 소프트웨어 교육은 과연 뭘까? 소프트웨어를 사용하는 방법을 가르치는 걸까? 아니면 소프트웨어를 개발하는 방법을 가르치는 것? 아마 소프트웨어 교육 관련해서 이것저것 알아보고 책도 좀 읽고 생각해본 사람이라면 '소프트웨어적 사고력을 길러주는 것' 아니냐는 훌륭한 답변을 할 수도 있다.
뭐 다 맞는 말일 수도 있다. 하지만 앞서 소프트웨어 리터러시에 대한 이야기의 연장선에서 얘기하자면 무엇보다 4차 산업혁명의 시대 즉 소프트웨어 혁명의 시대를 살아갈 아이들이 소프트웨어적 관점에서 세상을 바라보는 뷰를 만들어 주는 교육이어야 하지 않을까?
그럼 소프트웨어적 관점에서 세상을 바라보는 뷰라는 건 뭘까?
지금은 소프트웨어에 대해 좀 더 깊이 이해하게 되면 뭔가 자연스레 갖게 되나보다 생각하자. 이 후의 글들을 다 읽고나면 굳이 설명하려 하지 않아도 어느덧 소프트웨어적 관점에서 세상을 바라보는 뷰 하나는 갖게 되었음을 알게 될 것이다.
세상을 바라보는 뷰는 굉장히 많다. 장사꾼의 뷰, 정치가의 뷰, 경제학자의 뷰도 있고 사진가의 뷰도 있다. 문학가의 뷰도 있고 철학자의 뷰도 있다. 그러나 그 수 많은 뷰를 한 사람이 모두 갖고 살아갈 수는 없다. 오히려 자신에게 맞는 정말 효과적인 뷰 한 두개로 세상을 바라볼 때 이 세상을 보다 성공적으로 살아갈 확률이 높다.
그리고 그런 갖출만한 뷰 중에는 시대의 흐름을 잘 읽고 적응하는데 도움이 되는 뷰들이 분명 존재한다. 소프트웨어적 관점에서의 뷰가 바로 그렇다. 그리고 소프트웨어 교육이란 그런 뷰를 통해 세상을 바라보고 내 삶에 응용할 수 있는 능력을 갖출 수 있도록 돕는 일이어야 한다.
그런 관점에서 교육이란 말까지 써가며 교과목으로 시수를 할애하고 학원까지 보내가면서 소프트웨어를 사용하는 방법이나 개발하는 방법을 유치원 또는 초등학교 어린 애들한테까지 미리부터 가르칠 필요가 과연 있는 것일까? 그런 소프트웨어 교육은 얼마나 효과적일까? 그렇게 어릴적부터 블록코딩 같은 걸 배우면 나중에 고급 프로그래밍 언어로 복잡한 소프트웨어를 개발할 수 있는 걸까?
소프트웨어 교육기관이나 코딩학원에서 이야기하는 '아이들에게 소프트웨어적 사고력을 길러준다'는 건 얼핏 생각하면 그럴듯 해 보인다. 그러나 과연 소프트웨어적 사고력이란 건 뭘까? 난 모르겠다. 그들이 말하는 소프트웨어적 사고력이란 게 도대체 뭔지. 소프트웨어가 뭔지 알고 사고력이 뭔지 알지만 그들이 길러준다는 그 소프트웨어적 사고력은 두 단어를 더했을 뿐인데 도대체 뭔지 감이 잘 안온다.
소프트웨어를 만드는 사고력을 말하는 건가? 그건 논리력이나 추론능력, 창의력과 어떻게 다른 건가? 학원에서 선생님따라 만든 블록코딩이나 아두이노 결과물을 보며 내 아이의 소프트웨어적 사고력이 자랐구나 생각하면 그걸로 된 걸까? 그럴듯한 문구에 내 아이들의 미래를 너무 소홀히 맡겨버리고 있지는 않은지 잘 생각해 봐야 한다.
그렇다고 코딩교육이나 여타 비슷한 소프트웨어 관련 교육 프로그램을 평가절하하거나 다 쓸모없다는 말을 하려는 것은 아니다. 내 아이의 특성과 시기와 수준과 관심이 어디에 있는지에 따라 적절히 활용할 만한 것이긴 하나 '몇살부터 몇살까지 내지는 몇학년부터 몇학년까지 이정도는 해놔야' 하는 그런 고려사항은 절대 될 수 없다는 것이다.
소프트웨어 교육이란 건 소프트웨어적으로 생각하는 법을 가르치는 것이 아니다. 결과적으로 비슷한 동작을 한다 해도 하드웨어가 다르면 그 위에서 돌아가는 소프트웨어가 다르고 그 하드웨어에서 돌아가기 위해서는 반드시 필요하지만 논리적으로는 불필요한 짓을 수도 없이 하느라 소프트웨어 자체가 간단칠 않은데 사람이 소프트웨어적으로 생각한다는 게 말이나 되는 얘길까? 그렇게 생각하도록 교육한다? 가능하지도 않고 바람직하지도 않다.
소프트웨어 교육은 간단히 말해 지금 이 글을 읽는 것처럼 '소프트웨어에 대한 이야기를 어려워하지 않고, 자신의 생각을 표현하는 하나의 자연스러운 수단으로 프로그램을 선택지에 둘 수 있게 하는 것, 그리고 적절한 결과를 만들어내기 위해 소프트웨어를 그 어떤 도구처럼 찾아 이용할 줄도 특별한 목적이 있어 필요하다면 만들어 쓸 생각도 할 수 있게 해주는 것'이어야 한다.
사람이 살면서 어떤 뷰를 하나쯤은 갖게 되듯 소프트웨어라는 것도 자연스레 생각과 삶의 일부가 되도록 해주는 것이다.
우리가 중고등학교 시절 가장 많은 시간과 노력을 들여 교육받았던 국어, 영어, 수학, 그중에서도 영어와 수학을 가르치는 영수학원(뭐 입시학원이라고 해도 무방할 듯 하다)은 오죽하면 수십년 째 제일 장사 잘되는 교육산업 중 하나다. 근데, 한 번 생각해 보자. 대학때나 성인이 되서 필요해서 배우고 익힌 영어, 수학 말고 순수하게 중고등학교때 교육받은 영어, 수학 그 자체가 대학가기 위한 수단으로 쓰인 것 이외에 얼마나 빛을 봤나. 그렇게 많은 시간과 비용을 들여 배운 영어, 수학으로 얼마나 살고 있나. 그래서 입시위주의 교육은 실패라는 말이 나왔던 것이다.
난 아직도 영어를 잘 못한다. 물론 영어에 재능이 없고 재미도 없어서 단어 외우는 것 조차 게을리 한 바람에 그런거라 생각은 하지만 어쨌든 수 년간 아마존(Amazon) HR팀에서 개발팀 면접제의를 보내와도 갈 수가 없었다. 영어에 자부심을 갖고 있는 사람들이 듣는다면 기분나쁠지 모르겠지만 영어에 대한 거부감과 울렁거림 그 신경거슬리는 불편함 그런거 때문이다. 근데 그게 왜 그렇게 된 것일까?
난 이렇다 할 수준은 못되지만 일본어는 좀 한다. 그 일본어 공부도 십수년 전 일본에서 회사 다니면서 살아보겠다고 몇 달 안 했는데 말이다. 근데 그렇게 오랜시간 공부한 영어보다도 아직까진 훨씬 유창하게 흘러나온다. 뭐 그렇게 일본어를 잘한다는 게 아니라 여행가서도 어버버하는 영어랑 비교해서 그렇다는 말이다. 필요해서, 살려고 가서 어떻게든 귀를 열고 듣다보니 애초 일본어에선 영어같은 벽이 생기지 않았던 거다.
소프트웨어 교육도 마찬가지다. 입시과목같은 국영수가 되어선 안 시키느니만 못하다.
'에이 학원에서 블록코딩으로 재밌게 놀면서 하는데 설마 국영수처럼 되겠어~?' 부모로서 가질법한 이 안일한 생각이 나중에 당신의 자녀가 소프트웨어와 담 쌓고 지내게 만들 수 있다. 레고가 두뇌 발달에 좋다는 말에 레고만 주구장창 갖고 놀게 한다고 아이의 두뇌가 마구마구 발달하진 않는다. 수 년째 레고만 있으면 몇 시간이고 혼자 잘 노는 아이도 있고 레고가 영 재미없는 아이도 있다. 레고는 딱 몇 개월 그 후론 쳐다도 안보는 아이도 있고 레고로 블럭 놀이를 하는 게 아니라 저 멀리 통을 세워 두고는 레고블럭을 던져 넣기 하며 노는 아이도 있다. 이런 각양각색의 아이들 중 나중에 누가 뛰어난 미술가, 작가, 음악가, 운동선수, 개발자가 될지는 아무도 모르는 일이다.
현 시점에서 관심있는 부모들 사이에 번지고 있는 코딩교육 열풍은 어쩌면 '뒤지면 안된다는 조급함'에 다름아닌 현상일지 모른다. 부모의 조급함이 아이를 망친다는 말도 있지 않은가.