2014년 8월 1일 금요일

SW교육, 프로그래밍이 핵심 아니다

메르세데스벤츠의 CEO 디터는“이제 자동차는 기름이 아닌 소프트웨어로 달린다”고 말했다. 앞으로의 산업에서 소프트웨어가 차지하는 중요도를 단적으로 나타내는 말이다. 과거 전세계 제조업시장에서 1등자리를내주었던 미국이 세계 최고의 소프트웨어 기술을 기반으로 제조업 부활을 위한 용트림을 시작했다. 

우리나라 전자 회사들이 그 짧은 기간에 외국의 세계 1등 기업들을 제치고 매출에서는 세계 최고가 되었지만 점점 넘지 못할 벽으로 점점 뚜렷하게 다가오는 것이 바로 소프트웨어의 역량 차이다. 개별적인 근면 성실함과 똑똑한 머리와 치열한 의지로 외국에서 100년 넘게 이룩한 산업기반을 몇 십 년 만에 앞지른 분야도 있지만 소프트웨어 분야에서는 차이를 좁히기는커녕 점점 더 뒤쳐지고 있는 듯하다. 

과거 소프트웨어라고 하면 워드프로세서나 스프레드시트, 게임 같은 것을 먼저 떠올렸다. 하지만 사실 하드웨어에 장착되는 임베디드 소프트웨어의 시장도 만만치 않게 컸고 규모는 점점 커지는 양상이다. 소프트웨어가 제조업의 기반을 뒤흔들 정도가 됐다. 옛날에는 소프트웨어는 제조업 즉, 하드웨어의 보조적인 역할에 불과했으나 지금이나 앞으로는 소프트웨어가 오히려 기반산업이 되어가고 있으며 소프트웨어 역량이 제조업 경쟁력의 핵심이 되어가고 있다. 

세상은 소프트웨어를 중심으로 바뀌어 가고 있는데 필자가 접한 대기업을 비롯한 수많은 회사들의 대응은 무신경하기 그지없다. 몇몇 기업은 소프트웨어의 중요성을 외치고는 있지만 그 대책이 소프트웨어를 전혀 모르는 탱크 같은 추진력을 가진 경영자에게 모든 것을 맡기고 기껏해야 개발자들을 끊임없는 밤샘 작업으로 내몰고 오히려 불편한 비싼 툴을 사주고 프로세스는 과도하게 복잡하게 해서 품질을 올린다고 한다. 

경영자가 소프트웨어를 모르니 잡상인에 현혹되는 것은 당연하다. 이런 식으로 소프트웨어 경쟁력을 높인다고 하니 경쟁력이 오히려 떨어지는 것이 이상할 일이 아니다. 

다행히 몇몇 기업은 소프트웨어 전문가를 경영진으로 채용해서 진정한 소프트웨어 역량 발전에 힘을 쓰고 있지만 기업의 정치 역학 구조에서 소프트웨어 전문가들이 힘을 제대로 못쓰는 경우가 많아서 안타까움을 더하고 있다. 즉, 소프트웨어 전문 경영자들이 실력은 있는데 정치에서 밀리는 것이다.

지금 당장 기업들은 소프트웨어 역량 부족으로 발등에 불이 떨어졌지만 더 중요한 것은 미래다. 전체 산업에서 차지하는 소프트웨어의 비중은 향후 10~20년 동안 폭발적으로 증가할 것이 확실시 되고 있다. 즉, 20년 후에는 엄청난 수의 소프트웨어 개발자가 필요하게 된다. 

소프트웨어 개발자가 많이 필요하다고 해서 착실한 준비없이 급하다고 학원 같은 곳에서 개발언어 약간 가르쳐서 저급 개발자를 양산해서는 소프트웨어 경쟁력을 가질 수 없다. 급하게 부족한 인력을 보충할 수는 있겠지만 지금과 같이 열악한 소프트웨어 환경을 더 악화시키는 역할을 할 것 같은 우려가 된다. 

소프트웨어가 산업이 중심이 되는 미래를 대비하기 위해서는 초, 중, 고 모든 과정에서 필수적으로 소프트웨어를 대비한 교육을 해야 한다. 소프트웨어 교육이라고 하면 개발 언어를 가르쳐야 한다고 생각하면 눈감고 코끼리의 뒷다리를 만지는 격이다. 현재 우리나라 소프트웨어 역량이 뒤쳐지는 이유가 코딩을 잘 못해서는 아니기 때문이다. 개발 문화와 환경을 바꿀 수 있는 교육을 해야 한다. 

먼저 소프트웨어에 기초가 되는 지식을 좀더 많이 가르쳐야 한다. 수학, 논리학, 과학 등 논리적인 사고를 좀더 많이 하게 하고 뛰어난 논리력을 가지고 있는 학생들에게 좀더 많은 기회와 동기를 부여해야 한다. 

다음으로는 소프트웨어 문화를 바꿀 수 있는 교육을 해야 한다. 소프트웨어 개발에서 가장 중요한 것이 협업이다. 그러기 위해서 토론, 협동, 발표를 위주로 한 교육을 해야 한다. 과거에는 한 반에 학생이 60~70명이나 되어서 토론식 교육이 불가능했지만 지금은 20~30여명의 학생이라서 토론식 교육이 충분히 가능하다. 학교에서도 토론식 교육을 점점 증가시키고 있지만 너무 더디다. 자칫 배 떠난 뒤에 손 흔드는 격이 될 수도 있다. 좀더 과감히 비중을 늘려야 한다. 

뻔하고 당연한 얘기 같지만 학부모로서 아이들의 교육과정을 지켜보면 급격한 변화에 대응하여 무신경하고 느리기 그지없다. 

암기 잘하는 학생도 공부를 잘한다고 할 수 있겠지만 토론을 잘하고 발표를 잘하는 학생에게 좀더 높은 점수를 주고 이런 학생들을 많이 키워내야 한다. 소프트웨어 개발의 핵심 역량은 토론과 협업이다. 어릴 때부터 몸에 베어 있지만 않으면 성인이 되어서 갑자기 잘 할 수는 없다. 

학생들에게 프로그래밍을 가르치는 것은 그 후순위가 될 것이다. 이런 조건 없이 프로그래밍만 가르치고 사지선다식 시험을 본다면 지금보다 나아질 것은 전혀 없다. 프로그래밍도 토론, 협업, 발표를 융합한 교육이 되어야 한다. 

필자는 지금 우연한 기회에 영재 초등학생에게 프로그래밍을 가르치고 있다. 그 결과 초등학생들이 절대 학습시간이 부족하여 프로그래밍 실력은 성인에 비해서 떨어지지만 논리력은 성인 못지 않게 뛰어나다는 것을 알게 되었다. 사실 웬만한 개발자보다 논리력이 뛰어나기도 하고 이런 초등학생들이 개발 문화를 몸에 익히고 프로그래밍 실력까지 갖춘다면 미래에 뛰어난 소프트웨어 아키텍트로 성장할 것으로 확신한다. 우리나라는 이런 미래의 소프트웨어 아키텍트가 수천명, 수만명이 필요하다. 우리나라가 2등국가로 떨어지지 않으려면 꼭 필요하다. 

이것이 당장 학생들에게 제대로 된 소프트웨어 교육이 필요한 이유다. 

이글은 ZDNet Korea에 기고한 입니다.

댓글 6개:

  1. 뭐 소프트웨어 교육이 필요하다고 생각은 하지만
    이번 발표에 어이가 없더군요.
    가뜩이나 모든 교과가 과잉상태
    그러니까.. 모든 교과가 '우리게 중요해!',
    그 안의 세부 분과가 우리 파트는 필수야!'를 외치는 통에
    또 하나의 필수과목을 늘린다는 건 정말 근시안이란 말도 아까운지라..
    (과거의 고교생이 배우던 걸 요즘은 초고학년과 중딩들이 배웁니다)

    아예 사회나 교육에 대한 시스템 자체를 이해못하는 이들이 결정권을 쥐고 있으니
    인터넷에는 지식만 넣은 애들이 넘쳐나고 있죠.
    정작 그걸 연결할 수 있는 건 없는데...
    오히려 이런 교육과 사회시스템으로 이 정도 결과를 내는 게 더 신기합니다.

    답글삭제
  2. 제대로된 교육이 이루어지지 않을 거라는 예상 동감합니다. 학부모들은 점수에 연연할테고 교사들은 평가를 위한 교육을 하겠죠...
    현재 많은 능력있는 개발자들이 나이가 들기 때문에 이직을 고려하거나 관리직으로 변해야만 하는 현실이 나아지지 않는한 S/W의 미래는 없을거 같습니다.
    교육이란것도 어떤 구체적인 목표나 미래가 있을 경우에 좀더 많은 시너지를 낼 수 있는거라 보는데 현실을 살아가는 우리 개발자들은 어린 학생들에게 정말 미래의 자기 모습으로 아름답게 보여질 수 있을지 생각해보면 암담하네요...
    교육을 생각하기에 앞서 현재를 만들어가는 사람들에 대한 지원도 같이 되면 좋을 텐데...

    답글삭제
  3. 대학 에서의 교육또한 더 잘 이루어져야 할꺼 같습니다. 미국의 개발자들도 대부분이 대학교에 들어와서 본격적인 computer science 를 배우게되는 경우가 대부분이죠. 미국의 대부분의 대학교들은 잘 가르키기 때문에 대학교를 갓 졸업한 개발자도 회사에서 특별한 교육기간이 필요없이 곧바로 일을 시킬수 있죠. 실제로 곧바로 개발을 할수 있는 사람만을 고용하고요. 저는 미국에서 대학을 나왔지만, 한국에서 전산과를 나오신 분의 이야기를 들어보니 한국 대학교 다닐때 프로그래밍 한번 안하고 졸업했다고 하시더군요... 그냥 숙제만 대충 대충 남꺼 배끼고 뭐 그렇게 하다보면 다 졸업은 시켜준다고 하더군요. 그리고 어차피 회사 취직 하면 회사에서 교육 시켜준다고.. 일단 회사에 취직하는게 중요하기때문에 그래서 회사에 취직하는것에 초점을 맞추어서 대학생활을 보낸다고 하더군요.. 이거 정말인가요?

    이게 정말이라면 우리나라에 고급 개발자들이나 소프트웨어 에 열정을 갖고있는 인력이 부족한게 설명이 되네요.

    답글삭제
  4. 아주 단순한 개인적인 생각입니디만, Software 개발자 연봉만 높이면 끝일 거 같습니다. 그러면 자동으로 우수인재가 몰려오게 되어 있지요. 그리고 경쟁으로 인해서 잘하는 사람은 남고 못하는 사람은 사라지죠. 한국은 어중이 떠중이가 너무 많은게 문제인 거 같네요. 그리고 전규현님 말씀처럼 CTO가 없다는게 큰 문제입니다. 실력도 없고 나이만 많아 관리하는 사람들이 윗 선에 너무 많아요.

    답글삭제
  5. 오랜만입니다. 늘 좋은글 잘 보고있습니다.
    소프트웨어 교육 꼭 해야합니다. 말씀처럼 토론 수업등 근본적 역량도 키워야 겠지만 소프트웨어가 뭔지 하드웨어와 어떻게 동작하는지 등 기본 이해가 모두에게 필요합니다. 말씀처럼 개발자를 키우기위한 교육 말구요

    우리나라 소프트웨어 경쟁력이 떨어지는 또 하나의 이유는 소프트웨어에 대한 정치인 관료 경영자 사용자의 몰이해로 법 제도 경영 회사운영 교육 등이 모두 갖추어지지도 발전하지도 않기 때문이라고 생각합니다. 특히 법률 측면에서보면 소츠트웨어를 어젠다로만 활용할 뿐 갈등을 조정할 수 있는 토대가 만들어지지 않고 있습니다. 고작 다른 산업의 주변 이슈로나 보고 있지여. 소프트웨의 실체와 특성을 모든 관련자들이 이해하는것 그것이 21세기 시민의 기본소양이 되어야 합니다. 마치 학교에서 자동차의 기본 동작 원리를 가르치듯 말이죠.

    답글삭제
  6. 정말 좋은글 잘 보았습니다. 저도 개발자가 되기 위한 교육보다 필요한 것은 서로가 이해하기 위한 소프트웨어 교육이라 생각합니다. 앞으로도 좋은 글 감사히 읽겠습니다. 감사합니다.

    답글삭제