-
초등 빌게이츠 육성 프로젝트에서 말하는 코딩 교육은 사절. 하지만 어렸을 때부터 코딩을 통해서 제품 생산의 한 사이클을 경험하는 것은 나쁘지 않은데..IT topics 2013. 5. 7. 17:41반응형
초등 빌게이츠 육성. 이게 뭘까? 이번 박근혜 정부의 미래창조과학부가 미래의 빌게이츠를 만들겠다고 발표한 프로젝트 이름이다. 초등학교때부터 코딩을 가르쳐서 빌게이츠와 같은 사람들을 육성하겠다고 하는 것이다. 전에 빌게이츠가 한국에 방문한 다음에 나온 대책이어서 빌게이츠 측과 뭔가 교감이 있어서 만든게 아니냐 하는 얘기도 나오고 있는데 초등학교에 MS의 스몰베이직(Small Basic)을 가르치겠다는 이야기가 나오고 있다. 빌게이츠가 MS 출신이어서 이것을 권장했다는 얘기도 돌고 말이다. 어찌되었던 골자는 얼라때부터 열심히 코딩하는 것을 가르쳐서 빌게이츠와 같은 IT업계의 큰 일꾼을 양성하겠다는 것인데 과거의 스티브 잡스 양성 프로젝트(?)나 3.20 보안사태 이후에 화이트해커를 양성하겠다고 말하는 것과 같은 맥락에서 이른바 할일없는 정부의 뻘짓이라는 의견이 많은게 사실이다.
뭐 개발자 입장에서 과연 어렸을 때부터 코딩이라는 것을 배우면 빌게이츠와 같은 사람이 될 수 있을까에 대해서는 조금은 부정적이다. 만약 그렇다면 30년 가까이 PC를 다뤘던 나는 이미 빌게이츠를 넘어서는 엄청난 인물이 되어있어야 하는데 지금의 나는 솔직히 빌게이츠의 100만분의 1도 안되기 때문에 말이다. 뭐 개인적이 능력 차이가 엄청나니 어쩔 수 없는 일이지만 말이다. 어찌되었던 초등학교때부터 지루하기만 한 코딩을 배워서 과연 제대로 써먹을 수 있을까가 걱정이 되는 것이 사실이기는 하다.
하지만 코딩이라는 것을 단순히 뭔가 책에서, 혹은 인터넷에서 있는 내용을 배끼는 수준이 아닌 스스로가 프로그램을 기획하고 설계하고 만드는 과정에서 코딩을 사용한다면 초등학교 시절에 뭔가 만들었다는 경험과 그 경험을 바탕으로 자신감을 만들 수 있다는 점에서는 충분히 생각해봐야 할 일이다. 그것이 MS의 스몰베이직이 되었던, 아니면 그 전에 인기가 있었던 GW 베이직이 되었건, 지금 많이 사용하는 자바(Java)나 C, C++, C#이 되었건, 또는 스크립트 언어인 자바 스크립트나 파이썬, 펄이 되었건간에 말이다. 이런 컴퓨터 언어를 통해서 뭔가를 만들어서 그 결과를 바로 본다면 그것을 통해서 얻는 다 만들었다는 결과에 대한 자신감 및 경험은 나중에 성인이 되어서도 충분히 좋은 시너지 효과를 가져올 수 있기 때문이다.
베이직이나 파이썬과 같은 인터프리터, 혹은 스크립트 언어들은 작성과 동시에 실행해서 결과를 볼 수 있고 자바나 C, C++ 등과 같은 컴파일 언어는 컴파일 과정이라는 중간 과정을 거치지만 역시 컴파일 시간 역시 많이 들어가지 않기 때문에(뭐 대형 제품을 만드는 경우라면야 컴파일 과정만 몇시간 걸릴 수도 있지만 여기서는 간단한 프로그램 수준이라고 보자) 바로 결과를 확인할 수 있다는 점에서 어떤 것을 사용해도 무방할 것이다. 뭐 쉽게 배울 수 있는 스크립트 언어가 처음 접근하기는 편할테지만 이 역시도 장단점은 존재하기 마련이니 말이다. 어찌되었던 어떤 언어를 사용하든간에 잘 배워서 내가 원하는 모양의 뭔가를 만들어서 바로 결과를 보게 한다는 점에 있어서 코딩을 어렸을때부터 시켜보겠다는 것은 그렇게 나쁜 일은 아니라는 생각이 든다.
프로그래밍의 과정을 살펴보면 간략하게 4가지로 나눌 수 있을 것이다. 어떤 프로그램을 만들 것인가를 기획하는 기획단계가 있을 것이고 어떻게 만들 것인가를 생각하는 설계 단계가 있을 것이다. 그리고 설계된 내용대로 프로그래밍을 하는 코딩 단계가 있고 그 코딩된 결과를 확인하고 잘못된 부분을 수정하는 디버깅 단계가 있을 것이다. 단순히 위에서 코딩 교육을 하는 것이 설계된 내용대로 코딩하는 과정만 하겠다고 한다면 별로 효과는 없을 것이다. 실제로 중요한 것은 그 앞단계인 기획과 설계 단계다. 내가 무엇을 만들 것인가, 그리고 그것을 어떻게 만들 것인가를 생각하는 기획, 설계 단계를 어렸을 때부터 나름대로 교육받을 수 있다면 그것은 상당한 경험이 되며 성인이 되어서도 엄청난 자산이 될 것이다. 코딩은 어떻게 보면 그 과정에 지나지 않는다는 얘기다. 어떻게 표현할 것인가를 실제로 구현하는 것이 코딩이기 때문에 그렇다. 그 앞에서 기획과 설계가 이뤄지지 않는다면 단순한 보고 배끼기의 코딩 교육은 타이핑 연습밖에 되지 않는다.
개인적으로 자주가는 페이스북의 생활코딩이라는 그룹이 있다. 또 이 그룹의 모체가 되는 생활코딩이라는 커뮤니티도 있다. 여기에서 얘기하는 생활코딩은 언제나 코딩을 함으로 원하는 것을 만들어보자는 취지며 개발자와 일반인 사이의 생각의 갭을 줄이자는 취지지만 여기서 말하는 코딩에는 기본적으로 기획과 설계가 포함되어 있다. 이름이 생활코딩이라고 해서 단순히 코딩만을 하는 것이 아니라는 얘기다. 여기 생활코딩에서는 주로 웹 언어를 다루는데 이유인즉 처음으로 접근하기가 편하고 눈으로 보이는 결과물이 확실하기 때문이다. 내 경우에는 웹 언어보다는 위에서 언급했던 C, C++을 주로 사용했기 때문에 결과물을 보는 방식은 조금 다르다. 하지만 만들어내는 과정은 다 동일하다.
또한 코딩을 통해서 논리적 사고를 배울 수 있다는 점에서도 코딩 교육은 나쁘지 않다는 생각이 든다. 물론 앞서 얘기했던 기획, 설계 과정이 다 포함된다는 조건에서 말이다. 설계 과정에서 일반적으로 플로우차트(Flow Chart)라는 것을 그리게 되는데 여기서 프로그램의 흐름을 결정하고 논리적으로 판단하는 과정을 거치된다. 그 플로우차트를 기반으로 코딩을 하게 되면 뭔가를 만드는데 있어서 논리적 사고가 얼마나 중요한지를 깨닫게 되는 효과를 얻을 수 있다. 뭔가를 다 만들었다는 만족감을 얻음과 동시에 그 만드는 과정에서 파생되는 다양한 논리적 판단 및 결정 등의 경험을 얻을 수 있다는 것이다. 평소에는 잘 얻지 못하는 중요한 경험임은 분명하다. 실질적으로 구현 단계인 코딩보다는 그 앞의 설계 단계에서 이런 논리적 사고가 필요하게 되기 때문에 단순한 코딩 교육으로는 이런 논리적 사고를 얻을 수 없을 것이다.
이런 플로우차트를 그리면서 논리적 판단을 해야 하는데 여기서 논리적 사고력을 얻을 수 있다는 생각이 든다
마지막으로 하고자 하는 말은 이거다. 코딩이라는 단어를 그냥 말 그대로 받아들이면 위에서 프로그래밍 과정 중에서 기획, 설계 다음의 만드는 과정으로 한정되게 된다. 만약 정부에서 얘기하는 초등 빌게이츠 육성 프로젝트가 이 코딩에만 집중되어 있다면 이건 차라리 안하는 것이 더 낫다. 프로그래밍의 개념으로 코딩을 바라본다면, 즉 프로그램을 만들기 위해 기획을 하고 설계를 하는 과정을 다 거쳐서 어떻게 표현할까를 고민하고 구현하는 코딩을 배운다면 그것은 충분히 교육적으로도 가치가 있다는 생각이 든다. 어렸을 때부터 뭔가를 만들고 그것을 바로 눈으로 확인함으로 확실한 결과에 대한 만족감과 자신감, 그리고 경험을 가져갈 수 있기 때문에 그렇다. 게다가 논리적 사고를 할 수 있는 경험까지 얻을 수 있으니 말이다. 꼬마 빌게이츠 육성 프로젝트 자체는 그렇게 맘에 드는 것은 아니지만 어린 시절부터 뭔가를 만들어내는 과정을 한 사이클 전체를 경험하게 할 수 있는 방법으로서 코딩을 배우는 것은 괜찮은 생각이 아닐까 싶다.
반응형댓글