brunch

You can make anything
by writing

C.S.Lewis

by coder Aug 03. 2023

코딩을 가르쳐야 하나?

아이들 코딩교육에 관해

아이들에게 코딩을 가르쳐야 하나?

요즘은 가는 곳마다 아이들이 있는 친구들에게서 받는 질문이다. 또 가르치려면 어떻게 가르치는 것이 더 효율적인가? 이렇게 물어보는 친구들 중에는 의사도 있고 변호사들도 있다.

의사나 변호사로 키우고 싶지 않아? 내가 물으면, 이렇게 힘든 일은 시키고 싶지 않다고 하는 친구도 있고, 요즘은 뭘 하던지 코딩을 배우면 쓸모가 있지 않냐?라고 되묻는 친구들도 있다.


솔직히 이런 질문은 한국 학부모 친구들에게서는 별로 듣지 않는다. 아직 한국은 학생들이 학업에 충실해서 좋은 대학에 가는 것이 우선 목표이기 때문인 것 같다. 내가 오히려, 아이들 방학 때 코딩을 시켜보면 어때?라고 물으면, 괜히 몇 달간 코딩시켰다가 게임에 더 빠지거나, 또는 지금 닥친 다음 학기 공부가 더 중요하다던가, 학교로 돌아가서 공부 안 하고 코딩만 계속할 까봐 아예 시키지 않겠다고 하는 친구들이 대 다수이다.


당연히 이해가 간다. 한국에서는 학력이 무엇을 하든지 중요한 요인이 되기 때문이다.


오늘은 아이들 코딩 교육에 관해서 몇 자 적어보려 한다. 현재 실리콘밸리에서 보는 아이들의 코딩 교육은 어떻게 진행되고 있고, 코딩 조기교육이 꼭 필요한지, 또 필요하다면 어떤 식으로 해야 할지 간략하게 정리했다.


실리콘밸리에서의 코딩교육

사실 나는 학부모가 아니기 때문에 실제로 실리콘밸리에서 어떻게 코딩 교육이 이루어지는지에  대해서는 이 글을 쓰기 전에는 잘 몰랐다. 내가 실제로 경험한 아이들의 코딩교육은 예전에 hackathon에 참가하면 만나는 몇몇의 학생들 뿐이었다. 여기서는 hackathon이 나이에 제한 없는 경우가 많기 때문에 종종 어린 학생들을 만나게 된다. 참고로 hackathon이란 24시간에서 48시간 정도 엔지니어들끼리 모여서 제시된 문제를 해결하는 일종의 이벤트이다. 채택된 프로젝트는 꽤 큰 상금도 부여되고 가끔은 투자자와 연결도 가능하다.

당당하게 자신이 가지고 있는 아이디어를 서술하고 이것을 기술적으로 할 수 있는 사람들과 단 며칠 동안이라도 상품으로 만들려고 하는 친구들을 보면 참 어린 나이에 의지가 대단하다고 생각된다. 실제로 몇 년 전에 science hackathon에서 내가 만났던 중학교 3학년 친구는, 본인은 생물학을 굉장히 좋아하는데 혈당검사를 꼭 피를 뽑아서 하지 않고 apple watch처럼 wearable을 이용해서 잴 수 있는 방법을 연구하고 있다며 여러 분야의 과학자, 엔지니어들을 찾고 있다고 본인의 참가 의지를 밝혔다. 나는 워낙 이런 hardware 쪽에는 아는 것이 없어서 뭐 별달리 도움을 줄 만한 것은 없었지만, 정말 크게 될 녀석이다라고 생각했었다.


실리콘밸리에서는 아이들이 어떻게 새로운 테크놀로지를 배우나?

실리콘밸리에서는 어떤 면에서는 한국에 비하면 혼자서 배우는 것이  쉽지 않다. 우리나라처럼 학원이라는 곳이 없어서 도대체 새로운 것을 배우려면 어떻게 하지? 궁금증이 생겼다. 그래서 학부모 친구들에게 물어봤다. 물론 학교마다 다르지만, 거의 모든 학교가 after school program이 있어서, 본인의 적성과 관심에 따라 선생님의 지도하에 배울 수 있는 기회가 있다고 한다. 이런 방과 후 지도는 많은 학교들이 상당히 비싼 돈을 요구하는 곳도 있고, 학교나 지역 단체에서 거의 무료로 해 주는 곳도 있다. 본인의 소득 수준에 따라 시, 또는 주 정부에서 도와주는 경우도 있다. 아무래도 지역적 특징 때문에 실리콘밸리에서는 아이들의 코딩 교육이 다른 지역보다 훨씬 더 활발한 것은 사실인 것 같다. 그런데 학부모인 친구들과 대화를 좀 해보니, 코딩 교육의 수준은 극히 기본 적인 것 같다. 여기서도 코딩이 최근에 들어서 관심거리가 된 주제라 가르치는 선생님의 수준이 천차만별이라고 한다. 어떤 학교는 수학 선생님이나 과학 선생님이 본인의 본 과목 수업이 끝난 후에 기본적인 코딩을 가르치는 곳도 있고, 어떤 학교는 그것도 없어서 그냥 온라인 교육에 아이들을 맡기기도 한단다.


내가 아는 친구의 배우자가 학교 선생님이라서(Grade 7, 한국에서 중학교쯤) 물어봤더니, 모든 학교에서 코딩을 가르치고 싶어 하고, 학부모의 요구도 상당하지만, 우선 코딩을 가르칠 선생님의 부족하기 때문에 많은 학교가 시작하기를 꺼리고 있다고 한다. 아무래도 정확한 커리큘럼이 없는 이상 또 각 주의 교육청에서의 정확한 가이드라인이 없는 이상, 코딩 교육은 여기에서도 쉽게 이루어지지는 않는 것으로 보인다.


그럼 실리콘밸리아이들도 코딩은 안 배우나?

우선 거의 모든 사립학교들은 몇 년 전에 교과를 신설해서 어떻게 해서든 가르치는 것 같다. 공립학교도 이 지역에서는 거의가 코딩이 과목으로 신설되어 있다. 그리고 이런 정규과정 외에도 아이들은 유튜브나 다른 온라인 강좌를 토대로 배우는 것 같다. 아무래도 지역적인 특정상 여기서는 코딩을 가르쳐줄 사람도 많고 도움을 받을 곳도 많다. 아이들은 여러 가지 매체를 통해서 빠르게 최신 테크놀로지를 받아들이고 배우는 듯싶다. 구글이나 메타 등에서도 아이들에게 코딩을 가르치는 프로그램을 직접 운영하지는 않아도 저소득층을 위한 교육 프로그램등에 자금지원과 직원 봉사 등을 통해서 도와주고 있다.


코딩은 어릴 때 배우면 좋은가?

물론 좋다. 어릴 때부터 코딩을 배우면 이것을 통해서 무엇을 할 수 있나? 를 어려서부터 고민하게 된다. 코딩을 배워서 취업을 하거나 전업을 하는 것은 어른들이 코딩을 배우는 목적이다. 아이들은 다르다. 아이들에게는 내가 이것을 배워서 어디에 써먹을 수 있나? 가 중요하다 그리고 코딩을 가지고 정말 할 수 있는 것이 많다. 이것만 알게 되면 아이들은 금방 코딩을 배우고 지식을 확장할 수 있다.


내가 앞에서 소개했던 hackathon에서 만난 생물학에 관심이 있는 아이의 경우가 바로 이것의 좋은 예이다. 생물학을 배워서 좋은 대학에 가고, 또 거기서 학자가 되거나, 의사 선생님이 되는 것을 떠나서, 생물학에 관심이 있는 코딩을 할 줄 아는 아이는 대학의 진학이 목적이 아니라, 이것으로 무엇을 할 수 있는가를 고민한다. 그러다가 기발한 생각을 해 내고 자심의 의지로 계속 문제를 해결할 방한을 모색한다. 이것이 어떻게 보면 진정한 실리콘밸리의 힘이다. 이런 창의적이고 끈질긴 아이들이 미래의 경영자가 된다.


우리에게 있어서 이런 예는 공부해서 대학 가기도 힘든 판에, 무슨 쓸데없는 부담까지 아이에게 주나 로 오해할 수 있다. 세상의 문제들은 어른들이 해결해야 할 숙제들이고 아이들은 공부에 열중해야 한다의 논리가 아직은 우리에게 익숙하다.


그러나 세상은 바뀐다.

공부해서 의사, 판사 되고 과학자가 되는 것은 아직도 가능하고 고귀한 꿈이다. 그러나 꼭 의사가 되지 않아도 아픈 사람을 돌보거나 치료할 수 있는 일을 코딩, 즉 프로그램으로 할 수 있는 세상이 오고 있다. 그리고 프로그램을 하면 의학 쪽으로 간다 또는 예술 쪽으로 간다를 굳이 정할 필요도 없다. 코딩을 함으로써 의학 쪽에서 일하다가 예술 쪽으로 옮기는 것은 본인의 마음먹기에 달려있다. 그리고 이런 다른 경험을 통해서 좀 더 다른 쪽으로 문제를 모색하는 방법을 얻는 것이 바로 코딩이 주는 자유이다.

이것이 바로 코딩의 힘이다. 어디서든 사용될 수 있고, 어떤 것이든 창조할 수 있는 힘이 될 수 있다

내가 처음 우리 직장을 다닐 때 나를 멘토 해주었던 선배가 있다. 그 선배는 대학에서 경제학을 공부하고 졸업과 동시에 은행에서 Analysis 일을 했다. 그러다 어느 날, 본인이 하루 종일 하는 일을 간단한 Python 프로 그램을 이용하면 한 시간 만에 할 수 있다는 것을 알게 되고, 그때부터는 회사 몰래 본인의 일을 자동화시키기 시작했다. 그러다가 어느 날, 전문적인 엔지니어의 길로 들어왔다.


또 다른 예로, 삼성 전자에서 근무하는 내 고등학교 동창은 어느 날 본인도 Python을 배우고 있다고 하더라. 본인이 하고 있는 일을 자동화시키려고 한다고. 책을 몇 권 사서 보고 있는데 이론적으로는 어떻게 해야 할지 알겠다고, 근데 어디서 어떻게 프로그램을 시작해야 할지 모르겠다면서 나에게 조언을 구해왔다.


어떻게 코딩을 배우지?

물론 본인이 취업을 목적으로 코딩을 배우고 싶다면, 내가 일전에 쓴, 부트캠프 이야기를 추천한다. 코딩을 전문적으로 배우는 데는, 특히 앱을 만들고 싶다면, 우선 어떻게 인터넷이 움직이고, 무엇이 "앱"에 들어가고, 어디서 부터 이것을 배워야 할지가 분명히 정해져 있다. 그래서 차라리 쉽다. 누가 나한테, 나도 엔지니어가 되고 싶다. 어떻게 배우냐?라고 물으면 내가 스텝 1부터 10까지 나열해서 정해줄 수 있다.


근데 취미로, 또는 내 아이가 배우고 싶다고 하면 어디서 시작을 해야 하나?

이게 바로 million dollar question이다. 영어도 마찬가지다. 누가 TOEIC점수 900점 준비한다고 하면 책을 사다가 계속 연습 문제을 풀어보면 점수가 나아지겠지만, 생활영어 또는 미국에서 취업하고 싶어서 영어를 배우려고 한다. 그러면 조언을 하기가 쉽지 않다.


우리 아이 코딩을 어떻게 가르치나?라는 질문을 몇 번 듣고 나서 긴 고민 끝에 내 나름대로의 생각을 좀 정리해 보았다. 혹시 본인이 코딩을 취미로 배우고 싶거나 아이들을 가르치고 싶다면 참고하시길 바란다.


무슨 언어를 배우나?

프로그램을 전혀 배운 적이 없다면, Pyton으로 시작하라. 그러고 나서 앱을 만드는데 관심이 간다면, Javascript를 배우면 앱을 간단히 만들 수 도 있고, 게임을 만들 수도 있다. 앱을 만드는 것이 아니라, 취미로 또는 가장 많이 쓰고 배우기 쉬운 언어를 찾는 다면 Python이면 충분하다.


어떻게 시작하나?

앞서서 말했던 내 친구는 코딩을 처음 배우려고 책을 여러 권 샀다고 하더라. 아무래도 공부를 잘했던 친구라서 그런지, 책만 있으면 어떤 지식이든 습득가능이라는 자세다. 책으로 공부를 잘하시는 분들은 당연히 책도 좋은 도구가 될 수 있다. 나는 책으로 공부를 하는 사람이 아니어서 그런지, 별로 효과를 보지 못했다. 나 같이 모든 지식을 문제풀이(practice questions)나 예시로 배우는 사람들은 우선은 무엇으로 공부를 해야 하나?를 정하는 것이 중요하다. 나는 우선 유튜브를 좀 보기를 추천한다. 유튜브에는 정말 다양한 코딩 관련 자료가 있다. "코딩공부 하는 법", "코딩 입문"등을 검색해서 마음에 드는 자료를 찾아라.


영어가 가능하면 코드아카데미를 추천한다. 공짜이기도 하지만 정말 체계적으로 잘 설명이 되어있고, 퀴즈도 잘 되어있다. 나도 코드아카데미로 처음 Ruby를 배웠다. https://www.codecademy.com/

이 과정을 끝내고 웬만큼 코딩이 가능하면 다음 스텝은? 전문적으로 앱 개발자가 되고 싶거나, 전업이 목적이라면 이때야말로 부트캠프나 대학 같은 좀 더 체계적인 교육과정의 문을 두드릴 때가 되었다. 아니면, 간단하게 배운 것을 활용해서 재미있는 취미생활을 시작해 보자.


게임 만들기

단순한 Python이나 Javascript만을 가지고도 간단한 게임을 만들 수 있다. 간단한 브라우저에서의 위치 변경 만으로도 나름대로 그럴싸한 게임을 만들 수 도 있다. 참고자료는 여기에서.

로봇은 어때?

배운 것으로 게임정도를 만들었다면 이제 정말 어디다가 내놓아도 자랑스러운 실생활에서 쓸 수 있는 기계를 만들어보자. 나는 초등학생이건, 대학생이건, 취미로 배우고 싶은 분 들 이건, 나이, 경력에 상관없이 라즈베리파이  https://www.raspberrypi.com/를 이용해서 무엇이든 실제적으로 사용할 수 있는 로봇을 만들라고 조언한다. 예를 들어서 내가 Python을 처음 배우고 나서, 라즈베리파이를 이용해서 개에게 쿠키를 던저주는 기계를 만들었었다. 물론 소리가 너무 시끄러워서 개가 너무 무서워하는 바람에 실제로 사용한 지 몇 번 만에 치워버렸지만, 정말 재미있는 경험이었다. 이 프로젝트에 대해서 자세한 내용은 다음에 코딩예와 함께 설명하겠다.

https://www.raspberrypi.com/products/

참고자료 - 라즈베리파이가 뭐지?

라즈베리파이는 세상에서 가장 싸고 작은 컴퓨터라고 생각하면 된다. 컴퓨터를 가지고 사람들은 이메일이나 앱을 검색할 수 있다는 것은 알지만, 컴퓨터가 역시 다른 것들과 만나면 프로그램을 실행할 수 있는 로봇으로 변한다는 사실은 잘 모른다. 우리가 일상생활에서 사용하는 세탁기를 생각해 보자. 세탁기 안에는 큰 드럼통과 모터가 있고 버튼들이 있다. 우리가 버튼을 누르면 어떻게 되나? 바로 작은 컴퓨터가 실행되면서 드럼통을 여기저기 다른 방향으로 돌리고 물을 넣다 뺐다도 한다. 라즈베리파이가 바로 그런 작은 컴퓨터이다. 여기다가 카메라를 부착시킬 수 도 있고, 모터를 달 수 도, 작은 전기 소켓을 달면 불을 켤 수 도 있다.


아래의 기계가 하는 일

1. 라즈베리파이에 우선 카메라를 장착한다.

2. 카메라의 스피커를 이용해서 개를 부른다. 물론 앱을 따로 만들어서 여기에 연결시킨 다음에 개를 부를 수도 있지만, 나는 간단하게 내 목소리를 녹음해서 저장한 다음에 내가 원할 때 그 저장된 목소리를 실행해서 개를 불렀다.

3. 개가 다가오면 비디오 촬영을 시작한다.

4. 라즈베리파이에 연결된 모터를 이용해서 쿠키가 얹어있는 밑부분을 연다

5. 쿠키가 떨어진다

6. 카메라를 끈다. 작동이 종료된다.

내 처음 라즈베리파이를 이용한 프로젝트

여기까지 오는데 한 6개월에서 1년이 걸린다. 이렇게 본인이 기계까지 만들고 나면, 정말 누구의 가이드 없이 본인이 다음 프로젝트를 찾는 힘이 생긴다.


억지로라도 코딩을 시켜?

그럴 필요는 전혀 없다. 다른 모든 것과 마찬가지로 코딩도 변한다. 괜히 하기 싫은 거 억지로 가르쳐도, 써먹지 않으면 잊어버리고, 그러면 시간낭비가 된다. 또 잊어버리지 않는다고 해도, 계속 써먹고 응용하지 않으면 다음에 새로운 것이 나왔을 때 다시 배워야 한다. 이렇게 억지로 배우는 것은 시간낭비다. 차라리 나중에 성인이 돼서 필요할 때 본인이 알아서 배우는 쪽을 추천한다. 앞에서 언급했듯이, 어려서 무엇인가를 배우는 가장 큰 장점은 배우고 나서 이것으로 뭘 할 것인가의 고민이다. 그런 고민이 없이는 어떤 중요한 지식도 필요 없는 쓸데없는 지식이 되어버리고 머릿속에서 잊힌다.


먼저 코딩에 관심이 없는 아이에게 코딩을 하도록 부축이고 싶으면, 이런 코딩으로 할 수 있는 많은 일들을 우선 알려주기를 바란다. 무엇을 하던 동기부여가 가장 우선이 되어야 한다. 동기부여 없이는 아무리 똑똑한 아이도 잘할 수 없다.


코딩은 정말 새로운 신세계를 열어줄 수도 있고, 괜한 시간낭비가 될 수 도 있다. 동기부여와 얼마나 재미있게 배우냐에 따라 결과가 달라진다.  


대문은 Photo by ThisisEngineering RAEng on Unsplash


                    

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari