어느 순간에 4차 산업혁명이라는 단어가 불쑥 다가왔다. 일부 기성세대는 아직 3차 산업혁명에도 다 적응하지 못했는데 그렇게 되었다. 대략 18세기에 시작된 산업혁명은 비록 혁명이란 단어가 붙어있기는 했지만 생각보다 빨리 전파되지 않았다. 그 결과 19세기와 20세기 중반까지 제국주의와 피지배 국가라는 관계가 전 지구적으로 심화되었고, 이 관계는 지금도 깔끔하게 해결되지 않은 채로 남아 있다.
3차 산업혁명의 균일하지 않은 전파는 디지털 디바이드(digital divide)라고 하며 모든 지표에서 국가, 지역, 계층 간의 격차를 점점 더 크게 하는 이유가 되었다. 우리가 이름이 뭐가 되었든 혁명적인 디지털 산업 변화를 소홀히 봐서는 안 되는 이유다.
산업혁명은 노동자들의 역할, 지위, 그리고 물리적인 일자리의 위치도 빠르게 조정했다. 기계화는 특정 기능에 숙달된 도시 노동자들을 더 많이 요구했고, 일터에서 도제식으로 배우던 지식과 경험을 매뉴얼화 된 교육으로 빠르게 습득시키기 위한 현대적인 학교 시스템이 늘어나는 계기도 만들었다.
또 산업혁명은 노동을 육체적인 것에서 학습된 지식 기반 활동과 정신적인 활동으로 점점 바꾸면서 노동자들의 블루칼라 유니폼 색을 화이트칼라로 탈색하는, 다시 말해 블루칼라의 일자리를 줄이는 과정의 연속이었다.
4차 산업혁명이 이전과 전혀 다른 점은 ‘학습된 지식’이 더 이상 큰 힘을 발휘하지 않을지도 모르는 세상을 만들고 그 결과, 이전의 산업혁명들이 요구했고 늘려왔던 화이트칼라 일자리가 더 이상 매력적이지 않게 된다는 점이다. 이제 지식을 쌓기 위한 시간, 즉 엉덩이 무게가 개인의 미래를 결정하는 시대는 가고 창의적/지능적 융합이 중요한 시대가 되는 것이다.
4차 산업혁명 시대에 필요한 융합적 역량이라는 것은 무엇일까? 우선 기본은 융합의 재료가 되는 각 영역의 지식(Domain Knowledge)이며, 두 번째는 융합을 통해 실재하는 제품과 서비스를 기획하고 만들어 내는 소프트웨어 역량이고, 세 번째는 융합의 과정을 다루는 협업과 소통 역량이다.
세 가지 중에 요즘 말도 많은 코딩 역량, 소프트웨어 역량은 첫 번째가 아니다. 특히나 어릴 때는 세 번째인 협업 소통 역량을 키우는 것이 중요하고, 성인이 되면 첫 번째인 각 전문 영역의 지식을 경험을 통해 얻는 것이 더 중요해진다. 전공자가 아닌 이상 소프트웨어는 세 번째 정도라고 본다.
그 역량들은 어떻게 배울 수 있을까? 이전 산업혁명의 결과인 인터넷에는 엄청난 지식이 축적되고, 다양한 분야의 결과물들이 오픈소스로 공유되고 있으며, 더할 나위 없이 잘 지식을 전달하는 교육 동영상이 넘쳐난다. 즉, 지식을 습득하는 과정에서 ‘어디서’의 문제는 해결되었고 일부는 이미 기계로 대치 가능해졌다. 학교도 지식을 전달하는 역할에서 그 지식을 어떻게 활용할 것인가에 집중하여 학생들이 새로운 시대에 필요한 융합적 역량을 확보할 수 있도록 도와주는 것으로 역할을 바꾸어 가고 있다.
교과서의 진도를 따라가서 문제를 푸는 방식의 교육은 문제를 내는 사람을 능가할 수 없기 때문에 늘 실패이거나 절반의 성공만을 기대할 수 있다. 그런 교육을 받고도 뛰어난 역량을 발휘한 사람은 어쩌면 그 교육이 애초에 필요 없었던 사람이었을 가능성이 높다. 미래를 준비하는 교육은 문제를 찾아 정의하고 스스로 배워 해결하는 교육, 누구나 가진 창의성을 온전히 발현시키는 교육이어야 한다.
물고기를 주는 대신 낚시하는 법을 가르치자는 것이 이전 시대의 교육이라면, 이제는 정말 맛있는 생선 요리를 맛보는 것까지다. 물고기를 잡는 여러 방법이나 다양한 물고기 요리법은 스스로 찾고 실제 경험하면서 배우도록 하되, 학교는 그 과정에서 필요한 도움을 주는 방식이 문제 해결형 교육이다.
소프트웨어를 위한 소프트웨어는 없다
다시 소프트웨어 이야기로 돌아가면, 코딩 또는 소프트웨어 교육도 위와 다르지 않다. 코딩을 위한 코딩, 소프트웨어를 위한 소프트웨어는 없다. 구구단 자체가 목표가 아니듯이 융합적이든 아니든 문제해결을 위한 도구라는 관점에서 소프트웨어에 접근해야 한다.
메이커, 프로젝트 기반 교육 역시 작품의 주제가 코딩이 아니라 국어, 수학, 과학, 사회, 음악, 미술, 체육 등 전 영역이어야 한다. 소프트웨어라는 강력한 도구는 문제 해결이 재미있고, 효율적이며, 효과적임을 학생 스스로 느낄 수 있도록 활용되어야 한다. 스크래치, 엔트리, 코들리 등 초등 단계에서 배우는 블록 코딩 방법만 이용해도 위 전 교과 영역의 지식을 아우르는 경험적 콘텐츠를 만들 수 있다.
하지만 문제 해결 경험이 쌓일수록 더 복잡한 문제 해결의 욕구가 생겨나며, 소프트웨어라는 도구 관점에서 중요한 생산성 지표 중의 하나인 리드어빌리티(readability, 코드가 읽기 쉬운 정도)가 매우 나쁜 블록 코딩의 한계를 느끼게 된다. 따라서 경험이 쌓일수록 파이썬, 자바스크립트 등 상대적으로 더 유연하고 배우기 쉬운 텍스트 기반 언어가 자연스럽게 뒤를 잇는다.
대학 수준에서는 자신의 전공 영역에서의 지식을 쌓고, 스스로 해당 전공 영역이나 다른 영역과 융합된 문제를 찾는 것으로 시작할 수 있다. 비슷한 문제를 먼저 생각해 낸 선구자가 문제 일부분을 해결한 결과가 오픈소스로 많이 공개되었기에, 내 문제와 이전에 해결된 문제의 차이를 이해하고 새롭게 드러난 문제 부분에 집중하여 해결하는 것이 가능하다. 이를 위해 주로 파이썬과 같은 텍스트 코딩 도구를 익힐 필요가 있다.
한편 알고리즘은 소프트웨어가 문제를 푸는 가장 자원 효율적인 방식을 추구한다. 알고리즘 역량은 해결해야 하는 문제나 데이터의 복잡성에 따라 필요한 수학적인 논리를 펼쳐내는 역량으로 소프트웨어로 구현된 제품 서비스를 시장에 내놓을 때 반드시 필요하다. 그럼에도 대다수 사람, 심지어 소프트웨어 개발자도 올림피아드 류의 알고리즘 대회에서의 메달을 따야 할 정도의 역량이 요구되지는 않는다. 올림피아드는 다분히 두뇌 스포츠 영역이라고 볼 수 있으며 운동을 하는 모두가 올림픽에서 메달을 딸 필요가 없는 것과 같은 이치다.
그럼, 코딩을 어디서 배울 것인가?
아마도 학부모가 가장 궁금할 질문일 것이다. 요즘 사교육 시장에서도 코딩을 가르치지만, 단언컨대 사교육은 필요 없거나 필요성을 느낀다 해도 가성비가 좋지 않다고 할 수 있다. 정부가 운영하는 소프트웨어 중심사회 포털 사이트에 가거나 인터넷에서 “코딩 배우기”만 검색해도 수준별 콘텐츠가 정말로 다양하게 준비되어 있다.
블록 코딩, 텍스트 코딩, 웹사이트 만들기 등 동영상도 많고 아두이노와 같은 하드웨어를 이용한 메이커 활동 학습 자료도 많다. 몇만 원 수준의 하드웨어를 이용한 자가 학습이 사교육에서 수십만 원에 판매하는 하드웨어 키트에서 제공하는 수준과 별 차이 없고 그 정도 이해도로 얼마든지 가능하다. 처음 배우는 코딩도 그 난도가 높지 않기에 부모와 아이가 같이 집에서 따라 하면서 배우는 것이 좋다.
그리고 정말 더 흥미가 생기면 프로젝트 중심으로 진행하는 며칠 짜리 소프트웨어/코딩 캠프도 어렵지 않게 찾을 수 있다. 지금은 전국의 소프트웨어 중심대학이나, 지역 자치단체, 많은 창업 공간, 소프트웨어 관련 단체, 공공기관, 선생님 대상 교육 기관, 삼성, 네이버 등 주요 대기업이 엄청나게 많은 교육과 캠프를 무료 또는 아주 저렴하게 제공한다.
요즘 언론에서 “국영수코”라는 말을 한다. 소프트웨어, 코딩이 중요하기는 하지만 우리가 살아가기 위해 과학적 사고가 중요한 것과 마찬가지인 정도라고 이해하면 되지 않을까 한다. 우리가 이미 공기 반 소프트웨어 반으로 숨쉬기 때문이다.
대학을 가기 위해서 코딩을 배운다는 것도 옳지 않다. 코딩이 재미있어 그것을 도구로 의미 있는 문제 해결 경험을 쌓고, 그 시기에 배워야 할 것들을 그 과정에서 잘 배우고, 자신이 배운 것을 설명할 수 있다면 다른 모든 입시 친화적인 역량과 동등한 수준에서 평가될 수 있을 뿐이다.
너무 심각하게 생각하지 말자. 재미있게 하자.