변별력 핑계로 어려운 문제 좀 제발 이젠 그만내라!!!
필자가 프로그램을 만들다 보면 이런 생각을 할 때가 많다. "이런 역할을 하는 프로그램이 구지 복잡하고 라인수가 많게 만들 이유가 없는데... 단순하게 해결할 수 있을 것 같은데 왜 이렇게 배가 산으로 가는것이지?" ....
사실 프로그래밍에서 보면 문제를 정확하게 파악하고 그 문제를 해결할 수 있는 방법을 생각해 내고, 그것에서 반복되는 패턴을 추출하여 논리로 만들고 ... 하면 처음에 생각했던 것 보다 훨씬 간단하고 빠르게 프로그램을 만들어 내는 경우가 많았다.
물론 반대로 처음에는 쉽게 생각했다가 가면 갈수록 문제가 커져서 감당할 수 없을 정도로 코드가 커지는 경우도 있었다. 이런 경우는 애초에 너무 문제를 단순하게 생각한 경우도 있고, 프로그램 설계단계에서 분석이 덜 되어 있을 수도 있다.
하지만 대체적으로 너무 복잡하고 파악하기 힘들정도로 코드가 만들어지는 경우는 "잘못 만들어진 코드"가 많았던 것 같다. ( 물론 이건 개인적인 경험에 의한 의견이다. 헌데 대부분의 필자 주위의 난다 긴다 하는 개발경력을 가진 사람들은 거의 이런 이야기에 동감을 표한다 )
보통 그럴때 필자는 다 갈아 엎고서 처음부터 다시 짜는 경우가 많다. 사실 코드를 만드는 거 그 자체는 경력이 쌓이고 익숙해지면 그렇게 어려운 일은 아니다. 문제는 그 코드를 둘러싼 각종 환경들... 탑재되어야 하는 머신과 그것을 이용하는 사람들 그리고 그 시스템과 연동되는 다른 프로그램들 등등에 대해 정확하게 파악되고 단순하지만 명쾌한 해결책을 발견하게 되면 처음의 꼬이고 꼬인 코드에 비해서 간단한 형태로 정리가 되곤 한다.
헌데 이것이 부끄럽다고 생각해 본적은 별로 없다. 엎었다가 다시 짜는일은 늘 벌어진다고 생각하고 있고 그것을 위한 시간은 언제나 확보하는 편이다. 마치 영어나 수학을 공부하다 보면 중간에 뭔가 정리가 덜 되거나 아니면 개념을 착각하고 있다가 진도가 나가면 나갈수록 뭔가 정리가 안되고 꼬여버려서 어디서 부터 내가 꼬인건지 다시 파악해서 그 시점에서 다시 공부를 해야하는 것과 유사한 일이라고 보면 된다.
사실 사람이 한 분야에서 20년 30년을 종사한 사람도 해당 분야에 대해 정확한 직관과 통찰력을 발휘하지 못한다. 그래서 경제예측은 늘상 틀리기 마련이고 미래에 대한 예측은 그보다 더 많이 틀린다.
우스개 얘기로 월드컵 우승팀을 맞추는 문어가 한때 화제가 되기도 했다. 최고의 금융 전문가들이 선택한 종목과 아무것도 모르는 아기 원숭이가 선택한 종목의 1년 뒤의 수익율을 비교해 보니 원숭이가 수익률이 더 높았다는 얘기가 있다. 이 처럼 인간이 가지고 있는 통찰과 직관이라는 것은 한계가 있고, 인간은 실수와 그것을 바로잡는 과정을 통해서 오류를 줄이는 수 밖에는 똑똑해지기 위한 방법이 없다고 생각한다.
( 지나가는 얘기 : 과거에 인기있었던 영화중에 백투더 퓨쳐 라는 영화가 있다. 타임머신을 타고 미래를 다녀오는 이야기의 영화인데, 그 영화속에서 미래에서 보여지는 각종 물건이나 기술들이 보여지고 있었다. 자동으로 밀착하는 신발... 3차원 입체영화... 날으는 스케이트 보드 등등... 헌데 그 영화에서도 스마트폰은 예측하지 못했었다. 그 난다긴다하는 헐리우드의 상상력도 미래를 제대로 예측하지 못했다. )
물론 간단한 코드와 복잡하지 않은 문제에서는 한방에 적절한 해결방안을 만들어 내고 에러없이 구현이 가능하다. 헌데 조금만 복잡해져도 인간의 머리는 올바른 판단을 하기 힘들다.
예를 들어 입력되는 데이터가 한가지 종류인 경우를 처리하는 프로그램은 거의 직관적으로 한번에 가장 최적의 해결방법을 찾아낸다. 헌데 이 데이터의 갯수가 4개 정도만 되더라도 정확한 처리방법을 찾아내기가 쉽지 않은거다.
그런경우는 다른 방법이 없다. 결국 시행착오를 통해서. 그리고 수 많은 실험과 그 결과물을 통해서 시간을 두고 만들어 내는 수 밖에 없다. 마치 달에 가는 우주선을 개발하는 단계에서 각 분야의 엔지니어들이 수 많은 실험과 시행착오를 거쳐가면서 방법을 찾았듯이 말이다.
이게 당연한거다. 사람이라면 당연히 그런거다. 시행착오도 거치지 않고 한번에 복잡한 문제에 대한 해결책을 내는 건 보통 사람으로는 어려운 일이다. 천재들이나 가능한 일이 된다.
....
지금부터 우리나라 교육에 대한 욕을 좀 하려고 한다. 말도 안되는 교육을 만들어 놓고 애들을 시달리게 하면서 결국 인생을 포기하는 애들만 양산하는 못된 제도를 만든 어른들은 반성해야 한다고 생각한다. ( 성경에 보면 아이들을 실족하게 하는 자는 맷돌을 목에 매고 물에 빠트려 죽는게 차라리 낫다고 이야기 하고 있다 )
필자가 예전에 대학시절에 과외공부를 가르쳐서 용돈을 벌었던 경험에 대해서 이야기를 한 적이 있다. 그때 알음 알음 소개 받아서 어느 고등학생을 소개받았었다.
헌데 이 고등학생이 다니는 학교는 수학교사가 대만의 대학교 수학문제를 가져다가 거기에서 시험문제를 낸다고 했다. 해서 방학이 지나고 나면 그 대만 대학의 교과서에서 수학문제가 출제될 것이 뻔한데 ... 자기가 풀기 어려워서 이것들을 풀어낼 수 있는 방법을 배울 수 있는 선생을 수소문해서 찾고 있다고 했다.
헌데 필자가 문제를 봤는데 ... 정말 어떻게 풀어야 할지 감도 안오더라. 해서 물었다. 아니 이런 문제가 시험에 나오면 평균이 몇점정도 나오냐고 했더니 ... 평균 40점이 안된다고 했다. 사지선다형 문제에서 평균 40점이 안된다고 하는 얘기는 뭐 거의 모든 학생이 풀어서 맞추는 경우는 매우 드물다고 보면 된다.
해서 필자가 시험삼아서 앞부분의 몇 문제를 풀었는데 그 날 한시간 넘는 시간에 걸쳐서 5문제 정도 풀다가 맞춘건 2문제 정도였다. 한마디로 스타일 완전히 구긴거다 ㅎㅎ
그래서 무척이나 부끄러워서 ... 와 이렇게 어려운 문제는 선생님이 어떻게 가르치냐? 라고 했더니 학교 선생님들도 못풀고 있다고 하더라. 사실 학교 선생님들은 시험출제하고 답을 알고 있으면 큰 문제가 없다. 거기에 시험이 어렵게 나오면 변별력이 확보가 되니 학교에 밉보일 이유도 없다.
헌데 필자는 화가 났다. 사실 저런 문제는 현역 수학과 대학생 정도도 쉽게 풀수 있는 문제가 아니다. 더군다나 20문제 정도가 출제되고 80분이 시간이 주어진다면 한 문제당 4-5분 정도를 사용해서 문제를 풀어야 하는데 ... 저런 어려운 문제를 한번 보고 어떻게 풀어야 하는지 방법을 떠올리고 그 시간안에 풀어 낸다는 것은 불가능하다.
헌데 이런 학생들에게 불가능한 미션을 내 놓는 선생들의 심뽀는 뭔가? 일단 문제가 어려우면 그걸 가지고 학생들 앞에 권위를 세울 수 있다. 그리고 시험을 빌미로 학생들을 통제할 수 있고, 특히 학업에 관심이 많은 부모들의 관심을 받을 수 있다. 거기에 그런 문제를 풀어낼 수 있는 교사가 한두명 있으면 그런 교사는 다른 교사들에 비해 엄청 유능한 교사로 인정받게 된다. 이런 문제에 대응하지 못하는 교사는 무능한 교사로 낙인 찍히는 것이고, 따라서 교사들 사이에서 자신을 돋보이게 하는 경쟁우위를 확보할 수 있게 된다.
사실 그런 어려운 문제는 밥만먹고 그 문제 풀이만 연구해 본 사람이 몇번 풀어보고 또 풀어보면서 "이 문제는 이렇게 푸는게 가장 좋겠다" 라는 요령을 찾아내지 않으면 못푼다. 헌데 이런 요령을 가장 잘 찾아내는 사람들이 사교육에 종사하는 학원강사 선생들이다.
해서 어느 학원에 가면 그 대만 대학교 수학시험 문제를 잘 풀어준다더라 ... 소문이 나기만 하면 그 학원은 대박을 친다. 구름처럼 수강생이 몰려 오게 되어있다. 여기에서 학원선생과 학교교사가 커넥션까지 있으면 아주 금상첨화다.
이런 거다. 학원 선생이 대만 대학교 수학문제 문제집을 구해서 교사에게 전해주고 해당 교사에게만 문제의 풀이방법을 미리 알려주고는 그 시험문제를 해당 학교의 시험에 제출하도록 권하기만 하면 해당 교사는 학교에서 최고로 유능한 선생이 되고 학원의 수학선생은 그 지역에서 초 대박을 치는 학원선생이 되는거다. 이런 패턴 본 적이 한 두번이 아니다.
사실 초중고 교육에서는 그런 "문제를 푸는데 특별히 요령이 필요한 수준의 어려운 문제"를 풀어야 할 이유가 없다. 기본적인 개념을 확실히 파악하고 있고 그 기본적인 개념을 이용해서 '앞으로 살아가면서 드물지 않게 마주칠 법 한 문제' 를 풀어낼 수 있을 정도면 충분하지 않을까?
헌데 경쟁이 심화되어 변별력이 중요해지는 교육에서는 이런 식으로 어렵게 문제를 내게 되는 일이 발생될 수 밖에 없다. 이런 과정을 통해서 돈을 버는 것은 학원이요 고통받게 되는 것은 학생이요. 학원비에 허덕이는 학부모가 된다. 해서 어머니들은 어떤 문제가 학교 시험에 출제되고 어느 학원에 가야지 그 문제의 풀이법을 알 수 있는지에 대한 정보를 빨리 파악해서 자녀들의 방과후 시간운영을 해 주어야 자녀가 내신을 제대로 받아 수시전형으로 대학합격을 노릴 수 있게 된다.
사실 수시전형에 대해 필자 주변에서는 모두가 부정적이다. 하지만 "강남 8학군과 자사고 민사고에 불리한 전형" 이라는 점 때문에 정치인들에게는 인기가 높다. 거기에 내신문제가 어려워야 학원이 돈을 번다. 또한 기존에 자녀교육에 많은 돈을 이미 투자해 놓고 있고 정보를 확보하기 용이한 위치에 있는 부모들 또한 이런 수시전형의 확대를 반기는 쪽에 있다. 각 대학당국도 자신들이 원하는 학생을 가려 뽑을 수 있는 ( 뭐 주로 좀 있는 집 자제들이겠지 ) 수시전형에 긍정적이다. 해서 앞으로 수능을 없애겠다는 얘기도 하고 있기도 하다.
하지만 이런 방법으로 병들어버리는 건 아이들 뿐 아닌가? 사실 저렇게 밥만 먹고 문제풀이만 연구해서 발견된 요령은 해당 문제에만 유효하다. 다른 문제를 풀때에 그 요령은 아무런 소용이 없다.
요령을 가지고 문제를 풀게 되면 사실 문제는 풀리게 되겠지만 시행착오를 통해 지식의 깊이를 더하는 일은 없어진다. 직관이나 통찰을 요령을 통해서 쌓을 수는 없는 일이니까... 당연히 제대로 된 실력이 만들어 질 수가 없는 것이지.
예전에 어느 영어학원 선생님의 이야기를 들은 적이 있다. 그 선생님에게 중학생 아이가 한명 찾아왔다. 중학 2학년 밖에 되지 않았는데 영어가 너무 힘들다고 해서 엄마의 손을 붙들고서 왔는데 ... 이전 학원에서 어떤 교재를 가지고 공부했는지 물어보니 토익책을 꺼내더란다.
엄마를 내보내고 물었단다. 너 이거 가지고 수업하면 얼마나 알아듣는거니... 라고... 그랬더니 눈물만 주룩 흘리더란다. 그래서 그 선생님은 이 아이를 안아주면서 다독여 주었다고 한다. 이런 책 몰라도 된다고. 모르는 게 당연하다고. 괜찮다고. 선생님이랑 같이 처음부터 다시 해보자고.
그리고는 엄마에게 다짐을 받았다고 했다. 절대로 어려운 책 보게하지 않는다고. ( 아마도 이전 학원에서는 이렇게 해야 명문대를 미리 준비할 수 있다고 선행학습을 강력하게 권한 모양이다 )
그렇게 해서 아주 쉬운영어에서 시작해서 차근 차근히 실력을 쌓아나갔다고 한다. 한 8개월 정도 꾸준히 영어실력을 쌓아가서 이젠 수업도 제법 따라갈 수 있는 정도까지 만들었는데 .... 그 엄마가 아이를 강제로 학원을 옮겨서 다시 선행학습 하는곳에 넣어버렸단다. 안봐도 뻔하다 지금 대입을 준비하려면 먼저 고등학교 수준의 영어에 익숙해 져야 한다고 사기를 쳤겠지...
이런 상황이라면 애들 손 붙잡고 그 바닥 뜨는게 맞다고 생각한다. 그렇게 해서 선행학습해서 문제푸는 요령을 익히고 문제에 익숙해져서 대학에 간들 그렇게 간 아이들이 제대로 된 공부를 감당해 낼 리가 없다.
적어도 대학입시를 바꿀 수 없다면 말이다... 이 대학입시와 상관없는 길을 갈 수 있는 아이들만이라도 그 길을 갈 수 있는 생태계를 만들어 주어야 한다. 모든 피해를 감수하고 대학입시의 이 광풍을 피해서 다른 길을 가겠다는 아이들을 위해 다양성을 만들어 주어야 한다고 생각한다.
필자는 그 다양성을 만들어 줄 수 있는 길이 코딩교육에 있을 수 있다고 생각한다. 다음 편 글에서 그 아이디어를 적어보고자 한다.