중급 개발자가 되기 위해
요즘은 AI가 대세인 세상이다. 나도 1년간 꽤나 AI를 공부하긴 했었다. 정확히는 자연어처리 부분이었다. 다소 번갯불에 콩 구워 먹듯 배운 점이 아쉬운 점은 있지만 어쨌든 그랬다. 공부를 하면서 깨달은 것은 AI 방법론의 어떤 결과를 위해서 무작정 할 수는 있지만 프로그램이나 수학과 관련된 내용이 필수라는 것이다. 그래서 그런 일환으로 중급 개발자가 되기 위한 공부를 시작했다.
개발 경력을 단순히 연차로 이야기하자면 벌써 6년이긴 하다. 하지만 냉정히 봤을 때 내 수준은 그리 높지 않다. 아마 컴공 2학년 수준 언저리 즈음에 있을 것이다. 그렇게 사파적인 코딩을 어떻게든 하면서 항상 개념이나 지식이 부족하다는 생각이 들었다. 하나의 언어를 안다고 말하기도 애매했고, 그 언어에서 어떤 기능을 쓰기 위해 어떤 개념을 기준으로 검색을 해야 할지도 막막했다. 그래서 AI 시대에 오히려 컴퓨터 기초를 좀 더 깊이 공부하기로 마음먹었다.
그중 내가 중급 개발자가 되기 위해 필요한 것은 컴퓨터 전반에 대한 지식을 아는 것이라고 생각했다. 그중에서도 코딩과 관련된 패러다임을 아는 것이 중요하다는 생각이 들었다. 궁하면 통한다고 다행히 해당하는 수업이 있었고, 현재 듣는 중이다. 이런 패러다임을 공부하다 보니 기존 코드를 개선할 방법들을 찾게 되어 다소 뿌듯하기도 했다. 이런 연습들을 통해 지식을 갖추는 일은 확실히 중요한 일이었다.
내가 계속해서 이런 자료들을 찾고 기초를 공부하려는 것은 컴공 수준의 지식을 익히기 위해서다. 나는 여러 강연 중 다소 거슬려하는 부분들이 있다. 가령 어떤 개발 프로젝트를 논하며 "이걸 만드신 분들이 xx전공이기 때문에 그런 점이 있다"라는 표현 등등이다. 또한 몇몇 사람들도 우리는 XX 분야에서 일하니 그 정도 까진 알 필요 없다는 등등의 이야기 들이다. 어디까진 맞고 어디까진 틀리다고 생각한다. 나 자신의 이야기로 돌아보면, 내가 건축과를 나왔다는 것 때문에 컴퓨터 공부를 하지 않았다면 지금과 같은 일을 할 수 없었을 것이다. 그리고 건축에는 안도라는 훌륭한 예제가 있다. 복싱을 하다가 건축을 하게 된. 나는 그런 사람들처럼 내가 과거에 했던 것에 얽매이기보다는 앞으로 나아가고 열심히가 아닌 잘하기 위한 방법들을 위해 그런 경계에서 벗어나기 위해 노력했다.
슈카에서 보기로는 우리나라 노동 경직성이 꽤나 높다고 한다. 그 말인 즉 한 분야에서 일하던 사람이 다른 곳으로 가는 것이 매우 힘들다는 얘기였다. 앞으로의 시대는 이런 경계를 넘어서는 인재를 필요로 한다고 생각한다. 그렇기 때문에 나는 "건축과인데 코딩을 할 줄 안다" 정도 수준이 아니라 "건축과지만 프로그래머에 가까운 코딩을 하는 수준"을 항상 꿈꾸고 있다.
나는 맨땅에 헤딩하는 일이 잦다 보니 여러 자료도 그냥 찾아보곤 한다. 내가 생각하기에 따라야 하는 코스는 아래 링크에 잘 정리되어 있었다. 그리고 네이버 부스트코스의 강의도 꽤나 수준 높았고 유명한 영어 강의를 번역해서 제공하고 있어서 좋은 자료였다. 누군가 이런 자료들을 필요로 할 것 같아 링크를 남기게 되었다. 그리고 꽤나 시간이 지나서는 해외 CS(Computer Science) 석사를 해보려 하는데 UIUC라는 곳이라 Georgia Tech가 가장 유명하다고 한다. 나중에 공부해서 따야지