주: 이 글은 이민석 학장님의 허가 하 이승환이 편집했으며, NHN NEXT의 공식 입장과 관계가 없습니다.
미래창조과학부가 초등학교 대상 코딩 교육을 들고 나왔습니다. ‘섬리’를 개발해 야후에 짭짤하게 판 영국의 17세 댈로이시오 이야기도 나왔으며, 최근엔 빌 게이츠 등 유명 IT 선수들이 나온 동영상도 돌고 있습니다. 다 좋고, 늦은 감이 있지만 대환영입니다.
소프트웨어 교육, 상을 주는 방식의 접근은 곤란
외국에 살던 그들이 다들 어릴 때부터 코딩을 배운 것은 사실입니다. 우리 나라의 유명한 게임사 포털사 사장님들도 역시 어릴 때부터 코딩을 했죠. 하지만 잊지 말아야 할 첫번째 것은 그들이 무슨 상을 받기 위해서 코딩을 한 것이 아니라는 것입니다. 또 그들이 좋은 대학에 가기 위해서 코딩을 한 것도 아니죠.
우리나라에선 뭐 이야기만 하면 대회를 만듭니다. 정부가 대회를 좋아하는 이유는 ‘폼’나고, ‘세금’을 쓰기가 쉽기 때문일 것입니다. 대회에는 높으신 분들이 나와서 인사할 자리도 생기고, 숫자 채우기도 쉽습니다. 그래서 경쟁적으로 높은 분이 주는 상을 만들려고 노력합니다.
학생들을 대상으로 대회가 추진되면, 그 상장의 가치에 대하여 주최자, 참가자, 참가자의 부모들이 신경 쓰기 시작합니다. 왜 그런지는 바보도 다 알죠.
말만 내세우지 말고, 정말 배울 수 있는 환경을 만들자
최근에는 그래도 커뮤니티 행사가 많고 자신과 같은 처지(?)에 있는 친구들을 볼 기회가 많기 때문에, 전반적으로는 상황이 개선되고 있다고 이야기할 수 있어서 다행이지만, 청소년기의 소프트웨어 개발자 대부분이 겪는 문제는 다음과 같습니다. 그리고 교육에 앞서 이런 문제들을 우선적으로 해소해야 할 것입니다.
문제 1. 선생님이 없다.
이 문제는 아래 모든 문제의 시발점이 되는 엄마 문제에 해당됩니다. 청소년기의 개발자들은 실무적 개발 경험을 가진 선생님을 거의 만나지 못하고 있습니다. 그래서 독학에 의존하거나, 여느 과목과 같은 암기식, 문제풀이 방식으로 프로그램 교육을 받고 있습니다. 때문에 진도는 나가되, 소프트웨어에 의한 문제 해결 능력이 심하게 결여되어 있습니다.
문제 2. 배우는 방법이 틀렸다.
문제를 정의하고 그 문제 해결을 하는 과정에서 배움이 일어나야 하는데, 진도를 나간 후 연습 문제를 푸는 방식의 학습이 지속적으로 진행되고 있습니다. 그래서 자신의 능력을 주어진 문제에 대한 풀이를 할 수 있다는 정도로 규정하고, 소프트웨어로 풀어내야하는 현실의 문제와, 소프트웨어가 만들어내는 가치에 대한 접근을 매우 두려워하는 등 자신감이 부족합니다.
문제 3. 롤모델이 부실하다.
그들의 롤모델은 다분히 빌 게이츠, 스티브 잡스, 마크 주커버그, 김정주, 이해진 등 보통은 달성되지 않는 인물들에 집중되어 있습니다. 범접하기 어려운 위인이 롤모델이면 인생은 피곤해지기 마련입니다. 단계적 목표를 잡고, 단기간에 얻을 수 있는 성과나 해결한 문제, 그리고 그 접근 방법에 대한 평가가 없기 때문에, 쉽게 지치고, 입문 초기의 높았던 동기가 금방 사그러들 위험이 있습니다.
문제 4. 동료 그룹이 전반적으로 부실하다.
특히 동아리 중심의 청소년 개발자들은 어설픈 동료, 어설픈 선배에 의해 훈련 됩니다. 그리고 선배들의 스파게티 코드나 개발 관행이 최고인듯한 착각에 쉽게 빠지죠. 장기적으로는 결국 강호의 선수를 만나게 되고, 소프트웨어 공학을 알게되어 크게 문제가 되지 않을 수도 있지만, 어릴 때 제대로된 프랙티스를 배우고, 리뷰를 받을 수 있다면 아주 빨리 클 수 있습니다.
중고등 개발자들 가운데는 위의 문제들을 자각하지 못하고 그저 코딩을 할 수 있어서 행복해 하는 경우도 있습니다. 하지만, 잠시만 차분하게 이야기 해보면, 자신감의 결여, 미래에 대한 불안감, 누구의 도움과 지지도 받지 못하고 있다는 외로움에 힘들어 하는 애들을 쉽게 발견할 수 있습니다.
자신이 소프트웨어 개발이라는 꿈을 키워나가는 것에 대한 최소한의 지지마저 얻지 못한 청소년 개발자들은 자신의 어려움을 이야기하면서 눈물을 글썽이고는 합니다.
우리 ‘소프트웨어 엔지니어’ 어른들은 이들이 짧은 시간에 대박 성공을 할 수 있게 하는 것은 어렵겠지만, 적어도 이 바닥에 안착하여, 기쁨과 자신감을 찾고, 장기적으로는 소프트웨어 개발을 통하여 자신이 설정해 가는 목표에 다가가는 만족스런 삶을 살 수 있도록 도와줘야 할 것입니다.
소프트웨어 교육에 신경 써줬으면 하는 네 가지
먼저, 제발 그냥 “재미로” 접근하게 했으면 합니다. 애들은 우선 재미로 놀다가, 지겨워질 때 쯤이면 창의성이 발현됩니다. 그리고 그렇게 성장한 SW 엔지니어가 평생 “신나게” 그 일을 할 수 있는 환경을 만드는 게 우선입니다.
다음으로 놀 꺼리에 대해 좀 더 넓게 생각해 봤으면 합니다. 어릴 때부터 코딩을 할 줄 안다고 모두 빌게이츠, 주커버그, 댈로이시오가 되지 않습니다. 그들이 코딩을 하지 않을 때, 뭐 하고 놀았는지가 아주 중요합니다. 아마도 코딩보다 다른 놀 꺼리, 놀 시간 그것이 먼저일 가능성이 높습니다.
그리고 세 번째는 어린이들이 재미로 SW를 하기 위해서는 좋은 선생님이 많이 필요합니다. 당장 그런 분들이 많이 없다는 것이 큰 문제다. SW 기술, 엔지니어 마인드를 가진 선생님을 양성해야 합니다. 또 코딩이 놀이처럼 되려면 엄마 아빠도 같이 놀아주면 더 좋겠지요.
마지막, 기왕이면 공개SW로 합시다. SW는 문화입니다. 문화는 사람들이 모여서 만들어지고, 문화는 남들이 한 것을 보면서 만들어집니. 따라하고, 바꿔보고, 보여주고, 자랑하고, 같이 만들면서 더 잘 배우고, 더 잘 만들고, 그러다가 대단한 것이 나옵니다.
‘다 자란’ 소프트웨어 엔지니어 여러분들께 드리는 부탁
마지막으로, 정부의 노력만으로는 부족합니다. 이미 현업에 뛰어든 분들의 관심과 배려가 필요하며, 그래서 아래와 같은 부탁을 드리고 싶습니다.
1. 여러분 어릴 때를 생각해 봅시다. 주변에 어린 개발자들을 찾아봅시다.
만나서 떡볶이도 사주고, 샌드위치도 같이 먹고, 바나나 우유도 나눠 마십시다. 혼자가 아니라는 사실을 알려줍시다.
2. 커뮤니티 행사 때 주변의 중고등학생 개발자들을 적극적으로 초청합시다.
그리고, 꼭 여러분은 아니라도, 가까이에 있는 좀 있어보이는 선수를 그들의 롤모델로 삼을 수 있도록 만나게 하고 보여줍시다.
3. 이들의 기술적 멘토가 되어줍시다.
뭐 상시적으로 만나지는 않더라도 여러분의 이메일/페이스북 주소를 알려주고, 그들의 글에 ‘좋아요’ 눌러주고, 질문에 답해 주고, 코드 리뷰를 해줍시다. 그들의 질문에 답하고, 코드를 보면서 보나마나 당신도 배웁니다.
4. 나아가 여러분의 (오픈소스) 프로젝트에 참여시킵시다.
뭔가 그들이 도와줄 수 있고 기여할 수 있는 일이 분명히 있을 겁니다. 그들에게 도움을 요청하기 위해서는 아마도 여러분 스스로 더 정갈하게 일을 해야할 수도 있고 그 과정이 프로젝트에 도움이 되기도 할 겁니다.
마지막.
그들은 어제의 우리입니다.
원문: 쉽게 살 수 있을까? / 편집: 리승환
woolrich outletHow to Maintain Louis Vuitton Handbags Made of Different Materials