|
코딩의 핵심은 소통·협업코딩이란 기계의 언어를 익혀 기계에 일을 시키는 일이다. 결국은 숙어나 문법에 해당하는 일종의 기호를 익혀야 한다. 마치 외국어를 배우는 일과 같다. 기계에는 더 조리 있게 말해야 하므로 모국어 구사와도 분리될 수 없다. 코딩 업무의 대부분은 의사소통과 협업에 의존한다. 자기가 구현하고 싶은 것을 명료하게 표현하지 못한다면 기획 자체가 성립되지 않는다. 언어적으로 구성되지 않는 아이디어란 애초에 구현될 수 없어서다.연구진은 파이썬을 더 빠르고 정확하게 배운 사람들은 뛰어난 문제 해결 능력과 언어 능력을 두루 지닌 경향이 있다고 말한다. 우리가 흔히 말하는 전형적 문과 역량이다. 물론 반론이 있을 수 있다. 파이썬처럼 비교적 쉬운 언어들이기에 그럴지도 모른다는 주장이다. 언어 학습에 대한 적성이 기본적 수학 지식 또는 수리능력보다 프로그래밍 학습에 대한 강력한 예측 변수라는 것이 밝혀졌어도 수긍이 잘 되지 않는다. 프로그래밍은 곧 수리력이라는 인식은 깊다.소프트웨어 엔지니어의 입장에서도 혁신을 가져온 결정적인 알고리즘이나 신통방통한 라이브러리를 보면 프로그래밍은 수학의 파생품이라 생각할 수밖에 없다. 예컨대 함수형 언어로 짜인 아름다운 코드에는 가끔 수학 문제에서 전혀 다른 해법을 보여줬을 때 느끼는 미적 쾌감을 느끼기도 하기 때문이다. 이런 순간의 축적이 코딩의 즐거움이라면 또 즐거움이다.그런데 안타깝게도 이런 일은 일상적 코딩 생활에서는 드문 일이다. 일종의 행운과도 같은 순간일 뿐, 직업으로서의 개발자에게는 그리 많이 찾아오지 않는다. 오히려 중요한 것은 누구나가 이해할 수 있는 코드를 짜는 것. 그러한 배려와 팀워크의 지루한 연속이 코딩이다.코드 리뷰(code review)라는 과정이 있다. 피어(peer) 코드 리뷰라고도 하는데, 동료의 코드를 서로 읽고 서로의 스타일을 조율하며, 있을 수 있는 오류를 찾으며 함께 개선해 나가는 필수적 ‘공정’이다. 코딩도 결국 인간이 하는 일. 개인적인 예술적 소품을 집단적인 공업적 작품으로 승화시키기 위해서 이 불편한 소통을 거친다. 이처럼 이미 현대적 코딩에서 중요한 것은 기계 그리고 인간과의 소통 능력이다.코딩은 글을 쓰는 것과 별반 다르지 않다. 글을 쓸 때 우리는 실제로 메인 테마를 정하고 키 메시지를 정하는 나름의 계획을 하고, 이를 문장으로 만들고, 여러 번에 걸쳐 퇴고를 한다. 마지막으로 프로들의 세계에서는 출판 전에 데스크나 편집자의 손을 거쳐 개선된다. 코딩도 결국 마찬가지다. 설계를 하고, 코딩을 하고, 디버깅을 한다. 그리고 프로들의 세계에서는 코드 리뷰를 통해 개선해 나간다.생각해 보면 별것 아닌데도 가끔 우리는 ‘문송합니다’(‘문과여서 죄송합니다’의 줄임말로, 취업난 속에서도 특히 인문계 졸업생들이 취업하기 어려운 현실을 반영한 표현)라며 아예 쳐다보려도 하지 않는다. 또 마치 대단한 것인 양 후세들에게 미리미리 교육해야 한다며 코딩교육 열풍을 일으키기도 한다.
언어·논리·문제해결력 요구그런데 앞서 말한 연구 결과들은 과연 꼭 그럴 필요가 있을지 되묻는다. 인간이 새로운 기술과 변화에 적응하는 데 필요한 역량은 가끔은 이처럼 우리의 상식과 반한다. 오히려 과하게 적응하려 하다가 정작 교육에서 기대되는 더 본질적인 요소를 간과할 수 있다. 국·영·수를 중시하는 근대 교육의 전통적 균형은 그리 나쁘지 않다. 물론 각각의 교과가 충실히 설계되어야 한다는 전제가 있어야겠지만, 국·영·수는 21세기인 지금도 미래 직업을 위한 기본기로 유용하다.우선 국어라는 모국어 구사력, 즉 말과 글은 소통을 통해 협업을 가동하는 리더십에 필수적이다. 영어는 사실상 이미 지구의 표준어가 돼버렸기에 신지식의 확장을 위해 요긴하다. 수학은 과학의 여왕이라는 말이 있다. 생물학은 화학으로, 화학은 다시 물리로, 물리는 다시 수학으로 환원되어 가듯 결국 언젠가는 만날 수밖에 없는 진리를 계산하는 일이다. 여기에는 다시 가설을 설정하는 상상력, 역시 국어의 중요성이 필요해진다. 그리고 그 결과와 과정을 협력하고 새로운 정보를 취득하기 위한 영어의 필요성이 언급되지 않을 수 없다. 국·영·수만 제대로 하면 4차산업혁명 시대가 와도 여전히 할 일이 있다.지금은 ‘수포자’ 신세라도 할 수 있는 일이 많다는 것을 워싱턴 대학의 연구는 알려 준다. 인공지능의 새로운 논문과 라이브러리는 행렬과 확률·통계와 미적분을 활용해 작성된다. 하지만 그렇게 이미 부품이 된 인공지능을 조작하는 일은 수학적 지식이 다소 부족해도 가능하다. 오히려 문제 해결, 가설 설정과 같은 다른 인지 기능도 중요한 역할을 한다. ‘문송합니다’라고 덮어 버리는 것처럼 안타까운 일이 없다.코딩도 결국 인간 언어의 기초에 의존한다. 프로그래밍이란 결국 문법, 규칙에 기반해 기호를 함께 묶어 의미를 만드는 것일 뿐이니, 자신의 재능이 오로지 문과라고 그간 거들떠보지도 않았다면 인생 100세 시대, 아직 늦지 않았다. 코딩을 포함한 기술을 배우는 일이 쉽다는 이야기가 아니다. 하지만 미래의 일자리와 일거리를 확보하는 데, 이러한 ‘리터러시(문해력)’는 점점 더 중요해지고 있다. 그리고 그 실마리는 코딩교육 열풍이 아니라 여전히 교육의 기본에 있다.구태여 국·영·수 이외에서 지금 아이들에게 더 필요한 학습 내용을 찾는다면 스스로 문제를 꼬물꼬물 해결해 보는 일을 겪어 보게 하는 것이다. 앞으로의 시대는 과제는 많지만, 답이 없는 시대. 당면한 문제를 놓고 스스로 답을 찾아보는 일, 지금까지와 다른 답을 제시하고 이를 설득하기 위한 일종의 제안 능력, 디자인 역량은 어느 조직이나 아쉬워한다. 그러나 이 역시도 다시 모국어와 외국어와 논리적 사고가 기반이 되고 중추적 역할을 하니 돌이켜 보면 잘 배운 국·영·수만으로도 충분해 보인다.※ 필자는 소프트웨어 엔지니어 겸 IT평론가다. IBM, 마이크로소프트를 거쳐 IT 자문 기업 에디토이를 설립해 대표로 있다. 정치·경제·사회가 당면한 변화를 주로 해설한다. 저서로 [IT레볼루션] [오프라인의 귀환] [우리에게 IT란 무엇인가] 등이 있다.