brunch

You can make anything
by writing

C.S.Lewis

by 하얀늑대 Apr 07. 2017

적게 배우고 많이 연습하고 책을 덮으면 실력이 생긴다

"여러분은 4차 산업혁명이 중요한게 아녀요. 여러분 앞에 놓인 문제를 여러분 스스로의 생각의 힘으로 해결하는 것이 중요합니다. 누구의 도움을 받거나 구글링으로 해결하는 것이 아닌 자기 자신의 실력으로 말이죠"


허구헌날 하는 얘기다. 요즘 강의를 하다보면 자꾸 헛바람 들어있는 학생들이 많아져서 솔직히 불만이고 또한 걱정이다. 자기 자신의 실력은 하나도 없고 자기 자신의 생각을 논리적으로 풀어 타인을 설득하는 것 보다는 어설픈 구글링으로 전문용어 한 두개 섞어서 자기의 실력을 그냥 과시하고 난 다음에는 아무것도 없는? 그런 전문용어 몇개 뒤에 숨어서 비어있는 실력을 감추고자 하는 학생들이 많다.


헌데 그런 어른들도 많다. 심지어는 실력이 없는데도 불구하고 번듯한 석/박사학위를 가지고 있는 사람들도 많다. 그리고 그런 사람들일 수록 4차 산업혁명이니 클라우드 서비스니 빅데이터가 세상을 바꾼다느니... 하는 이야기에 매몰된다.


사실 이런게 하늘에서 뚝 떨어진 개념이 아니다. 헌데 실력이 없고 경험이 미천한데도 잘난척 하기 좋아하는 사람들은 마치 이 개념이 과거의 모든 개념을 쓰레기로 만들어버리는 혁신적인 개념이고 자신이 그 선두에 서고 있다는 식으로 선전한다. 해서 "나에게 돈을 몰아주면 당신은 성공한 사람의 대열에 서게 됩니다" 라고 사람들을 선동한다. 하지만 그런 사람들일수록 자기 손으로 제대로 된 코드몇줄 짜지 못한다. 뭐 하나 직접 만들어 보라면 제대로 만들어 낼 엄두도 못낸다.


예를 들어서 요즘 많이 이야기하는 빅데이터? 솔직히 2000년대 초반에도 1억개 정도 레코드를 다루는 서비스는 있었다. 그리고 그 때에 비해 데이터 베이스의 검색속도를 늘리는 테크닉은 크게 발전한게 없다.


그리고 빅데이터의 가장 핵심적인 개념은 정리되지 않은 데이터로 부터 의미있는 데이터를 뽑아내는 기술에 있다. 솔직히 그 데이터의 양은 개발하는 입장에서는 중요하지 않다. 그거야 돌리면 돌아가니까... 어차피 10건을 조회하는 코드나 1만건을 조회하는 코드는 똑 같으니까 말이다.


헌데 사실 우리나라의 현실도 그렇고 타국도 마찬가지 개념인데 정리되지 않은 데이터를 정리해서 테이블로 만드는 작업은 그냥 관계형 데이터 베이스를 사용해서 테이블 4-5개 정도가 관계를 가지도록 PrimaryKey ForeignKey 를 이용해서 구성하면 되는 거다. ( 우리나라말로 옮기면 기본키 외래키... 라는 용어를 쓰기도 한다 )


그 정도로 기존의 70-80년대 부터 있던 개념과 기술로 커버할 수 있는 영역이 거의 90% 이상이라고 보면된다. 현실적으로 빅데이터라는 개념을 반드시 사용해야 하는 경우의 수는 그다지 많지 않다.


헌데 보면 꼭 자기가 제대로 된 데이터베이스 설계 하나 못하고 제대로 된 코드 몇줄 짜지도 못하는 사람들이 어디서 이상한 예제 한 두개 보고 와서 "기존의 개발은 다 쓰레기고 다 이걸로 바뀔거니까 내 말을 듣고 나에게 예산을 집행할 수 있는 권한을 달라" 라고 요구를 하는 경우들을 보면 한심하다.


나라는 돈을 그런데 쓰는 거 아니다. 헌데 보면 정치가이든 관료이든 이 분야에는 저 사람들 보다 더 모른다. 그러니까 미사여구 몇방에 그냥 훅 가버린다.


그리고 그런 사람들은 마치 '당신이 내 말을 들으면 당신은 과거의 어떤 정치가나 공무원이 하지 못한 일을 하게 되는 것이고, 국가의 영웅으로 추앙받으면서 또한 막대한 예산을 집행할 수 있는 권한을 갖게 될 것입니다. 그러면 거기서 떨어지는 떡고물도 만만치 않겠죠?' 라는 소리없는 악마의 언어를 속삭여 주는 것 같기도 하다. 그러니까 저렇게 황당한 얘기에 다 넘어가지...


그리고 젊은 애들도 저런 용어에 훅하니 넘어가는게... 마치 자기가 이것만 하면 기존의 30-40대의 개발인력들을 다 몰아내고 자신이 업계의 선두주자로 한방에 올라갈 수 있다는 믿음아닌 믿음을 가지고 있는 것 같다는 뉘앙스를 가질 때가 많다. 아니 역대로 젊은 애들은 다 그런 생각을 가지고 있던 것 같다.


헌데... 정치인도 공무원도... 그리고 젊은 사람들도 이런 변혁의 시대에는 정신 바짝 차려야 한다. 그런 유혹에 빠져서 자기 실력을 제대로 쌓을 기회를 놓치면서 나중에 '내가 뭔가에 이끌리어 그 쪽으로 갔는데... 그게 별거 아니었어. 그냥 신기루처럼 사라져 버렸네?' 라는 허무함에 빠져 돈과 시간을 날린 것을 후회할 수 있다.


과거의 경우에 EJB 와 XML Web Service 가 그런 역할을 했었다. CORBA 와 DCOM 같은 분산객체도 또한 그런 역할을 했었고... 대단한 기술이고 세상을 다 바꿀것 처럼 모두를 끌어 당겼지만 뭐 1년도 안되어 사그러 들었다. 지금 클라우드 서비스, 빅 데이터, 증감현실과 인공지능도 그런 전철을 밟을 것 같은 뉘앙스가 없잖아 있다.


이미 빅 데이터는 그런 조짐이 있다. 빅 데이터만 공부하고 개발을 제대로 할 줄 모르는 젊은이들이 취업이 안된다. ( 사실 다른 사람들도 취업이 어렵긴 마찬가지지만 과거에도 보면 데이터베이스 하나만 죽으라고 공부한 젊은이가 신입으로 취업을 하는 것은 거의 불가능에 가까왔다. 이런 현실을 대학과 취업훈련 기관은 좀 알아야 한다. )


왜냐구? 앞서서 적었듯이 빅 데이터가 아니고서는 해결할 수 없는 일은 대한민국에 그리고 전 세계에 거의 없다. 그리고 그런 일은 이미 이슈가 되기전에 다 터줏대감들이 자리를 잡고 있다. 그러니 신규 시장은 생겨나지 않고... 기존의 자리는 다 포화되어 있고... 그러니 그 얘기를 듣고 늦게 뒤늦게 뛰어든 사람들을 위해 자리가 안 나는게 당연하지.


"선생님 저는 이 바닥에서 20년 이상 제대로 좀 잘 나가보고 싶습니다. 그렇게 하자면 뭘 어떻게 공부하고 준비해야 합니까??"


이런 질문 좋다. 헌데 "나도 잘 나가지 못해서 잘 모르겠다. ㅎㅎ 헌데 이 얘기는 해 줄 수 있겠다. 빅데이터나 증감현실 같은 용어에 휘둘리지 말고 스스로의 생각으로 뭔가를 만들어 낼 수 있는 기술을 익혀라. 한마디로 '자신의 코드를 만들 수 있는 능력을 만들어라' 라는 얘기다"


"책과 인터넷에 써 있는 문헌이나 정보를 적당히 버무려서 자기 실력인양 포장하지 말고, 너 스스로 생각하고 있는 아이디어를 네 손으로 구현할 수 있는 능력을 길러라. 그래야 20년을 그나마 바라 볼 수나 있지 증감현실 하나 보고 달려든 애들은 벌써 꼬꾸라지고 있다. 하지만 개발을 잘 하는 능력을 가진 애들은 증감현실 없는 시대에도 살아남을 수 있다"


그러면 어떻게 해야 "자기 코드를 만들 수 있는 능력"을 키울 수 있는가?... 필자는 이런 교육 너무너무 좋아한다. 자기 코드를 만들어 낼 수 있는 능력을 만들어 주는 교육... 필자가 아주 잘 하는 분야이기도 하고...


뭐 그래서 핵심 노하우를 공개한다.


먼저 인터넷 검색질을 절대 못하게 한다.

그리고 책도 덮는다. 연필과 공책은 반드시 준비시킨다.


이런 자기 코드를 만드는 일을 할 때는 절대 진도에 얽매여서는 안된다. 10줄의 코드를 쓰기 위해 14시간이 걸리더라도 생각은 제대로 정리하면서 가야 하고, 외워야 할 것은 반드시 외우게 한다.


아주 간단한 개념부터 정확하게 정리한다. 그리고 그 정리된 개념은 글과 그림을 충분히  활용하여 정리하고 또한 그 개념을 명확하게 알 수 있는 코드를 적고 외운다.


이게 중요한게... 목수도 제대로 일을 배울때는 연장의 이름부터 외운다. 그리고 그 연장을 사용하는 기본 동작부터 제대로 배운다. 톱질 할때도 그냥 쓱싹만 하면 되는게 아니다. 제대로 된 자세를 잡지 않으면 톱질이 삐뚤게 되면서 톱날이 휘게 된다. 그러면 반듯한 톱질이 되지 않는다. 용어부터 외우고 그것이 뭐 하는 건지 파악하고 기본적인 사용 방법을 제대로 외워서 몸에 익히는 것 부터 해야 한다.


사실 이거만 하면 게임은 거의 끝난다. 농구에서 드리볼의 기본, 패스의 기본, 슛의 기본 ... 이런 것을 정확하게 동작을 익혀서 몸에 붙이는 작업에 비유할 수 있다. 헌데 이건 프로들도 해야 하는 일이다... 우리나라 축구가 공을 패스 받아서 첫번째 볼 트래핑이 좋지 않다는 지적은 전문가들이 참 많이하는데 그게 기본에서 부터 제대로 배워야 가능한 일이거든...


이 때 중요한 것... 최소한의 것을 가르쳐야 한다. 괜히 많이 가르치면 머리와 몸만 혼란이 온다. 예를 들어 영어라고 한다면 처음에는 단어 많이 가르칠 필요 없다. 문장 유형도 단순해도 된다. 긴 문장을 만들어라... 고급스러운 문장을 만들어라... 다 필요없다. 단어 서너개만 써도 좋으니 대신 자신의 생각을 이야기하는 훈련을 하는 것과 마찬가지 방법으로 코딩을 가르쳐야 한다.


그렇게 최소한의 개념으로 스스로 생각해서 만들고 책임지는 연습을 시켜가면서 조금씩 가르치는 개념의 갯수를 늘려간다


기초를 다질때는 10줄도 좋고 15줄도 좋다는 얘기다. 기본적인 개념을 조금만 응용해서 짤 수 있는 짧은 문장같은 코드를 만들면서 자신의 생각을 코드로 만들어 보는 연습을 하는 것이 필요하다는 얘기다. 마치 농구의 경우에 정식 경기가 아니라 서로 짜고하는 짧은 연습경기를 만들어서 기본 기술을 적용해 본다는 얘기다. 드리볼 + 패스 ... 엮어서 1분 뛰기. 그리고 패스 + 슛 엮어서 1분 뛰고... 그리고 실수하면 다시 기본을 몸에 붙여서 또 연습게임에 내보내고...


코드로 얘기하면 배열과 반복문 섞어서 코드... 거기에 조건문 응용해서 코드... 기본적인 개념들을 처음에는 2-3개 나중에는 4-5개 ... 이렇게 가지수를 늘려가면서 스스로 생각해서 코드를 만들게 하는 거다.


뭐 많이 짜는 만큼 느는거다.


짜다가 잘 안되거나 막히면 그걸로 충분하다. 최선을 다해서 스스로 생각하다가 막히는 건 오히려 좋은 현상이다. 그 다음에는 "질문을 생각해 와" 라고 얘기해 주면된다. 무슨 질문에 대해서 답을 얻으면 내가 못풀어 낸 문제를 해결할 수 있을른지 좋은 질문을 만들기 위해 자기의 생각을 정리하라고 시키면 된다.


이렇게 공부하면 그냥 책 보고 베끼면 30분이면 되는 문제를 스스로 풀게되면 10시간이 걸릴 수도 있다. 하지만 그건 절대 비효율적인 것이 아니다. 자기의 실력을 만들어 가는 시간이고, 자기 안에 있는 허식을 제거하는 시간이고, 컴퓨터와 프로그래밍을 있는 모습 그대로 인정하고 받아들이는 시간이 된다.


그게 중요한거다... 괜히 4차 산업혁명같은 실체가 없어 보이는 이야기를 떠들기 전에... 학생들이 그리고 국민들이 허황된 용어에 관심을 빼앗기지 말고 자신이 속한 분야에서 조금씩이라도 진짜 "실력"을 만들어 낼 수 있도록 국가가 도와주는 일...


그런일에 예산을 쓰는게 정말 바른 거 아니겠나?


그렇게 해서 실력을 쌓은 개개인이 그 다음에서는 서로가 서로의 부족한 부분은 채워서 "조직된 힘"을 만들 수 있도록 지원해 주면... 경제는 그렇개 깨어나고 조직된 국민들이 알아서 일으키는 거지 국가가 캠페인 좀 한다고 해서 경제가 일어나는게 아니다....


필자는 그렇게 생각한다.

작가의 이전글 특목고 학생들이 당하는 역차별도 없애야 해요...
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari