누구나 공부를 하다 보면 잘 안되는 날이 분명 있을 것이다.
나에겐 오늘이 그런 날이다.
그럼과 동시에 지금 내가 스스로 심적으로 많이 조급해하고 있다는 것을 느꼈다.
왜 그럴까. 조금 고민해보니 답은 금방 나왔다.
앞으로 몇 년 뒤, 취업 전선에 뛰어들 시기의 나는 과연 기업이 원하는 인재의 모습이 될 수 있을까?
그러기 위해 지금 나는 올바른 방향으로 공부하고 있는 건가?
혹시 잘못된 선택으로 인해 시간을 허비하고 있는 건 아닐까?
이런 걱정들이 나도 모르는 사이에 내 스스로를 옥죄고 있었던 것이다.
나는 좋은 개발자가 되고 싶다.
나는 실력 있고 커뮤니케이션도 잘하여 남들에게 인정 받는 개발자가 되고 싶다.
그리고 나보다 더 나은 사람들과 함께 일하며 성장하는 개발자가 되고 싶다.
하지만 왜 그런 개발자가 되고 싶은지, 그 이유를 분명하게 답할 수 없었다.
아무래도 뭔가 중요한 것을 놓치고 있는 것 같은 기분이 들었다.
그래서 나는 내가 개발자가 되기로 한 이유를 지금껏 살아온 내 짧은 인생 속에서 다시 한 번 찾아보기로 했다.
우선 어린 시절 나는 무엇을 좋아했는지, 무엇이 내 심장을 뛰게 했는지부터 생각해보았다.
그러자 초등학교 시절, PPT를 사용하여 마우스로 진행하는 간단한 미로 게임(소위 ‘마우스 피하기’)을 만들어보고 주위 사람들에게 플레이 해보도록 권하거나 온라인 커뮤니티에 올려 사람들에게 소소한 칭찬을 받고 기뻐했던 기억이 났다.
그리고 실생활에 도움이 될 만한 (예를 들면 타이머) 프로그램을 직접 만들어보고 내 생활에 이용해 본 기억도 났다.
어쩌면 나는 이미 그 때부터 개발의 재미를 알기 시작했던 것이 아니었을까.
하지만 어느 순간부터 공부에 대한 부모님의 기대와 압박이 커지면서 내 삶은 90퍼센트 이상을 학업에 쏟아야 하는 학생의 삶으로 변해있었고, 자연스럽게 나의 자유로운 창작 활동 또한 휴면 상태로 들어갔다.
그런 답답한 삶 속에서도 나는 내 나름대로의 즐거움을 찾기 위해 이런 저런 취미를 가졌던 것이 기억난다.
그 취미엔 만화 그리기, 작곡, 게임 개조 등등 다양한 것들이 있었는데, 생각해보니 모두 무언가를 만드는 활동이란 공통점이 있었다.
아쉽게도 이런 활동들이 눈에 보이는 성과로 이어지진 않았지만, 그래도 적어도 이런 취미라도 가지고 있었던 것이 힘들었던 내 학창 시절의 버팀목이 되어주었던 것 같다.
고등학생이 된 이후로는, 진로를 선택하는 일이 학교 성적 다음으로 내게 가장 큰 고민거리였다.
당시 나는 평소에 컴퓨터를 좋아하고, 프로그래밍에 대한 막연한 환상이 있어 컴퓨터공학과에 관심이 어느 정도 있었다.
하지만 컴퓨터공학과에 가서 뭘 배우는지, 졸업하면 무슨 일을 하는지 아는 정보가 하나도 없었을 뿐더러, 이 쪽 업계는 생각보다 근무 환경이 안 좋다는 얘기를 많이 들은 탓에 선뜻 고르기는 힘든 선택지였다.
그러던 어느 날, 나는 집에서 저녁을 먹다 우연히 EBS에서 방영한 소프트웨어 관련 다큐멘터리를 보았다. 그 다큐멘터리가 내 인생을 바꾸게 될 줄은 전혀 모른 채 말이다.
아직도 그 때의 기억이 생생한데, 당시에 난 어머니의 잔소리를 무릅 쓰고 마치 무엇에 홀린 것처럼 앉은 자리에서 그 다큐멘터리를 끝까지 시청했다. 그리고 무언가 말로 표현할 수 없는 깊은 감명을 받았다.
지금 생각해보면, 당시 TV 화면에 비친 IT 업계에 종사하는 사람들이 자신의 일을 좋아하며 즐겁게 일하는 모습과, 소프트웨어가 세상에 큰 영향을 미치는 모습이 나에게 깊은 인상으로 다가왔던 것 같다.
(몇 년 후 해당 다큐멘터리 영상을 유튜브에서 발견할 수 있었다.)
비록 이 때까지만 해도 나는 프로그래밍과 코딩에 대해 아는 것이 단 0.1만큼도 없었지만,
내 가슴을 뛰게 만든 ‘소프트웨어’란 것이 무엇인지 궁금해, 무작정 코딩을 배워보고 싶다는 생각이 들었다.
이를 계기로 나는 전공을 소프트웨어 및 컴퓨터 공학 계열로 정했고 더 이상 다른 진로는 생각하지 않았다.
그러나, 대학교에 와서 처음 프로그래밍을 배운 나의 감상은, 어렵고 재미없었다.
C언어와 파이썬을 첫 학기에 동시에 배웠는데, 두 언어의 문법이 정말 헷갈려 고생했던 기억이 난다.
게다가 수업 내용과 과제의 괴리감이 너무나 컸다. (반복문을 처음 배웠는데 알고리즘 과제를 해야 했다..😂)
그래서 결국 나는 수업을 제대로 따라가지 못해 부끄럽게도 학점을 엉망으로 받았다.
사실 처음 대학교에 입학 후 방황하는 시기가 좀 있었다. 3번의 수능 끝에도 원하는 성적을 받지 못했고 어떻게 점수에 맞춰 온 학교도 내가 생각했던 대학의 모습과 거리가 멀었기 때문이다.
지금봐도 처참한 당시 전공 과목 성적들..
그렇게 첫 학기가 끝날 무렵, 나는 내가 컴퓨터공학과에 잘 온 건지, 프로그래밍이 내 적성에 맞는 건지 깊이 고민을 하게 되었다. 하지만 아직 내가 코딩을 제대로 해보지도 않았다는 생각이 들어, 방학 기간동안 한 번 제대로 프로그래밍을 공부해보자고 마음 먹었다.
하지만 막상 공부를 하려니 어떻게 해야 할 지 감이 잡히지 않았다.
그래서 우선 주위에 도움을 받을만한 곳이 있는지 알아보고, 마침 괜찮아 보이는 컴퓨터 학원을 발견해, 파이썬과 C를 기초부터 가르치는 단과 수업을 신청해서 들었다.
그리고 잘 해냈다.
당시 수업이 꽤 타이트했던 걸로 기억하는데, 학부 수업과 가장 달랐던 점은, 코드를 직접 손으로 계속 치면서 수업이 진행되었던 점이다. 그 때 ‘백문이 불어 일 타(打)’라는 말이 무슨 의미인지 처음으로 깨달았다.
말로 아무리 설명을 들어도 손으로 쳐서 코드를 작성해보지 않으면 실력이 늘지 않는다는 것을 직접 실감한 것이다.
그리고 이 단과 수업을 통해 학교 수업으론 이해가 안 되던 개념들이 드디어 이해가 되기 시작했다.
이해가 되니, 응용도 되기 시작했고, 프로그래밍이 처음으로 재밌게 느껴지기 시작했다.
(개인적으로 프로그래밍이 수학과 많이 닮았다고 생각하는데, 이 때 처음으로 그런 생각을 했던 것 같다.)
그렇게 열심히 공부하고, 2학기를 맞이했다. 그리고 2학기는 1학기보다 훨씬 더 힘들었다.
전공 수업 중 '컴퓨터프로그래밍실습'이란 이름을 가진, C++를 가르치는 수업이 있었는데,
지금도 1학년 2학기를 떠올리면 그 수업밖에 생각이 안 날 정도로 힘들었던 수업이었다.
가르치는 내용은 당연히 어려웠고, 과제는 그보다 훠어어얼씬 더 어려웠다.
(이땐 진짜 알고리즘 문제가 과제로 주어졌다. 물론 당시엔 그게 그런 문제였는지도 모르고 과제를 했지만. 😂)
그렇지만 나는 지난 학기와 달랐다. 이제는 프로그래밍 공부가 재밌어졌고 어떻게 공부해야 할 지도 알았다. 그래서 포기하지 않고 한 학기 내내 정말 열심히 수업을 따라갔다.
이 수업에 관해선 정말 인상 깊었던 경험이 하나 있다. 클래스를 활용하여 은행의 기능을 동작하도록 하는 프로그램을 작성하는 과제가 있었는데, 하다보니 자그마치 코드 길이가 400줄이 넘어갔다.
이 때 정말 밤을 새서 과제를 했다.
그 다음 날 아침 7시에, 수업 과제용으로 사용했던 IDE 창에 ‘맞았습니다’ 문구를 봤을 때의 그 희열감은 지금도 잊혀지지 않는다.
아쉽게도 나는 모든 과제를 100퍼센트 다 수행하진 못했다. 하지만 끝까지 포기하지 않고 공부한 결과, 많이 늘어난 프로그래밍 실력과 함께 A0라는 좋은 학점을 받을 수 있었다. (덤으로 다른 전공 과목에선 처음으로 A+ 학점을 받았다.)
나의 대학교 1학년 시절은 내 짧디 짧은 프로그래밍 인생에서 정말 중요하고 뜻깊었던 한 해로 기억된다.
비록 처음 프로그래밍을 입문할 땐 좌절로 시작했지만, 이를 극복하고 코딩의 재미를 찾아 스스로 공부하는 힘을 길러, 의미 있는 성과를 얻는 데까지 나아갈 수 있었기 때문이다.
더불어 1학기 때, 이미 학창 시절부터 여러 공모전 및 대외 활동을 통해 수많은 스펙과 실력을 쌓아둔 소위 '코딩 괴수'들을 여럿 보며 스스로 많이 초조했는데, 오히려 이것이 긍정적인 자극이 되어 미리미리 내 미래를 향한 준비를 시작할 수 있는 계기가 됐다.
프로그래밍이 적성에 잘 맞음을 깨닫고 재미를 붙이는 데까진 성공했지만, 아직 무언가를 직접 개발해 본 경험이 없었던 나로서 앞으로 어떤 분야의 개발자가 될 지 정하는 것은 또 하나의 큰 고민거리였다.
이러한 고민을 안은 채 나는 1학년을 마친 후 군대에 다녀왔고, 여전히 이에 대한 답을 찾지 못했다.
그러다가, 웹이든, 앱이든, 게임이든, 개발을 본인이 직접 해봐야 어떤 분야가 자신에게 가장 잘 맞는지 알 수 있다는 말을 듣고, 마침 전역하고 복학까지 시간이 꽤 남았기에, 새로 맞춘 전역컴으로 이런 저런 개발을 시도해보았다.
파이썬으로 기억력 게임을 클론 코딩하며 따라 만들어보는 것을 시작으로 안드로이드 스튜디오를 깔아서 모바일 앱 개발을 찍먹해보기도 했고 유니티로 게임 개발을 시도해보기도 했다.
이 때 우연한 계기로 '더 라비린스'라는 미궁 게임 플랫폼 사이트를 알게 되었는데, 이 곳에서 게임 제작자로 활동했던 것이 결국 내가 웹 프론트엔드 개발자가 되기로 한 결정적인 계기로 작용했다.
이 곳에서 게임을 만들 때 많은 코딩이 필요하진 않았다. 기초적인 HTML과 CSS 문법을 아는 정도면 충분했다.
사실 게임 내부에 쓰일 사진 및 그림 자료를 만드는 것이 더 주된 작업이라, 이걸 개발 경험으로 봐야 할 지도 잘 모르겠다.
그렇지만 이 활동을 통해 나는 플레이어와 직접 상호 작용을 하며 여러 문제점을 개선해보았고, 이를 바탕으로 다음 작품은 어떻게 구상할 지, 또 화면 내 요소를 어떻게 배치하는 것이 사용자 입장에서 플레이하기 편할 지 깊이 있게 고민해보는 경험을 할 수 있었다.
그리고 이러한 고민을 거듭해 만들어 공개한 창작물을 사람들이 재밌게 즐겨주는 걸 볼 때, 정말 큰 성취감과 뿌듯함을 느꼈다.
더불어 웹 게임을 만드는 과정에서 나는 내 작업의 결과물이 눈에 바로바로 보인다는 것에서 큰 흥미를 느꼈다.
그리고 내가 생각보다 디자인 감각이 좋다는 것을 사람들의 반응을 통해 알게 되었다.
이 때 처음으로 나는 내가 웹 프론트엔드 개발과 잘 어울리는 것이 아닐까하는 생각을 하게 되었다.
그리고 복학 후 웹 프로그래밍 수업을 들으면서 이러한 생각은 더욱 확실해졌다.
데이터나 서버 같은 벡엔드를 개발하는 것보단 눈에 보이는 프론트엔드 개발을 하는 것이 훨씬 더 재밌었고, 성적도 그 부분에서 더 잘 받았기 때문이다.
그래서 나는 프론트엔드 개발자가 되기로 결정했다.
이렇게 쭉 글을 쓰다보니, 내가 개발자가 되고 싶은 이유에 대한 답이 어느 정도 정리되었다.
이렇게 개발자가 되고자 하는 이유가 다시 분명해지니, 글을 처음 작성하기 시작했을 때 느꼈던 초조함은 거의 사라졌다. 오히려 다시 즐기는 마음으로 개발 공부를 이어나갈 수 있을 것 같다.
앞으로도 내가 개발자가 되고자 했던 이 마음가짐을 잊지 않으며 지금처럼 계속 꾸준히 노력을 하다 보면, 나도 언젠가 더 멋진 사람들과 함께 일할 수 있는, 성장하는 개발자가 될 수 있지 않을까 싶다.
마지막으로 이 글을 보는 모든 개발자 분들도 본인이 개발자가 되고자 했던 이유를 다시금 생각해보고, 이를 바탕으로 나보다 더 멋있고 훌륭한 개발자로 성장했으면 좋겠다. 🙂
잘 읽었습니다! 저는 사실 개발자가 되고 싶다는 확실한 동기가 없었던 것 같은데 다시 한번 생각해봐야겠어요. :)