(3) 인턴에서 나쁜 프로그래머가 되기까지

[송만약의 나쁜 프로그래머 이야기] (3) 인턴에서 나쁜 프로그래머가 되기까지

20789
SHARE
shutterstock

사회 초년생 시절 나는 한 스타트업에서 일을 하게 됐다. 그때 나의 자존심은 하늘 높이 찌르고 있었는데, 책에서 배운 지식과 스킬들로 어느 프로젝트 수업을 들어도 자신 있었고 언제 어디서든 필요한 선배이자, 사랑받는 학생이었다.

하늘 찌르던 자존심을 꺾은 건 다름아닌 제일 자신 있던 프로그래밍이었다. 사회생활에서 마주하게 된 직장 선배의 방식은 나와 너무 달랐다. 혼자 힘으로 이해하기에는 버거웠고 나에게 남은 옵션은 멍을 때리는 것과 질문을 하는 것 두 가지였다. 두 옵션 다 마땅치 않은게 멍을 때리려 회사에 온 것은 절대 아니고 또 사실상 뭘 하는게 없었기에 질문할 건더기도 없었다. 나는 매번 업무를 강력하게 요청했고 프로그래밍 업무를 받길 손꼽아 기다렸다. 실력을 보여주고 싶고 보탬이 되고 싶었다.

그러던 어느 날 회사가 작은 SI 프로젝트를 수주하면서 나도 기회를 가지게 됐다. 그 프로젝트는 JAVA 막코딩을 기반으로 한 웹사이트의 리뉴얼 프로젝트였다. (그때는 Spring이나 Struts와 같은 웹 프로젝트가 별로 없었다) 그간 내가 다뤘던 플랫폼은 C와 MFC였고 Javascript에서는 초보 수준, html은 교양 수업 정도의 수준을 가진 나에겐 Java는 정말 생소한 언어였고 첫 기회부터 난관에 봉착했다.

열정 빼고 시체라는 사회 초년생에게 사실상 그런 난관은 사실 별것이 아니다.

‘그쯤이야 새로 배우면 그만이지! 모르는 건 사수에게 물어보면 돼!’라는 마음가짐이 있었기에 그 어떤 문제도 헤쳐나갈 패기가 있었다. 그때의 사수는 현명하게도 Java 쪽 업무보다는 html과 Javascript로 이루어진 front 업무를 맡겼다. 나름 배려한 배정이었겠지만, 난 Java를 배우고자 하는 마음이 더 컸고 월권인 줄 알면서도 나름 소스를 분석해가며 사수에게 이것저것 물어보았다.

사수는 인격적으로도 기술적으로도 뛰어나신 분이었지만, 나의 밑도 끝도 없는 질문에 시간을 할애하기엔 너무 바쁘셨다. 나는 부족함을 느꼈고 업무가 끝나고 나면 투덜거리며 핑계를 대며 회사에서 공부하기 시작했다. ‘내가 공부해서 기술이 늘면 회사에서 좋은 게 아니야?’라는 생각이 들었다. 하지만 그 이후 나에게 더는 프로젝트 참여기회는 주어지지 않았다. 그리고 어영부영 다니다 스스로 퇴사하게 됐다.

퇴사 이후 꽤 오랜 시간이 지난 뒤에야 인턴 동기를 통해 난 매우 나쁜 프로그래머 전형에 속했다는 것을 들었다. 그때도 난 내가 왜 나쁜 프로그래머인지도 몰랐으며, 무엇이 나쁜 것인지에 대한 개념조차 세워져 있지도 않았다. 그래서 생각해보았다.

‘어떻게 자신감있었고 열심히 했던 내가 왜 나쁜 프로그래머가 됐을까?’

 

shutterstock
이미지: shutterstock

1. 개인적인 욕망을 주체하지 못한 것

어느 회사에 가든 신입에 제일 바라는 것은 회사 시스템을 배우는 것이다.

군대에 입대하면 가장 먼저 배우는 것이 총 쏘고 수류탄을 던지는 것이 아닌 바로 걷기, 밥 먹기, 옷 갈아입기인 것과 같은 맥락이다. 훈련병이 제식을 가르치고 있는 조교에게 “총 쏘는 법 빨리 알려주세요. 현기증 난단말이에요. 뿌웅!” 조르면 돌아오는 것은 “하나에 정신을! 둘에 차리자!”일 뿐이다.

기획이든 디자이너든 분야에 상관없이 신입에 요구되는 것은 거의 없다고 보면 된다. 다만 회사의 시스템을 통하여 ‘누가’, ‘어떤 일을’, ‘어떤 식으로’ 협업하고 해결하는지 방식에 대하여 이해하길 원한다. 하루빨리 사수와 동등한 업무를 소화하길 원했던 나의 야망은 나를 뽑아준 회사도 절대 원하지 않았던 개인적인 만용이었을 뿐이었다.

2. 질문다운 질문을 하지 않은 것

신입에 질문은 아주 중요하다. 사수는 신입을 호숫가로 끌어다 주지 물을 먹이는 게 아니다. 그럴 여유가 없다. 신입 스스로 무엇이 문제이며 무엇을 모르고 있는지 핵심을 알고 질문해야 한다. 당시 내가 사수에게 했던 질문들을 보자.

“이 버그는 아무리 해도 모르겠어요.”
“이 링크를 찾아가 봤는데 파일이 없어요. 근데 작동하는 게 이상해요.”

나의 문제점이 보이는가? 이 코드가 왜 작동하는지, 어떻게 수정하는지 물어보는 것은 수준이 알맞은 질문이 아니었다. 질문을 고쳐보자.

“이러 이러한 문제는 왜 생기며, 해결하려면 어떤 자료를 어디서 찾아봐야 하나요?”

이렇게 나는 상사가 어떻게 문제를 분석하고, 해결하는지 그 방식에 대해 조언을 구했어야 했다. 신입은 사수에게 답을 구할 것이 아니라 제대로 된 질문을 던져 문제해결방식을 배워야 한다. 숲을 보지 않고 나무만 보는 시야로 이루어진 질문들은 사수에게도 나에게도 건설적이지 않다.

3. 회사는 일하기 위해 배우는 곳이다. 일하기 위해에 밑줄을 쳐라 

회사에서도 학교처럼 배움이 가능하다. 다만 학교처럼 ‘배워두세요’가 아니라 배워서 ‘일을 하세요’라는 꼬리가 붙는다. 사실 이게 많은 사회초년생이 가지는 제일 큰 오해다. 회사에서 날 키우는 이유는 일하라고 교육하는 것이다. 이 체제를 이해하지 못하면 ‘난 의욕적이지만 회사가 그걸 따라와 주지 않아. 회사에선 쓸데없는 일만 시켜.’ 하는 투덜이가 되고 잉여 인간이 되는 건 시간문제다. 투덜투덜 불만은 많지, 의욕은 없지. 그 어떤 사람이 나와 일을 하고 싶을까?

위의 1, 2, 3번은 내가 어떻게 나쁜 프로그래머가 됐었는지다. 그럼 나는 이제 어떻게 해야 하나 고민하는 프로그래머들도 여기 있을 것이다.

배움에 조급함을 버려라. 회사 나가서 들숨 날숨을 제대로 쉬는 것조차 신입에게는 배움의 기회다. 게임만 해도 알 수 있는 진리다. 레벨 1의 캐릭터는 전사, 사제 아니면 마법사든 시시껄렁한 임무를 받고 토끼나 멧돼지의 어금니를 얻기 위해 사냥부터 한다. 시간이 모든 것을 해결해준다는 명언처럼, 어느 정도 시간이 흐르고 성장하고 난 뒤에 그럴듯한 퀘스트를 받는다.

내 경험상 100명의 프로그래머 신입이 있다면 1년 뒤에는 50명만 남아있다. 2년 뒤에는 20명만 남는다. 10년 뒤에는? 10년 뒤도 20명이 이다. 2년 뒤와 10년 뒤가 똑같이 20인 것은 프로그래머가 되기 위한 마지막 관문이 실무 2년이라고 생각하기 때문이다.

게임 이야기로 계속하면 100개의 새로운 캐릭터 중 중간레벨 에 도달하는 캐릭터는 30%도 안 된다. 게임도 이런 데 세상 어떤 일도 원래 이렇다. 프로그래머가 되고 기초업무가 내가 꿈꿔왔던 일들이 아닐 수도 있다. 하지만, 그 기초를 탄탄히 해놓으면 그 업무가 너를 키워줄 것이다.

정말 3년 내에서는 그런 시시껄렁한 것들로부터 자양분을 받을 필요가 있다. 팀장과 같은 업무를 해보고 싶고, 설계도 하고 싶고 그러다 보니 이 눈앞에 있는 버그들을 당장 해치워버리고 싶은데 그걸 회사에서는 가르쳐주지 않고 ‘이 $%%^^ 같은 회사!’ 이렇게 조바심을 낸다는 것은 아직 기초를 닦아야 한다는 말이다. 당신이 모자라서가 아니다. 방금 생성된 레벨 1에 있으면서 수련을 하는 시기일 뿐이다. 단숨에 레벨1이 만렙을 찍을 순 없지만, 치트키 없는 게임은 없다. 내가 줄 수 있는 팁은 팀장이 주는 일을 단순히 하는 것이 아니라

‘왜’
‘나에게’
‘이 일을’ 주었나?

결과를 보고 팀장은 ‘어떻게 반응’했나? 팀원의 반응은? 생각해봐라.

그리고 거기서 그치는 게 아니라 기록해라. 기록의 힘은 위대하고 실제로 내가 팀장이 됐을 때 큰 자산이 됐다. 또 바로 질문하면 안 된다. ‘버그가 났는데 왜 났어요?’ 물어보지 마라. 잘못된 질문이다. ‘이 버그에 대해서 구글이나 네이버에 이렇게 검색을 했는데 나오지 않았습니다.’라고 이 문제 해결을 위해서 내가 어떤 방식을 사용했는지 보고하며 방식에 대한 질문을 던져라. 이것은 네가 팀장이 되고 나서도 좋은 리더가 되기 위해 필요하다. 이렇게 했는데도 나쁜 프로그래머가 되어있을 수도 있다. 그러면 고치면 된다. 내가 무엇이 되어가고 있나 인지하고 있다는 것 자체가 큰 도움이다.

모든 일이 그렇다. 처음에는 재미없고 볼품없고 힘들기만 하다. 근데 그런 시시껄렁한 경험이 시간으로 묵히기만 하면 경력이 되어간다. 내 조언은 개인적인 꼰대 짓이 아니다. 잘 나서 하는 훈장질도 아니다. 나는 항상 실패하는 사람이었고 의도와 상관없이 나쁜 프로그래머가 되어있기도 했다. 하지만 팀장, 동료, 후배 등등 성장한 모든 사람을 지켜보면 이 지겨운 배움의 시간을 잘 이겨낸 사람들이다. 나의 글은 문제지의 정답과 해설과 같은 보기 좋은 성공 사례가 아니다. 실패 사례에 가까워 끊임없이 배워나갈 의지가 있는 사람에게 오답 노트가 되길 바란다.