You are here: Home - VS Way - VS OJT 프로그램의 의도

0906210142

VS OJT 프로그램의 의도

제가 VS OJT 라는 희한한 프로그램을 만들어냈습니다. 네… 그 Matrix에 등장하는 창조잡니다.

그런데 정작, 왜 이게 이렇게 설계되어있는지, 아키텍트가 네오에게 설명하듯이 상세하게 설명하는 시리즈가 없었습니다. OJT 프로그램의 동기에 대해서는 이전에 한번 글을 올린 적이 있는 듯 한데(가물가물하긴 하지만…) 왜 이게 이런 형태를 띄게 되었는지에 대해서는 이야기 하기 하지 못했었네요.

OJT가 시작되면 피교육생들은 무섭게 달려야 하고, 이 때문에 각각이 어떤 의미를 지니는지 친절하게 설명할 기회가 딱히 없다고 해야 할까요? 저는 매우 치밀한 성격의 소유잡니다. 이걸 주변 사람들은 편집증적인 성격이라고 이야기하던데요, 그래서 그런지 OJT 코스의 각 단계도 매우 치밀하게 설계되어 있습니다. 매번 수료하는 학생들을 보면, 확실히 그 설계가 먹힌다는 피드백을 받기도 합니다. 하지만 어째서 학생들이 프로그램을 진행할 수록 그렇게 진화하는지에 대한 설명은 없었던 것이지요. 불친절한 교육일까요…

밑에 3기 수료생의 글을 읽어보니, 왜 이게 이렇게 설계되어 있는지에 대한 이야기를 할 필요가 있을 것 같군요.

우리 회사 프로그래머 OJT 코스가 정식으로 시작된 것은 “김선준”이라는 한 어린 학생에게 프로그래밍을 Full-time으로 가르치기 시작하던 때로 거슬러
올라갑니다. 이때가 그러니까, 2006년 11월? 이 쯤 될 겁니다 아마.. 지금의 형태를 지닌 VS OJT의 프로토타입이라고 생각하면 될 것 같습니다.
그 친구는 C와 C++을 제대로 배워본 적이 없었던 아이였기 때문에, 먼저 C를 어떻게 하면 쉽게 가르쳐줄 수 있을까를 고민하면서 교육코스를 정식으로 만들어야 겠다는 생각을 가지게 되었습니다. 그렇게 해서 제가 어릴적 부터 타고 올라온 Tech-tree를 먼저 죽 쓴 다음에, 그 중에 쓸데 없이 돌아왔다고 생각되는 것은 과감하게 가지치기를 하고, 전후를 바꾸어서 공부했더라면 더 좋았을 것 같다는 순서대로 과정을 재배치 합니다. 이게 VS OJT 버전 1.0 입니다.

역사 이야기는 이쯤에서 접어두고, 좀 구체적인 코스 하나를 이야기 해보겠습니다.

“이런 경험들을 하면서 우선 느는 것이 Meta Learning입니다. ‘학습하는 방법을 학습한다’라고 설명할 수 있겠습니다. ” 라는 수료생의 이야기가 밑의 글에 있군요. 사실 이 부분이 바로 VS OJT 프로그램의 Key-factor 입니다.
제가 타프시스템에 다닐 적에 오준규라는 프로그래밍 팀장님과 같이 일을 하게 되었습니다. 간단히 소개하면 이 분이 현재 아바팀을 만드신 PD님이고, 현재 아바팀의 전신인 싸이파이팀을 저와 오팀장님 두 명이서 만들었습니다. 이 분은 90년대 초반 “작은마녀”라고 하는 게임 타이틀을 개발했었던 원년 개발자십니다. KAIST석사시기도 하고요. 제 프로그래머 인생에 큰 영향을 끼치신 분들이 몇 분 계시는 데 그 중에서 학습에 대한 관점을 바꾸게 해 주신 분이 바로 이 팀장님입니다. 특별히 마음에 남은 좋은 이야기를 들어본 적도 없고, 가족처럼 챙겨주셨던 추억도 없고, 따로 개인적으로 프로그래밍에 대한 직접적인 가르침을 주신적도 없습니다. 물론 퇴사 이후에는 전화 한번 없고, 저도 특별히 이 분께 연락을 하지 않습니다. 3년 넘게 같이 일한 사이인데 말이지요. 하지만, 교육에 대한 관점을 바꿔주신 것은 정말 좋은 경험이었습니다.

1. 어느날 갑자기 길찾기 모듈을 만들어야 겠다고 한다.
2. 시중에 나와있는 모든 길찾기 알고리즘을 비교분석 하라고 한다.
3. 각각의 장단점에 대해서 보고하라고 한다.
4. 그 중에서 가장 우리 프로젝트에 Fit 한걸 고르라고 한다.
5. 그걸로 구현해서 엔진에 붙이라고 한다.
6. 테스트 해보고 완성하라고 한다.

끝입니다. 더 이상 가르쳐주는 것도 없고, 과정 유도도 없습니다. 어떤걸 조사하라던지, 어디서 찾아보라던지, 아무런 가이드가 없습니다.

재밌게도 현재 이 과정이 우리 회사의 A* 갈찾기 코스로 녹아 있습니다. 이때, 그때까지 나온 모든 길찾기 알고리즘 논문을 다 읽어봤고, 구현해본것도
많고, 구현된걸 돌려본 것도 많습니다. 굳이 누가 뭘 가르쳐 주면 그걸 해볼 수 있는게 아니라, 알아서 직접 해야 된다는 걸 배우게 되었습니다. 또, 그렇게 하면 정말 내 것이 된다는 것도 알게 되었지요.

한번은, 검색해봐도(하이텔 VT통신으로 go GMA를 할 시절입니다.) 좋은게 안나옵니다. 그랬더니, google로 영어 논문을 하나 찾으시더니, 이건 뭐냐는 겁니다. 헉… 그랬었죠. 왜 영어 논문 찾을 생각은 하지도 못했을까요.

또 한번은, 정말 빡빡 검색해봐도, Implementation은 없고, 논문 하나만 달랑 있는데, 그래서 이걸로는 못 만들겠다고 말했습니다. 하시는 말씀이, ‘국내 개발자들 수준이 전부 저 바닥에 있는데, 당연히 우리가 개발하려고 하는건 국내에 구현자가 없는게 맞는거 아니냐. 만약에 국내에 누가 벌써 개발한거면 이미 관심 없다.’였습니다.

“막히는 부분이 생기더라도, 여유를 가지고 ‘언젠가는 완성하겠지’란 마인드로 접근하니 더 수월하게 풀렸던 것 같습니다.” 라고 수료생이 한 말은, 사실 VS OJT의 처음부터 매우 치밀하게 계획된 것이었고, 또 그렇게 되도록 지금 버전에 이르기까지 많은 수정이 일어나고 있는 것입니다.

다른 요소를 한가지만 더 이야기 해볼까요.

김병선 : ” 발표를 하는 과정 자체가 스스로 배운 내용을 정리하는 프로세스가 되어 버리는 것이죠. 단점도 있습니다. 공부 자체에 들어가는 시간하고 발표자료를 만드는 시간이 거의 대등해져 버린다는 건데요,”

이것 역시 매우 치밀하게 계획된 것입니다. 초보 프로그래머들에게 “프로그래머”와 “코더”의 차이를 아는가.. 라는 질문을 하면, 프로그래머는 설계를 하고, 코딩은 설계를 안한다부터 이상한 대답을 많이 들을 수 있습니다. 왜냐 하면 엄격한 정의가 없으니까요. 코더는 설계를 안 하나요? 코딩할 때 그럼 pseudo 코드를 line by line으로 각 언어로 옮겨 씁니까? 하하하

제가 생각하는, 엄밀히 이야기 하면 제가 또 배운 다른 팀장님의 말씀에 따르면, 프로그래머와 코더의 차이는, 프로그래머는 소통하는 개발자이고, 코더는 그냥 명령 하달을 받는 개발자이다. 라는 것입니다. 프로그래머는 자신의 생각을 남에게 일목요연하게 정리해서 전달할 수 있는 능력이 탁월해야 합니다. 하지만 대부분의 업계 프로그래머들을 보면서 느낀 것이 남과 소통하는 방법을 정말 모른다는 겁니다. 심지어 어떤 프로그래머들은 일종의 대화 장애에 걸린 것이 아닐까 하는 생각까지 듭니다.

남이 말할때, 적절한 피드백을 하지않거나, 자신의 생각을 딱 정리해서 이야기하지 못하거나, 막연히 글을 쓰거나, 이야기하거나, 자신의 생각을 말하는 과정 자체를 꺼리거나(이럴 경우에 보통 자신은 말하는 걸 싫어하는 스타일이라… 라고 하죠) 그렇게 커뮤니케이션에 문제가 있는 프로그래머들은 의견 조율을 하지 못하기 때문에 보통 장기적으로는 부분적인 모듈을 만드는 코더 수준의 일만 계속 하게 됩니다.

그래서 프로그래머들에게 자신이 정리한 생각을 자신있게 전달하고, 피드백 받는 능력을 먼저 길러주어야 한다는 생각에는 변함이 없고, 전체 교육의 절반은 이것에 할애 되기를 바라고 있습니다. 그 결과로 탄생한 것이 세미나 코스 입니다.

많은 세미나를 반복하면서 자신도 모르게 대중앞에서 이야기하고 자신의 생각을 말하고, 상대방의 이야기를 듣고, 상대의 논리를 받아들이는 방법에 대해 배우게 됩니다. (보통 프로그래머들은 자신의 논리가 공격 당했을 때 자신의 의견을 개진해 상대방을 설득하기 위해서 눈에 불을 켜지, 상대방의 이야기를 신중하게 들으려고 하지 않는 것도 큰 특징 중 하나죠. 이걸 깨주려고도 노력합니다.) 거기에 자신의 생각을 깔끔하게 정리할 수 있는 슬라이드 제작 스킬 역시 반드시 필요한 능력이죠. 프로그래머에겐…

두서없이, 3기 수료생이 홈페이지에 쓴 글을 보고 생각나는 걸 메모했다가 한번 끄적여봅니다. 이 밖에도 OJT 코스의 각 단계는 그걸 왜 하는지에 대한
아주 명쾌한 설계들이 숨어있습니다. (믿어도 된다는 이야기지요) VS OJT 프로그램은 외부 다른 회사들에게 공개되면 안 되니 이쯤 하기로 하고,

더 깊은 내용은 VS OJT 프로그램에 참여해서 알아보도록 합시다.

자! 다음 순서는 바로 당신!

by Kay Park

Leave a Reply

Back to top