즐기면서 버티는 비전공자 개발자
우선 이 글을 읽기 전 비전공자인 당신이 왜 프로그래밍을 하고 있는지 자신에게 물어보는 시간을 가졌으면 한다. 그 질문을 필자에게 한다면 "재미"라고 대답할 것이다. 일을 재미로 하냐는 질문으로 되돌아올 수 있겠지만 나는 개발자가 프로그래밍이 재미없고 따분한 일이라면 다른 직업을 찾아보는 게 더 낫지 않을까?라고 생각한다. 굳이 하기 싫은 일을 억지로 하고 있기에는 인생은 너무 짧다. 코딩은 적성에 맞고 재미가 있어도 어려운 직종이다. 항상 공부를 해야 한다. 그리고 매일 숙제와 같은 문제와 씨름해야 한다. 프로그래밍을 즐기는 사람도 힘든 일을 왜 굳이 흥미도 없는 사람이 해야 하는가? 코딩을 해야 하는 절체절명의 이유는 없다.
프로그래밍은 생각보다 재밌는 요소가 많다. 며칠씩 막혔던 문제가 어느 날 갑지가 슬슬 풀려 나갈 때, 책에 나오는 예제를 따라가다가 나만의 새로운 방법을 발견했을 때, 어렵게만 느껴졌던 프래그래밍 방법들이 어느 날 머리에 들어와서 내 것이 되었을 때, 완료한 프로젝트가 잘 운영되어 돌아갈 때 등 무궁무진하게 즐길 거리가 많다. 이런 것들이 프로그래머의 삶을 지탱하고 버티는 힘이 된다. 컴퓨터로 창조하는 즐거움을 느낄 수 있을 때 비전공자들이 개발자가 될 수 있는 최소한의 준비성이라고 생각한다. 그러므로 만약 그저 취업이 상대적으로 쉬워서 개발자가 되려는 사람이 아닌 코딩의 재미를 느끼는 사람만이 개발자를 했으면 좋겠다.
"비전공자가 개발자가 되어서 취업을 하는 건 더 이상 어려운 일이 아니다. 하지만 개발자로 살아남는 사람은 드물다."
필자가 직접 느끼는 비전공자 예비 개발자의 취업 현실을 한 문장으로 표현한 것이다. 비교적으로 수요가 적었던 10년 전에도 전공자이든 비전공자이든 코딩을 공부한 사람이 취직하는 건 큰 어려움은 없었다. 여기서 취직이라 하면은 기업의 규모를 따지지 않는 취업이다. 지금은 어떠한가? 수요가 높아져 개발자 취업은 더 이상 문제가 되지 않는다. "어떻게 하면 오랫동안 현업에서 뒤처지지 않고 살아남을 수 있을까?" 이 부분을 더 고민해봐야 할 시대에 살아가고 있다.
앞서 말했지만 필자 또한 비전공자 개발자이다. 그리고 국비지원 과정을 통해 6개월의 훈련을 받았다. 당시에도 자바 개발자가 대세였지만 자바반이 꽉 찬 관계로 닷넷(.Net) 과정으로 수업을 들었다. 석 달은 닷넷 기초를 배웠고 그 후에는 프로젝트를 하였다. 그리고 남은 기간 동안 ASP와 PHP를 배웠다. 그리고 수업 후 남는 개인 시간은 독학으로 자바를 공부하였다. 교육과정은 크게 어렵지 않았다. 오히려 기초만 가르쳐주는 수업 과정이 야속하기만 했다. 하지만 지금 생각해보면 난이도가 높았으면 잘 따라가지 못했을 거 같은 생각이 든다.
국비지원 과정은 순식간에 지나갔고 대망의 취업을 시즌이 다가왔다. 취업포털사이트에 이틀 동안 끙끙대며 작성한 이력서를 올려두었다. 눈에 띄는 한 줄 없는 허술한 이력을 가진 나에게 수많은 중소기업들이 러브콜을 보내왔다. 처음 면접을 간 회사는 경기도 부천에 있는 작은 회사였고 당장 내일부터 일을 시작하는 게 조건이었지만 가지 않았다. 그렇게 여러 군데 면접을 보고 나서 결정한 곳은 집에서 걸어서 10분 거리의 회사였다. 첫 직장은 정말 만만치 않았다. 비전공자 개발자로서 컴퓨터 기본 소양이 없는 상태에서 현업은 가혹하였다. 외계어와 같은 단어와 문장들을 제대로 이해하지 못해 혼나기 일수였다. 나만의 착각인지 모르겠지만 "국비지원 출신 주제"라는 무시받는 느낌이 들었다. 쉽게 회사에 들어간 만큼 회사 생활도 쉬울 줄 알았지만 현업은 정말 가혹하고 힘들었다.
직업적 프로그래머가 되고 나면 많은 것이 달라진다. 현업에서는 '언어는 도구에 불과하다'라는 이야기를 종종 접하게 된다. 그런데 정말로 언어를 도구에 불과하게 사용하는 사람은 둘 중에 하나 일 것이다. 실력이 너무 출중하여서 다양한 언어를 능수능란하게 구사하는 고수, 아직 한 가지 언어도 깊이 공부하지 않은 수준의 개발자 일 것이다. 필자는 당연히 후자였고, 지금도 그러하다. 하지만 신입에게 언어는 도구일 뿐이라고 하는 이유로 새로운 언어로 된 프로젝트에 투입시키기 위한 말은 필요에 의한 말일 것이다. 사용해본 적 없는 언어로 된 프로젝트에 투입해야 한다고 하면 그래야 한다. 절이 싫으면 중이 떠날 수밖에 결국 버티기 위해 책을 구매하고 강의 영상을 보면서 열심히 따라가는 수밖에 없다. 그것이 바로 직업인 개발자이다.
코딩은 막노동에 가깝다는 체험이다. 열심히 피땀 흘려 만든 기능을 고객의 마음이 바뀌면 모든 부분을 갈아엎어야 한다. 당장 생각나는 흐름대로 코딩을 하고 그대로 덮어버리고 다음 프로젝트를 향해 떠나버린다. 그리고 생각보다 문서작업도 많다. 어떤 프로젝트에서는 코딩보다. 문서를 만드는데 더 많은 시간을 할애하기도 한다. 그리고 창조적인 코드를 짜는 시간보다 버그를 잡는 시간이 더 오래 걸린다. 학원에서는 아주 작은 단위에 프로젝트를 작업하기에 느끼지 못하는 거대하고 방대한 오류들을 만나게 된다. 새로운 소스를 짜는 일보다 이러한 버그들을 고치는데 더 많은 시간을 할애하는 걸 느낄 수 있다.
현업에서 코딩을 한지가 벌써 10년이 넘는 시간이 흘렀다. 현재는 대기업 IT계열사에서 과장으로 일하고 있다. 필자 역시 수많은 고난과 역경이 존재했다. 어떻게 살아남을 수 있었을까? 그 방법은 아마도 즐기면서 버티는 방법이 아니었을까? 예를 들어보자 사우나를 하면 온몸이 뜨겁다. 피부는 화상을 입은 듯 빨개지고 아프다. 숨도 제대로 쉬어지지 않는다. 하지만 버티고 버티면 땀이 흐르고 노폐물들이 빠져나오고 몸은 더 건강해진다. 코딩의 위기가 올 때 그렇게 버텨내면 그때마다 점점 실력은 좋아지고 개발자로 완성되어가는 게 아닐까 싶다.
이 글을 읽는 수많은 비전공자 개발자들에겐 더 많은 위기가 존재할 것이다. 이것을 반대로 말하면 더 성장할 수 있는 기회가 많아진다는 말이다. 분명 넋다운이 될 수도 있다. 하지만 코딩이 재밌고 개발자의 삶을 계속 살아가고 싶다면 그때마다 위기를 이겨내는 개발자가 되기를 바란다.