내가 딸에게 소프트웨어를 가르치고 싶은 이유

Source : http://goo.gl/D70g8h
Source : http://goo.gl/D70g8h

제 딸 새봄이의 돌잔치때 있었던 일입니다. 돌잔치에 의례적으로 올라가는 돈, 실, 마이크, 연필 외에 최근에는 ‘마우스’가 추가되었습니다. 돌잔치 사회자에 의하여 한가지 항목을 빼는 것으로 하였는데, 돌잔치의 내빈들의 열화와 같은 성원으로 ‘마우스’가 퇴출되었습니다. 저는 숭실대학교 컴퓨터학부 출신이고, 많은 선후배들과 IT 직장동료들이 그 자리를 채우고 있었죠. 사회자님은 이렇게 까지 ‘마우스’를 혐오하는 돌잔치는 처음 본다라고 농담하셨습니다.

아무튼 IT직종 내에서도 사실 저희들의 일에 대한 평가는 사실 이렇습니다. 나는 재미있어 일단 하고 있지만, 아이들에게 물려준다면 글쎄? 라는 입장인거죠. 그러한 환경을 바꾸는 것도 사실 저희 들이 당면한 숙제이고, 실제 현업에 계신 저희들이 할 일이지만, 아무튼 국가와 세계적 트랜드는 SW에 대한 가치를 높게 평가하기 시작했고, 국가나 기업들도 나서서 어린 SW인력을 양성하려고 듭니다.

닷컴붐 이후, 국가주도의 저품질 SW인력의 양성으로 인하여 망가진 생태계에 대한 우려로 이에 대한 반발심도 여전하지만, 기본적으로 저는 아이들에게 SW를 가르치는 것은 찬성입니다. 하고 많은 것 중에 왜 SW냐고 물으신다면, 제가 왜 제 딸에게 SW를 가르치고 싶은지와 딸 아이와 무엇을 하고 싶은지를 설명해 드리려고 합니다.

소프트웨어는 닳지 않는다.

아이와 아버지가 블럭이나 어떤 멋진 작품을 만들었다고 생각해 봅시다. 10년 후에 이 작품이 존재할 가능성은 얼마나 될까요? 특히 동작하는 기계를 만들었다면, 그 이후에도 이게 동작할까요? 제가 어릴적 작성했던 베이직 프로그램은 5.25인치에서 시작하여, 3.5인치, hdd, cd-rom, dvd-rom, 이제는 클라우드까지 저장 매체가 바뀌었을뿐, 여전히 존재합니다. 그리고 지금도 구동도 가능합니다. 20년후에 제 딸아이가 아버지가 달아놓은 주석을 보고 뭐라고 느낄까요?

협업의 중요성

제가 가르치고 싶은 것은 코딩이 아닙니다. 코딩은 붓을 잡는 법과 마찬가지구요. 실제 하고 싶은 것은 아이와 함께 ‘무언가’를 만들어보는 일이죠. 기획도 해보고, 이미지 리소스를 그려보고, 코딩도 해서 돌아가게요. 그리고 저는 아이와 업무를 분담할겁니다. 어쩌면 몇몇 친구들을 더 데리고 할지도 모르죠.

블럭을 쌓는 일도 물론 이런 경험을 시켜줄 수 있습니다. 그러나, 소프트웨어만큼 협업에 최적화된 도구는 없습니다. 아예 협업을 위한 관리도구만 배우는 것도 엄청난 일이 될 정도로 말이죠. 형상관리에 대한 개념을 가르치는 것, 이것은 협업의 기본을 알려줄수 있습니다.

소프트웨어 라이프사이클을 통한 복잡한 논리 집합의 대한 개념

소프트웨어는 다들 완벽한 줄 아십니다만, 사실 버그는 필연입니다. 더욱 더 재미있는 것은 초기 단순했던 소프트웨어는 요구사항이 늘어나고 기능이 많아질수록 누더기가 된다는 점이죠. 겉에서 보기에는 완벽하고 오래된 논리는 이러한 구조를 모두 가지게 됩니다. 우리가 그동안 쌓아온 지식들이 얼마만큼 대단한지에 대한 경외심과 함께, 그것이 복잡해짐으로서 발생한 많은 헛점들, 그리고 그것이 얼마나 어렵고 대단한 것인지를 가르칠 수 있을것 입니다. 왜 어른들의 세상이 그토록 복잡한지, 단순한 것도 지키지 못하는지를 알려줄 수 있습니다. 너무 일찍 시니컬해지려나요.

오픈 소스를 이용한 글로벌 마인드

일단 영어부터 좀 가르치는 문제도 있겠지만, 오픈 소스를 이용하고 나중에는 거기에 참여를 시키고 싶습니다. 해외에 내보내지 않아도, 영어를 잘 못해도, 코드 한 두줄의 의사 소통이 더 편한 무리들이 사실 개발자들입니다. 블럭을 같이 쌓을수는 있지만, 지구 반대편에 있는 아르헨티나 친구와 같이 쌓을수는 없잖아요. 소프트웨어 세계에서 글로벌 경험은 클릭 몇번으로 가능합니다.

생각한것을 현실화 시키는 능력

아이들은 아이디어가 많다고 알고 있습니다. 사실 입니다. 그러나 이를 구체화 할때 어떤 문제점이 발생하는지, 어떻게 하는 것이 아이디어에 더 집중하고 발전시킬 수 있는지에 대해 가르치고 경험시키고 싶습니다.

무언가를 만들었다는 자신감과 재미

제가 소프트웨어를 시작했고, 이쪽 바닥에 놀고 있는 가장 큰 이유입니다. 무언가 내 손으로 만들었고, 많은 사람들이 이를 쓰거나 보고 즐거워 한다라는 것에서 오는 성취감은 자신감을 길러줄 수 있습니다.

다시한번 말씀드리지만, 제가 가르치고 싶은 것은 코딩이 아닙니다. 코딩은 SW를 만드는 기술 중 하나에 불과하며, 실제 SW를 만드는 것은 전혀 다르고 더 큰 일입니다. 그리고 실제로 그 가치는 ‘지식’이 아니라 ‘경험’에서 나옵니다. 저는 그 경험을 아이에게 일찍 가르쳐보고 싶다고 생각합니다.

과연 국가나 기업은 어떤 목적과 비전하에 아이들을 가르치려고 하는 걸까요? 명확한 비전과 목적하에만 구체적인 좋은 실행방안이 나오지 않을까 싶습니다. 그저 랭기지 한 두개 가르쳐주는 거라면, 동영상 강의로만도 사실 충분합니다. 그리고, 이러한 경험으로 벤처 창업이나 제가 속한 이 바닥으로 오라는 의미는 아닙니다. 무엇보다도 이 경험을 해보라는 것이죠.
문제는 정작 제가 소프트웨어를 주업으로 손 놓은지 꽤 되가네요.

글 : 숲속얘기
출처 : http://goo.gl/y3Exbo

%d bloggers like this: