조기 SW 교육
21/06/2014
어릴 때 부터 소프트웨어 교육을 시작시키자 는 주장이 있다. 계산 과학 이론에 대한 교육이 아니라 실제 소프트웨어 코드를 작성하는데 필요한 프로그래밍 스킬 – 코딩 기술에 방점을 두고 있는 점에서 신선하다. 이러한 주장은 특히 모바일 환경에서는 물리적인 기기를 만드는 것 보다 그 위에서 동작하는 소프트웨어가 돈이 된다는 사실이 널리 받아들여짐으로써 힘을 얻었다고 생각한다. 거칠게 도식화 하자면
앞으로 모바일이 대세 -> 모바일에서는 물리적인 기기에서 나오는 수익 보다 플랫폼 비즈니스가 돈이 됨 -> 플랫폼은 소프트웨어 -> 소프트웨어가 중요함 -> 미래를 위해 소프트웨어 교육에 투자하자 -> 어릴 때 부터 소프트웨어를 직접 만들어 보는 기회를 주자
정도로 요약할 수 있겠다.
나는 어린이에게 프로그래밍 기술을 가르치는 것이 그가 나중에 좋은 소프트웨어를 만들 가능성을 얼마나 높일 수 있을지 의심스럽다. 레고로 세계의 멋진 건축물들의 모형을 만들면서 건축가의 꿈을 키울 수 있다는 점을 부정하지 않는다. 다만 이렇게 레고를 사용해서 얻은 지식이 강철과 시멘트로 이루어진 건축물을 만드는데 도움이 될 지는 회의적이다. 이 주장에 대해 “그렇기 때문에 더욱 더 프로그래밍 언어를 직접적으로 코딩하여 동작하는 소프트웨어를 만드는 것을 교육해야 한다” 는 주장은 어린이에게 레고를 뺏고 대신 삽을 쥐어 주며 시멘트와 모래를 물과 섞는 것을 가르치는 것에 다를 바 없다고 생각한다.
당장 써먹지도 못할 이론을 가르치기보다 어린이들에게 자기 손으로 동작하는 것을 만들고 확인할 방법을 알려 주면 흥미를 끌어낼 수 있다는 점에는 전적으로 동의한다. 하지만 바로 그 지점에서 계도를 멈추어야 한다고 생각한다. 프로그래밍이 재미있다 는 것을 알려 주기만 하면 되는 것이고 거기서부터는 흥미를 가진 사람에 한해 추가적인 전문 교육 강좌가 제공되면 충분할 것이다.
좋은 것이면 더욱 더 많은 어린이들에게 더 많이 가르쳐 주는 것이 좋지 않겠는가 라는 질문이 생겨날 지도 모르겠다. 하지만 코딩 기술은 말 그대로 학문의 영역이라기 보다 기술의 영역이다. 다시 말해 실질적인 문제 해결의 기술이라고 하겠다. 그러므로 문제가 발생한 시/공간적 상황에 따라 그 해결 방식이 모두 달라진다. 따라서 근원적이고 원론적인 결론 뿐 아니라 특정한 환경이나 시간적인 가정 하에서의 제한적인 해결 역시 그 정당성을 인정받는다. 뿐만 아니라 오히려 주어진 상황을 잘 이용함으로써 일반적인 해결책보다 더 나은 효율을 보이는 답변이 있는 경우가 훨씬 더 많은 것이 사실이다.
좋은 것이면 더욱 더 많은 어린이들에게 더 많이 가르쳐 주는 것이 좋지 않겠는가 라는 질문이 생겨날 지도 모르겠다. 하지만 코딩 기술은 말 그대로 학문의 영역이라기 보다 기술의 영역이다. 다시 말해 실질적인 문제 해결의 기술이라고 하겠다. 그러므로 문제가 발생한 시/공간적 상황에 따라 그 해결 방식이 모두 달라진다. 따라서 근원적이고 원론적인 결론 뿐 아니라 특정한 환경이나 시간적인 가정 하에서의 제한적인 해결 역시 그 정당성을 인정받는다. 뿐만 아니라 오히려 주어진 상황을 잘 이용함으로써 일반적인 해결책보다 더 나은 효율을 보이는 답변이 있는 경우가 훨씬 더 많은 것이 사실이다.
자신의 세계가 매일 매일 더 커지고 넓어지는 어린 시절에 실질적인 문제 해결 방법을 집중적으로 교육받을 필요가 있을지 의문이 든다. 차라리 생각을 깊게 만드는 질문 – 예를 들어 소수는 왜 무한한가 에 대해 생각해 보는 것이 나중을 위해 더 나은 투자가 될 것으로 생각한다.