자바 강의를 등록하고 들어간 첫 수업날, 자바뿐 아니라 그 어떤 프로그램 언어를 다뤄본 경험도 없었기에 강사님의 말씀을 거의 알아들을 수 없었습니다. 보통 첫날에는 우리가 지금 배우는게 어떤것이며 어떻게 사용되는지 따위의 개괄적인 내용을 강의하죠. 그리고는 어떤 언어를 배우든 반드시 처음에 어떤 작은 프로그램을 짜보게 되는데요. 바로 "Hello Wordl!!"를 출력하는 프로그램!!!(또는 Hello Java) 당시에는 아무것도 모르고'뭐가 이렇게 간단한거지? 프로그래밍이란게 별거 없구만!!'이라고 생각했었습니다. 하지만, 하지만 말입니다. 'Hello World'이후에 강사님을 따라 이것저것 여러가지 프로그램을 한글자 한글자 타이핑 해보고 실행도 해보았습니다. 그런데 가면갈수록 머리속이 흐리멍텅해지더니 급기야 까만건 글자요 들리는건 주문이 되는 경지에 이르렀습니다. 도대체 이건 무슨 의미인거지? 어떤 원리로 실행되는거지? 그나마 그중에 한가지 알 수 있는 게 있었으니,
XXXX.print("Hello Java");
앞에 X 들은 뭔말인지 전혀 모르겠지만(강사님도 지금은 알 필요는 없다고 했습니다!!), print 라는 문구를 보니 대강 "Hello Java"라는 문구를 츨략하라는 뜻인것 같았습니다. 실행해보니 예상한대로 콘솔(이라 불리는 어떤 영역)에 "Hello Java"가 출력되더라구요. 또다시 자신감 급상승!! '프로그래밍 별거 없구나' 라는 생각이 또다시 스믈스믈 기어나왔지요. 하지만 'print'를 제외하고는 다른 문자들은 정말 어느 오지의 외국어 같은 느낌뿐이었습니다. 강사님 왈, 아무것도 모르는 초보에게 처음부터 너무 많은 것을 가르쳐 주면 오히려 헷갈리니 그냥 자신이 불러주는데로 타이핑하는게 낫다는 것이었습니다. 정말인가?? 반신반의했지만, 오랫동안 강의를 해왔으니 나름의 생각이 있을거라 생각했습니다. 지금와서 생각해보면, 아마도 복잡한 문법이나 원리를 설명하기전에 우선 어떤식으로 프로그램이 작동하는지 이해하는게 먼저라고 생각했던것 같습니다. 예를들어 처음부터 '이것은 어떤 자료형의 변수고, 이건 클래스 이름이고, 이건 파라미터입니다' 따위의 말들을 했었다면 단 한마디도 알아들을 수 없었을 것입니다.
두번째 날, 그리고 세번째 날이 지나면서 자료형, 변수, 배열, 메소드, 클래스 등 을 하나씩 배워갔습니다. 배열과 메소드까지는 어느정도 이해가 가능했지만, 클래스를 처음 접했을 때는 도대체 이게 뭔가 싶었지요. 클래스가 뭐고 변수가 뭔지 알고 있는 지금 그 때의 기분을 정확히 표현할 수는 없지만, 아마 중학교 1 학년이 처음 수동태, 능동태를 배울때의 느낌이랄까? 클래스에 대한 이해가 전무한 상태 이후는 아무 의미 없는 시간들의 연속이었습니다. 말그대로 '쇠 귀에 경 읽기' 였죠. 몸은 학원에 나가고 있었지만, 제가 할수 있는 건 들리는 단어를 그대로 타이핑하는것뿐이었습니다. 그래도 실행은 되니깐 근근히 버틸수 있었던것 같습니다. 당시에 10 대 초등학생 꼬마와 같이 강의를 들었는데, 그 친구보다 내가 못따라간다는 느낌마저 들 정도였으니 좌절의 연속이었죠.
사실 18 일이라는 짧은 시간(한 달 강의지만 실제 강의 일수는 18 일 입니다) 동안 자바라는 언어 하나를 프로그래밍의 '프'자도 모르는 사람들에게 가르치려고 하다보니 이해를 하고 못하고는 중요한 문제가 아니었지요. 강사 입장에서는 커리큘럼에 따라서 반드시 수강생들에게 모든 강의를 해주어야 했습니다. 한달의 강의로 '학생들이 자바를 알고 자바 프로그램을 작성할 수 있게 되었다'는 사실은 학원에게는 중요한 관심사가 아니었습니다. 단지 몇명의 학생이 등록했고, 다음 달에는 또 몇명이 등록할지가 주요 관심사였죠. 한명을 유치함에 따라서 학원이 얻는 이익은 결코 작지 않았기 때문이겠죠. 그래도 강사님은 나름대로 열심히 가르쳐 주었습니다. 질문을 하면 최대한 이해가 가능하도록 설명해 주었고, 이해를 할 때까지 몇번이고 반복해서 설명도 해주셨습니다. 그렇지만 시간은 세시간으로 정해져있었고 그 이상을 초과할 수는 없었습니다.
그렇게 한달이 지나고 수업이 끝났을 무렵, 나는 아무것도 배우지 못했단걸 깨달았습니다. 내가 제대로 이해할 수 있는 거라곤 "Hello Java"와 초반에 배운 자료형이나 연산자 정도밖에 없단걸 알았지요. 처음 자바를 배우기 시작한건 친구와 구상한 사업 아이템으로 안드로이드 앱을 직접 만들어 보겠다는 막연한 생각에서부터였습니다. 처음에는 세네 달 정도 학원에 다니면 충분히 만들수 있을거라 생각했었는데, 딱 한달만에 완전히 잘못생각했었단걸 깨달았습니다. 제가 세운 막연한 계획은 정말 말도 안되는 망상이었단걸 알게된 것이죠.
두 달만에 결국 학원이 무의미하단걸 깨닫고는 혼자서 공부하기 시작했습니다. 유명하다는 자바강의 서적을 구매해서 보기도 하고, 인터넷 강의도 구해도 보기도 했었습니다. 하지만, 아무 기반지식이 없는 상태에서 혼자서 새로운 개념을 이해하고 받아들인다는게 쉬운 일은 아니더라구요. 그래도 학원에 비해서 나은점은 분명 있었습니다. 학원은 정해진 커리큘럼에 따라서 정해진 시간동안 반드시 진도를 나가야 하기에 수강생들이 이해를 하고 말고의 여부는 중요한게 아니죠. 그렇기 때문에 수업에 따라가지 못하게 되면 그 이후에는 아무 의미없는 시간이 되고 맙니다. 하지만, 혼자서 독학하게 되면 사정이 조금 다르죠. 진도를 나가다가도 이해가지 않는 부분이 있다면, 시간을 두고 여러번 반복해서 학습할 수 있다는 장점이 있습니다. 처음에 이해가 안된다고 하더라도 두번, 세번 계속해서 보다보면 언젠가는 깨닫게 되는 순간이 있는 법이죠. 물론 시간이 많이 걸린다는 단점도 분명 존재합니다.
그럼 어떤 학습법이 더 좋은걸까요? 만약에 저와 같은 과정을 거쳐가려는 친구가 제게 조언을 구한다면, 어떤 충고를 해줘야 할까요? 지금의 저라면, T 아카데미와 같이 전문 강사의 강의에 하나의 완성된 결과물을 낼 수 있는 강의를 찾아서 수강하라고 권하고 싶네요. 과정이 어렵고 이해가지 않는 부분이 있다 하더라도 완성된 하나의 결과물이 존재한다면, 프로그래밍을 통해서 얻는 기쁨이랄까.. 그런 성취감을 느낄수 있기 때문에 학습을 지속해 나갈수 있다고 생각이 들어요. T 아카데미와 같은 전문가과정을 수강하기 어려워 학원을 다녀야만 하는 경우라면, 한달짜리 단과반보다는 최소 세달 이상 결과물을 만들어낼수 있는 과정을 듣는 것이 좋다고 생각합니다. 그리고 처음부터 독학은 좀 무리라고 생각이 듭니다. 아무런 기본 지식이 없는 상태에서의 독학은 오히려 쉽게 포기하게 되버리므로, 어느정도 기반지식이 쌓은 상태에서 독학을 하는게 좋을것 같아요.
여기서 T 아카데미가 잠시 언급이 됐는데요. 네 그렇습니다. 다음 이야기의 주제가 바로 T 아카데미입니다. 저의 첫 결과물을 만들게 해준 고마운 학교임과 동시에 프로그래밍에 재미를 붙여준 곳이기도 하지요.