미래창조과학부에서 소프트웨어 조기교육을 위한 다양한 정책을 추진하겠다고 한다. 이는 ‘한국판 스티브잡스 키우기 프로젝트’로도 알려져 있다.
프로그래밍을 배우면 무엇을 얻을 수 있을까?
프로그래밍으로 얻을 수 있는 것이 무엇일까. 예를 들어서 논리적인 사고? 그런 건 다른 책에서도 얼마든지 찾을 수 있지 않나? 레고, 과학상자, 혹은 비디오 게임과 무엇이 다를까. 논리적인 과학자라고 프로그래밍으로 논리를 배운 건 아니다. 프로그래밍을 논리적인 사고를 위해 배워야 한다고 하는 것은 뭔가 그냥 유행 같다. 그냥 머리에 떠오른 예시일 뿐이니 프로그래머들이 더 논리적일까에 대한 논쟁은 버려두자, 난 그리 생각하지 않으니.
많은 프로그래머가 프로그래밍을 배우는 것이 좋다는 이야기를 한다. 그러나 그 사람들이 인정받는 사람이라 해서, 프로그래밍 학습이 좋다는 것이 일반화되기에는 뭔가 오류가 있지 않을까. “내가 해봤는데…” 이거 어디서 많이 들어본 문구다. 이가 단순한 권위에의 오류일까, 아니면 정말 프로그래밍을 해서 인정받게 된 증명되지 않은 사실일까. 능력이 더 좋은 사람들이 프로그래밍을 잘한다고 프로그래밍을 배우면 능력이 좋아지는 건 아니다.
“왜” 배워야 하는가에 대한 이야기는 많이 들리지 않는다. 사실 여부를 떠나 프로그래밍을 무작정 교육에 집어넣기 위한 근거는 턱없이 부족해 보인다.
사실 우리는 생활 속에서 프로그래밍을 한다
IT 산업은 분명 필요하다. 하지만 모두가 IT 산업에 종사해야 하는 건 아니다. 왜 모두가 스티브 잡스고 마크 저커버그고 빌 게이츠여야 하는가. 웃긴 일이지만, 안 웃기게도 자본이 모이는 곳에 아이들의 미래를 보내고 싶어 하는 심리는 어쩔 수가 없다. 이런 기사도 좀 안타깝다.
예를 들어 우리는 마당의 워터쿨러 시스템 같은 홈 오토메이션에서 은연 중에 생활 속 프로그래밍을 한다. “몇 시가 되면 물을 틀어 몇 분 후에 끄고, 수요일은 예외로 하고, 온도가 몇 도 이상이면 틀지 마라.” 프로그래밍 로직이다. 이렇게 말로 하면 쉬운데, 프로그래밍 언어로 적으라고 하면 왜 그렇게 어려운 것이 되어버리는지.
이 둘 간의 패러다임 시프트는 일어나지 않았다. 여전히 다수가 프로그래밍은 프로그래머의 몫으로 생각한다. 앨런 케이의 끊임없는 노력이나 IFTTT와 같이 ‘프로그래밍이 아닌 프로그래밍’ 류의 노력은 꽤 많다. 삶 속에서의 프로그래밍 메타포를 적용할 수 있는 것들은 많지만, 둘의 융합은 아직인 것 같다. 되려 우리의 사고가 프로그래밍 언어의 틀에 구애받는 것이 올바른 것인가 하는 질문도 던질 수 있다.
이는 우리 아이들에게 프로그래밍을 가르친다는 개념과는 사뭇 다르다. 적어도 지금 주류의 패러다임에 있어서는 말이다. 프로그래밍 언어를 가르치는 것이 아닌, 프로그래밍을 이해하지 못하는 사람들에게 이해시키기 위한 다른 형태로 만들고자 하는 시도들이다.
우리 할머니가 C코드를 작성하실 리는 절대 없지만서도 우리 아이들도 C코드를 작성할 필요가 없지 않느냐는 것이다. 왜 아이들에게 포인터의 개념을 가르치고 있어야 되나, 살아가면서 꼭 알아야 할 필요는 없는 내용 같은데.
프로그래밍이 아닌 논리/로직
비주얼 프로그래밍조차도 어린이들에 맞춰서 충분히 추상화된 경우가 아니라면 도메인 지식을 필요로 하는 경우가 상당수다. 전문가에게는 쉬울지언정, 일반인에게는 선택의 폭이 넓지 않다.
프로그래밍을 가르치는 것이 아니라 게미피케이션으로 논리/로직을 가르친다고 생각해보면 어떨까? 프로그래밍을 가르치는 것이 ‘프로그래밍의 어떤 요소’를 가르치기 위한 것이라면, 꼭 프로그래밍 언어를 가르칠 필요는 없다. 역시나 손으로 직접 만질 수 있는 레고나 과학상자가 더 효율적이지 않을 것이란 법은 없다.
어떤 도구를 아이들에게 잘 가르쳤더니 굉장히 창의적이고 재미난 결과물을 많이 만들어내더라… 그 도구가 굳이 프로그래밍이어야 할 이유는 없다. 게다가 그것이 아이들의 사고에 어떤 도움이 될 것인지, 아니면 교육으로써 커서 어떤 영향을 미치고 있는지에 대한 연결고리는 여전히 불분명하다.
여전히 ‘왜’는 없는 프로그래밍 교육의 당위성
프로그래밍 교육은 어떻게 적용할 것인가도 골치다. 교육제도라는 것이 그렇게 유연성이 있는 것도 아니고, 바뀐다고 제대로 바뀌는 것도 아니다. 자칫 잘못 도입했다가 아이들만 헷갈릴 부작용도 생각해볼 수 있다. 고등학교 2학년 때 학력고사 공부를 하다가 갑자기 수능으로 바뀐 상황이 떠오른다.
인터넷을 뒤져봐도 프로그래밍 교육이 필요한 이유는 그다지 찾기 힘들다. “○○ 해야 하는 이유” “왜 XX가 필요한가?” 이런 제목을 붙여놓고는 경험만 길게 이야기하거나 어떤 나라에서는 이렇게 한다 카더라를 나열하거나 혹은 그냥 신념만을 이야기한다. 여전히 “왜?”는 없다.
아이들에게 프로그래밍을 가르쳐야 한다는 이야기를 꺼내려면 추상적 이야기로 가득한 정책을 내놓거나 무슨 제품을 파는 것처럼 마케팅적으로 접근하지 않았으면 한다. 그보다 장기적으로 왜 그것이 필요한지, 그것으로 어떤 긍정적/부정적 효과가 있을 것인지 연구해서 일반화할 필요가 있지 않을까 하는 생각을 해본다.
솔직히 나는 중립적이라는 이야기도 살짝 붙여본다.
woolrich outletWinter 2009 Fashion Scarves and Shawls