공부의 비결

최근 영어 공부를 준비하며 한 번 더 읽은 세바스티안 라이트너씨의 공부의 비결을 읽고 포스팅욕이 생겨 생각을 정리한다. 학습된 지식들에 대해 빈익빈부익부가 적용된다. 더 많이 알수록 학습 속도는 더 빨라진다는 것이다. 그도 그럴것이 새로운 정보를 연관 지어둘 갈고리가 많기 때문이다.

 

프로그래밍에 빗대어 생각해보자. 프로그래밍 언어라고는 한번도 익혀본 적이 없는 어떤 사람은 Java 라는 언어를 공부하며 애를 먹는다. 일단 변수를 이해하는 것에서부터 고통이 시작된다. 좌변과 우변 사이에 등호(=)가 있으면 좌변과 우변의 값은 동일한 것이다 라는 문장을 외우며 살고 있는 사람은 거의 없다. 그 개념만 내장되어있고 누군가가 ‘등호가 뭔가요?’ 라고 물어보면 개념을 뽑아서 그것을 문장으로 녹일뿐이다. 그 말은 충분히 암기된 정보라는 것이다. 이 정보가 옳은 조건(혹은 환경)이 어떤 것인지 보통 사람들은 신경쓰지 않는다. 대부분의 환경에서 ‘쓸모가 없기 때문‘이다. 그 말을 수학자 누가 했는지 (나 역시 모른다. 수학자가 하긴 한건가?) 언제 했는지 왜 했는지 모른다. 그저 그냥 외웠다. 덕분에 그들은 효율성을 얻었다. 수학식을 볼 때 머리속으로 ‘음.. 등호가 있네? 좌변과 우변이 같다는 말이구나‘ 라고 되뇌이며 문제를 처리하는 사람은 엄청난 고통을 맛보게 될 것이며 이 과정은 전혀 모듈화 되지 않은 것이므로 정신이 분산되어 초심을 잃고 비전을 까먹어버릴 확률이 높으며 이는 결국 시간지연, 딴짓 또는 포기 행위를 만들어 낼 것이다.

 

  1. 소스코드에 적힌 a = a + 1 을 봤다.

 

고통이 몰려온다. 그래서 식이 없는, Hello World 라는 녀석의 소스코드를 구경하기로 했다. main 이 있다. 이것은 함수 이름이란다. ‘음~ 내가 알고 있는 그 함수지?’ 아 다행이다. 쉽다. 그런데 앞에 static 이 있다. 그래서 그는 질문을 한다. ‘static이 뭔가요?’ 이 학생은 함수란 개념을 어렵지 않게 이해해서 자신감에 차있다. static이 뭔지만 알면 될 것 같다. 머리속 dictionary의 key에 static이란 단어를 넣고 value에 무엇을 담을지만 알면 된다. 끝이 보이는 것만 같다. 그런데 대답은 안드로메다로 간다. 몰려오는 좌절감. value에 담을 어떤 단어 또는 문장을 답으로 받았지만 그것은 내 머리속에 없는 개념으로 구성된 것이기 때문이다. 제대로 설명해주려면 class와 object 관계를 설명해야 한다. instance 라는 것도 나오고. 고통의 연속이다. 어떤 학생은 이미 존재하던 key-value pair의 value에 잘못된 링크를 걸어버리고 그것이 쉽다고 자만할지도 모른다. 그 학생은 나중에 더 큰 고통을 맞이할 것이다. 어설픈 연관 기억의 결과물 덕분에 응용에 한계가 생기기 때문이다. 새 개념을 학습할 때 기본 개념을 조금 확장하여 받아들이는 기술을 사용하려면 밑천 개념이 많아야 한다는 조건이 있다. 결국 새로운 개념 학습을 거부한 결과의 최후는 어둡다.

 

이 학생은 Java 라는 언어를 배우며 고통을 느끼고 있다. 나름 산전수전 겪으며 자바 언어를 공부하고 나서 고통이 끝난 줄로만 알았는데… web Request/Response 개념, Transaction 개념, 세션/쿠키 개념, awt/swt의 rendering, swing의 rendering pipeline, 윈도우의 device context, 파일, lock. 자신에게 없었던 개념이라면 외워야 하고..

 

<< 프리즌 브레이크 시즌 1, 의무실에서 석호필이..  문을 열면 괴물이 없고 자신의 두려움만 있는 줄 알았는데 감방 생활에서는 문을 여니 괴물이 있고 그 뒤에 문이 100개쯤 있다라고 말하는 장면 첨부 >>

 

이런 고통을 신나게 맛보고 난 뒤, 당신에게 영향력을 가진 누군가가 말한다. ‘어이, 이번 프로젝트는 Java가 아니라 Objective C래. 그거 공부해놔‘. 이 학생은 엄청난 두려움에 휩싸인다. 자바라는 언어를 공부할 때 맛봤던 고통을 다시 맛봐야 될 것 같은 기분이 들기 때문이다. 이러한 기분이 드는 것은 자연스러운 일이지만 현실은 전혀 아니다! 그는 ‘새로운 언어 학습 => 고통’ 이란 잘못된 학습을 한 것 뿐이다! 새로 배워야하는 개념의 수는 손에 꼽을 정도이고 대부분의 개념들은 기존 개념들에게 링크 하면 된다. 이제 밑천이 생겼다!! 남은 것은 암기해야할 수십 수백개 뿐인데.. 훌륭한 indexer들 덕분에 외울 필요도 없다! 맘 먹고 외우면 1~2주에 떡을 친다. 한 가지 언어로 그 언어의 깊숙한 곳까지 이리저리 파헤치고 다녔던 사람은 새로운 언어를 익히는 데 시간이 거의 들지 않는다. 그 언어를 사용하는 사람들의 문화를 학습하는 것은 여기서 논외되었음을 잊지 말자. (자바 개발자들 특징, C 개발자 특징, Ruby 개발자 특징 브라브라브라브라)

 

공부의 비결에서는 이러한 방법으로 50개국어를 하는 사람의 존재를 설명한다. 이것은 가능하다. 물론 2~3개의 언어에 대해 능숙해져야 개념 학습의 고통이 서서히 줄어들 것이기 때문에 여기까지 도달하는 것이 어렵다는게 문제. 하지만 그 뒤는 천국.

 

어쩌면 천재는 다른 능력이 대단한 게 아니라, 개념 학습의 고통을 잘 견뎌낼 수 있는 사람이 아닐까. 혹은 고통을 느끼지 못하거나. 난 고통을 피하기 위해 공부를 하지 않는 부류의 사람인 상태로 오랫동안 살아왔기 때문에 천재랑은 거리가 멀다. 기존 것들을 연관짓고 서로 섞어버리는 과정에 익숙할 뿐. (개념 밑천을 많이 모으면 혁신적인 사람이 되는거다!)

 

이 글은 스프링노트에서 작성되었습니다.

One Response to “공부의 비결”

  1. 엔하늘 says:

    동감되는 말들이네요!!!!
    저도 이번에 액션스크립트랑 에어공부하면서 저런 불안감을 많이 느꼈습니다!!ㅋ
    개념의 밑천! 결국은 배경지식이네요. 역시 공부는 평생 해도 모자란~~