JMK no matter what

성장에 관하여

DISCLAIMER: 조.. 좀 재수없을지도 모릅니다.

아는 사람은 다 알지만 나는 일 중독, 공부 중독, 성장 중독이다. 따라서 지금 구글에 내 이름을 치면 첫 페이지에 나오는 "구종만은 언제 공부가 질릴것인가." 라는 질문의 답은 '안질려요, 아마' 일 것이다. 흠.

나의 일 중독이 처음으로 시작된 것은 ACM ICPC 대회를 준비하던 1학년 겨울방학쯤이다. 지금까지도 인구에 회자되는 (...) 크리스마스 이브 저녁 밤샘 코딩을 포함해서 -_- 겨울방학 내내 잠-코딩-밥-코딩-밥-코딩-잠의 생활을 반복하곤 했다. 평생 그렇게 뭔가 열심히 해본 적이 없던 내가 뭘 잘못 먹었길래 그렇게 열심히 공부를 한 것일까? 코딩이 그렇게 재미있어서였을까?

지금 돌이켜 보면 그 때 내가 그렇게 할 수 있었던 것은 그 시절이 내 실력이 느는 것을, 내가 성장하고 있다는 것이 실감나게 느껴지던 시기였기 때문이었던 것 같다. 나는 아직도.. 12월 모의고사에서 우리가 토멕네 팀 뒤로 2등했을 때 느껴지던 '와, 내가 이만큼 늘었구나' 라는 느낌을 기억한다. 어제 모르던 것을 오늘 배우면 내일은 못 풀던 문제를 풀 수 있었고, 같은 것을 짜더라도 전보다 좀 더 빠르고 간결하게 짤 수 있다는 것이 확확 느껴지던 시절이었다.

'성장' 이란 것은 세상에서 가장 강력한 동기 (motivation) 중 하나일 것이다. 지금보다 더 나아지고 싶은 욕망은 누구에게나 있다. 슬래시닷의 카르마 쌓기 (...), 탑코더에서 레이팅 올리기, 심지어는 취업 시장에서 스펙 쌓기까지, 성장이라는 동기에 의해 움직이는 사람들은 너무나도 많다. 하지만 성장이라는 동기를 가장 잘 활용하는 사람들은, 아마도 게임을 만드는 사람들일 것이다. 캐릭터 레벨을 올리고 장비를 갖추고, 전에 갈 수 없던 지역에 가고 칭호를 얻는다. 나는 게임을 정말 안 하지만, 그런 의미에서, 게임 중독자들을 너무나도 잘 이해한다. 나는 그들이 게임을 할 때 느끼는 마음으로 인생을 살고, 공부를 하기 때문이다. 너무나도 공부를 하고 싶은데, 다른 일이 바빠서 아무것도 할 수 없던 시절 쓴 일기에 이런 구절이 있다: '레벨업을 절실하게 해야 하는데 컴퓨터가 고장난 와우저의 심정으로 매일매일 잠이 든다.' ... (나지만 이쯤 되면 정신병인거 같다)

그렇게 성장에 중독되어버린 후로 나는 그냥 쭉 달려왔다. 지금까지 이룬 것이 있다면, 그리고 앞으로 이룰 것이 있다면 그건 내가 커다란 야망이 있어서도 아니고, 머리가 비상해서도 아니고, 단지 '아 시발 이것만 잡고 잔다' 라는 게이머와 똑같은 기분으로 '아 시발 이것만 하고 잔다' 라면서 해 보고 싶은 공부를 해 왔기 때문이다.

대체 왜 나한테는 이런 일이 일어났을까?

사실 나는 프로그래밍 대회가 그에 결정적인 영향을 미쳤다고 생각한다. 다시 2002년 겨울 이야기를 해 보면, 그 당시의 나는 성장하기 딱 좋은 환경에 있었다. 월드파이널에 진출하면서 공부를 열심히 해야 한다는 당위성도 생겼고, C 위에서 모든 자료구조를 직접 짜 가면서 코딩하다가 C++ 과 STL 을 쓰기 시작하니 그에 따른 생산성 향상도 있었다. 하지만 뭐니뭐니해도 가장 강력한 동기를 부여한 것은 '피드백' 이었다. 단순히 소스 코드가 맞는 답을 내는지를 판정해 주는 것만 해도 큰 의미가 있지만, 더 큰 것은 경쟁하는 다른 사람들에게서 받는 피드백이다. 내가 얘보다 문제를 빨리 푼 적이 한번도 없었는데 이번엔 이걸 내가 더 빨리 풀었다. 내가 랭킹에서 얘를 이긴 적이 없었는데 이번엔 이겼다. 그만큼 성장한 것이다. 이런 피드백들은 내가 성장하고 있다는 것을 무엇보다도 강하게 실감하게 해준다. 이거 좀 더 하니까 좀 더 빨라졌다. 이거 좀 더 하니까 못 하던 것을 할 수 있다. 그 기분만큼 즐거운 게 어디 있을까.

프로그래밍 대회는 자신이 짠 프로그램에 대한 피드백이 실시간으로 제공된다는 점에서 다른 어떤 프로그래밍과도 다르다. 코드 리뷰와 유닛 테스트는 대안이 되어 줄 수는 있지만 결국 한계가 있다. (프로그래밍 대회에서도 물론 한계는 있다 -_-) 하지만.. 프로그래밍을 처음 배우는 사람들에게 코드 리뷰와 유닛 테스트는 사치일 뿐이다. 나는 남들이 프로그래밍을 하면서 배우지 못하는 성취감을 느낄 수 있는 창구가 있었기 때문에, 더 열심히 공부할 수 있었고, 비교적 더 빠르게 성공할 수 있었다고 생각한다.

아.. 얘기하다 보니 프로그래밍 대회 예찬론으로 다시 넘어왔다. 본론으로 돌아가면.. 이렇게 강력한 피드백이란 존재는... 현실 세계엔 별로 없다. 난 오늘 하루종일 코드를 짰지만 그 코드 아무도 안 봐준다. 회사에서 퍼포먼스 평가.. 일년에 한 번 있다. 내가 오늘 한 줄 공부 더해봤자 올해 안에 그거 써먹을 일은 없을 것이니, 하나 안 하나 내 인생에 뭐 달라질 게 보이는 건 없다. 그런 환경이 수많은 직장인들을 단지 '샐러리맨' 그 이상 그 이하도 아닌 사람이 되도록 만든다. 이 환경 하에서 계속 성장하려면 다른 길이 필요하다.

지금 내가 한 달마다 목표를 쓰고, 내가 한 일들을 파악하고, 진도를 체크하는 것이 내 나름의 답이다. 솔직히 뭐 대단한 것이 있다고 이걸 남들 다 볼 수 있는 홈페이지에 올리는 건가.. 싶기도 하지만, 궁극적으로 내가 하고 싶은 것, 가고 싶은 길을 끊임없이 생각하고, 이야기함으로써 스스로 무얼 원하는지 발견할 수 있는 것 같다. 이런 과정을 통해, 과거처럼은 아니더라도.. 꾸준히, 스스로 갈 길을 갈 수 있다고 생각한다.

이렇게 쭉 앞으로 나아가서, 끝에 가서 뭐가 되고 싶은가, 뭘 이루고 싶은가는 잘 모르겠다. 지금의 나보다 좀 더 성장한 내가 되기를 바라는 것은 확실하다.

2010-04-02 15:54:12 | JM | /journal/ | 15 Comments
M. Kim
2010-04-02 16:22:14
휘니샘ㅋㅋ 예전 M모 정보경시학원에서 문제풀고 점수경합했던게 생각나네요. 그 땐 재귀로 짜는flood fill이 그렇게 재미가 있었는데.
dasony
2010-04-02 19:38:50
수열이가 치료해줄거야.
dasony
2010-04-02 19:39:52
한국 사회의 문제점 성장 만능 주의를 몰아내자.
DJ
2010-04-02 20:06:50
정말 나도 ICPC 준비하면서 즐거운 시간을 보냈었어.. 결과가 바로바로 나와서 점수가 쌓이는게 실시간으로 업데이트 되니 재미도 있었고~ 실력도 많이 는 것 같고... 또 나 혼자가 아니고, 2명의 친구들이 더 있었다는 것도 재미있었고.. 내가 못풀어도 기댈(!?ㅋㅋ) 친구들도 있었으니~
참 재미났던 그 시절이 그립군.!! 나도 좀 일찍 일찍 시작하는건데~~ 하는 아쉬움은 있다.
형주
2010-04-02 22:16:26
앞을 보며 꾸준히 달려나가는 것도 좋지만
가끔은 지금 현재 순간을 즐길 수 있는 여유를 가지길^^
물론 잘할거라고 믿지만서도 ㅋㅋㅋ
lemon
2010-04-02 22:38:35
한국 사회의 문제점인 성장 만능 주의를 몰아내는 운동을 지지합니다.
경헌
2010-04-02 23:00:36
오 이걸 읽고 이걸 시작했어요! http://hundredpushups.com/
담주부터 해야지 하고 자려던 참이었는데 ㅋㅋㅋㅋ
joana
2010-04-03 02:28:41
선생님 저 그림이 안 늘어요 엉엉.
dasony
2010-04-03 11:53:06
Well, I certainly applaud anyone wanting to do a hundred coding competitions, but take it from this old programming rat, I've spent my entire life coding, and a program like this one can do more harm than good.

If you only practice one part of your life (and that's all a single exercise like coding is going to do for you), you're setting yourself up for quite a virginity down the road. I've seen it a hundred times.

It's like putting a powerful full-feature framework in a knapsack program. What will you accomplish? You'll blow out your boss, your colleagues, your family, etc, because these problems aren't designed to handle inversion of control, model-view-control and middleware.

Coding basically only train the finger muscles and to some extent, the wrists. What you really want to do is train your entire body, all the major muscle groups (elbow, shoulder, jaw, stomach and intestines) at the same time, over the course of a coding. And don't forget your all-nighting skill!

I'm proud of you guys wanting to do this. Three cheers! Falling in love with programming, logical thinking, etc., is one of the greatest things you can do for yourself. And you WILL fall in love with it if you can just force yourself to stick with it a year or two and experience the amazing progress you'll make.

But do it right, okay?

My advice, find a good problem archive, with qualified fairies who will design your programs for you (especially in the beginning, until you get the hang of it yourself) and guide you in your quest for complete nerdiness. Thirty to 45 minutes a day, three days a week, is all you'll ever need to do (I refuse to believe anyone is so busy that he or she cannot make time for that, especially considering how important it is).

And don't worry about being embarrassed or not solving in a polynomial time first time you submit your code. You have to start somewhere and almost every one of us were there ourselves at one time. So no one will say anything to you and very, very quickly you will progress way beyond that stage anyway.

Now get out there and do it! :-)
JM
2010-04-04 14:18:37
@Midworld, ㅋㅋㅋ 그런거 기억하지 마 ㅋㅋㅋ 플러드필 ㅋㅋㅋ
@dasony, 수열이는 좋다는데? ㅋㅋㅋ
@DJ, 아, 그랬던 시절들, 나도 그립소. ㅋㅋ 좀 일찍 시작하는건데 하는 아쉬움은 사실 누구에게나 있을 듯. 나도 예외가 아니라오. ㅋㅋ
@땡주, 형주라고 해서 누군가 했다. ㅋㅋㅋ 고맙삼. 걱정마시게~ :)
@lemon, 여기는 미국 사회라서 오케이
@경헌, ㅋㅋㅋㅋㅋ 이게 어떻게 그걸로 연결되나는 모르겠는데 여튼 시작했다니 좋은 일이다 ㅎ
@joana, 연습+공개+셀프 피드백 루프를 타보시는 겁니다. 안나씨는 많이 하시는거 같던데.
@dasony, didn't you use http://www.icertainlyapplaud.com/?! anyway, my point was about the importance of feedbacks -- and programming contests were presented as a good way for one to get into the feedback loop. well, my wording could be misleading..
dasony
2010-04-05 00:26:33
그런거 안써요. and please don't take my jokes seriously. it makes them unfunny, even more than they already are, and ultimately makes me sad. =(
JM
2010-04-05 02:03:05
@dasony, 성의있는 조크라 성의있게 반응해줘야 할 것 같았음... ㅈㅅ ㅋㅋㅋㅋ
최치선
2010-04-05 11:17:33
역시 멋쟁이임 ㅋ
1년전의 나랑 비교했을때 1년동안 난 뭐했나 싶네 ㅋㅋ
지금이라도 정신차리고 달려야지
JM
2010-04-06 14:15:26
@치선, 멋쟁이는 님이 멋쟁이고.. 난 1년동안 장가갔기 때문에 아쉽지 않다! 음하하. 열심히 합시다. :-)
전찐a
2010-04-11 22:55:27
이제 막 직장인이 된 저에게 자극이 되는 글이예요~ JMK 감사감사 ^^

Leave a comment

春來不似春

About

Eventstream

Pages

Guestbook

Search

Site Admin

Recent Comments