아들과 함께 프로그래밍한 이전 이야기가 궁금하다면 아들과 함께 프로그래밍하기 글과 아들과 함께 프로그래밍 2 글을 먼저 보기 바란다. 이 글은 프로그래머이면서 교육자로 살고 있는 한 명의 아빠가 아들과 함께 프로그래밍을 하면서 느낀 점을 기록하고 있는 글이다. 나와 아들의 추억을 남기기 위해 기록으로 남기고 있다.
오늘은 아들과 함께 프로그래밍하기 세 번째 이야기를 시작해 보려 한다. 아들과 함께 프로그래밍 2 글에서 언급했듯이 아들은 파이썬을 경험하면서 클래스에 대한 대략적인 이해를 하고, 온라인 JavaScript 스터디를 통해 다른 개발자와 코드 리뷰를 주고받으면서 온라인으로 소통하는 경험을 했다.
지금까지 한 경험에서 한 단계 더 나아갔으면 하는 바람으로 온라인이 아닌 오프라인 강의와 온라인 코드 리뷰를 병행하는 이펙티브 코틀린(Effective Kotlin) with TDD, Refactoring, Clean Code 교육 과정에 수강 신청했다. 이 과정은 내가 교육 사업을 하고 있는 NEXTSTEP의 교육 과정이고, 팀원으로 함께하는 친구의 교육 과정임에도 불구하고 무료로 수강하는 것이 아닌 77만 원을 지불하고 교육을 수강했다. 이렇게 77만 원을 지불하고 수강하도록 한 이유는 아들에게 교육 과정에 더 열심히 참여하도록 하고, 내가 이 정도의 비용을 지불할 만큼 아들의 교육을 중요하게 생각하고 있다는 메시지를 주기 위함이었다.
아들의 마음가짐은 확실히 이전과 달랐다. 아들은 재직자들과 같이 오프라인 수업에 참여해야 한다는 것이 은근 걱정이기도 하면서 큰 기대를 하는 눈치였다. 나 또한 아들과 오프라인 수업에 같이 참여할 수 있다는 것이 더없이 큰 즐거움으로 다가왔다.
걱정이 너무 컸기 때문일까? 첫 번째 오프라인 수업이 있는 날 아들은 수업에 참여하지 못했다. 긴장과 기대가 커서인지 열이 38도 근처를 오르내린다는 아내의 연락을 받았다. 몇 달 전 코로나 상황이 좀 나아지면서 학교 등교하는 첫날 열이 너무 많이나 코로나 검사를 받은 적도 있는데, 오프라인 수업 첫날 같은 일이 발생했다. 굳이 무리하지 않기로 했다
오프라인 수업 두 번째. 드디어 아들과 함께 프로그래밍 관련한 오프라인 첫 수업에 참여했다. 아들과 함께 프로그래밍 수업을 듣는 순간이 오다니 무덤덤한 척했지만 속으로 무척 즐거웠다. 나란히 앉아 수업을 들으며 수업 내용이 이해되느냐는 이야기를 주고받을 수 있다는 것만으로 즐거웠다. 모든 강의 내용을 소화하지는 못했지만 일정 부분이라도 소화할 수 있다는 것만으로도 기특했다. 부모의 마음이란 어쩔 수 없나 보다.
재직자들과 함께 미션을 진행하고 코드 리뷰를 주고받는 것을 은근히 걱정하던 아들은 곧잘 미션을 진행하고 리뷰어들과 의견을 주고받으며 과정에 참여하고 있었다.
세 번째 오프라인 수업이 있던 날이었다. 오프라인 수업에 참여하기 위해 지하철을 타고 오면서 심심했던지, 아니면 리뷰어가 피드백으로 준 내용이 궁금했던지 "아빠 캡슐화가 뭐야"라는 카톡 메시지가 날아와 순간 당황했다. 나도 프로그래밍 교육자로 살고 있지만 아들의 눈높이에서 캡슐화를 설명하는 것이 쉽지 않아 역으로 질문하는 방식으로 접근했다. 이런저런 질문을 주고받으며 아들이 스스로 깨닫기를 바라는 마음이었다.
아들과 프로그래밍 관련해 이런 대화를 나눌 수 있다는 것이 또 하나의 큰 즐거움이었다. 그런데 이보다 더한 즐거움은 오프라인 수업을 마치고 집으로 돌아가면서 지하철에서 나눈 대화였다.
아들: 아빠. 교육 사업이 왜 잘 되는지 알 것 같아?
나: 오 그래. 왜 잘되는 것 같아?
아들: 미션을 구현하고, 1:1로 코드 리뷰받는 방식이 너무 재미있어서 잘 될 수밖에 없을 것 같아.
나: ...
아들: 아빠. 그런데 어떻게 이런 방식으로 교육할 시도를 한거야? 정말 대단한 것 같아
나: 아빠도 너처럼 가만히 앉아 강의만 듣는 수업이 너무 싫었거든. 그래서 강의에 좀 더 적극적으로 참여하고, 재미도 있는데 빠르게 역량을 향상할 수 있는 방법을 찾다 보니 이런 방식으로 진행하게 됐네
아들은 교육 과정이 끝나면서 진행한 "다른 개발자에게 이 교육과정을 추천하는 이유는?"이라는 설문에 "재미있다."라는 짤막한 답변을 남겼다. 아들도 인정한 교육이라니 내가 묵묵히 잘 걸어가고 있음을 인정받는 기분이었다.
퇴근길에 나눈 대화 중 더 큰 즐거움을 준 아들의 말은 아들이 꿈이 생겼는데 "구글에 입사하는 것"이 꿈이란다. 아들이 나를 보며 항상 하던 말이 "자기는 하고 싶은 일이 없는데, 아빠는 하고 싶은 일이 있어 참 좋겠다."였다. 이 꿈이 언제까지 이어질지, 누군가에는 꿈으로 적합하지 않을 수도 있다고 생각할 수도 있지만 그래도 무엇인가 목표로 하는 것이 생겼다는 것만으로도 한 단계 성장했다는 생각이 든다.
NEXTSTEP의 모든 교육은 미션 기반으로 구성되어 있기 때문에 과정이 끝나는 시점에 모든 미션에 대한 완료율이 15% ~ 30% 사이이다. 회사 생활과 교육 과정을 병행하는 것이 쉽지 않고, 리뷰어들이 만족하는 수준의 코드를 구현해야 merge가 되어 다음 단계로 나아갈 수 있다. 요구사항은 단순해 보이지만 클래스를 설계하고, 프로그래밍 요구사항을 만족하기가 생각만큼 쉽지 않다.
교육을 마치기 3일 전. 아들이 저녁 9시부터 미션을 진행하고 있다. 다른 날은 밤 12시나 되어야 겨우 시작하는 것이 일반적이었는데 그 날은 좀 다급했나 보다. 다음 날 아침에 일어나 리뷰 요청 현황을 보니 새벽 3시까지 두 개의 미션을 동시에 진행하고 리뷰 요청한 흔적이 남아 있다.
아들이 프로그래밍 학습에 점점 더 몰입하는 모습을 느낄 수 있었다. 지금까지 게임이 아닌 학습에 이렇게 오랜 시간 몰입하는 모습을 본 적이 없던지라 더 신선한 경험이었다. 아들이 모든 미션을 완료하기를 기대하지 않는다. 꾸준히 자신이 할 수 있는 수준에서 미션에 적극적으로 참여하기를 바랄 뿐이다. 그 경험만으로도 충분히 의미 있는 경험이라 생각한다.
나는 아들이 프로그래밍 학습을 통해 반드시 프로그래머가 되어야 한다고 생각하지 않는다. 아들이 프로그래밍 학습을 통해 연습했으면 하는 것은 "생각하는 연습"이다. 코드의 구조를 설계하고, 개선하려면 다양한 방식으로 많은 생각을 해야 한다. 머릿속으로 다양한 구조를 설계하고, 구현해보는 생각하는 연습이 성장하는 시기에 정말 필요한 연습이지 않을까라는 생각을 한다.
현재 대학 입시를 목표로 하는 주입식 교육은 학생들의 생각을 요구하지 않는다. 좋은 성적을 받으려면 자신의 생각을 개입하지 않은 상태에서 빠르고 정확하게 문제를 푸는 것이 더 중요하다. 이런 역량이 진정 인공지능 시대에 필요한 역량이 맞는 것인가? 지금 시점에 가장 필요한 역량은 스스로 생각하는 역량을 키우고, 누군가 방향성을 제시하지 않아도 두려움 없이 도전할 수 있는 용기를 기르는 것이 그 무엇보다 중요한 것이 아닐까?
아들은 프로그래밍을 학습하면서 프로그래밍 자체만을 학습하는 것이 아니다. 요구사항을 분석해 프로그래밍으로 구현하기 위해 todo list를 작성하면서 자연스럽게 국어 연습을 하고 있다.
GitHub commit log를 영어로 남기고, 클래스 이름과 함수 이름을 읽기 좋게 구현하기 위해 영어에 대한 필요성도 조금씩 느끼고 있다.
아들의 프로그래밍 학습 과정을 보며 나 또한 참 많은 것을 느끼게 한다. 아이들의 교육이 어떠해야 하는지에 대해 아들 한 명의 사례를 통해 일반화할 수는 없다. 하지만 지금 대한민국 교육이 잘못된 방향으로 가고 있다는 것은 확실히 알 수 있다. 아이들을 가진 부모라면 우리 아이들이 어떤 교육을 받으며, 어떤 삶을 살아가야 할 것인지에 대한 한 번쯤 생각해 봤으면 좋겠다.
진정 아이들을 위한다면 우리 부모들이 먼저 변화해야 한다. 용기를 내어 변화하고 성장해야 할 사람은 아이들이 아닌 우리 부모들이라는 것을 깨달았으면 좋겠다.