컴퓨터학, 뭘 배우면 돼요?

컴퓨터학은 응용 학문이다. 즉 범위가 굉장히 넓다. 따라서 한 가지 전공으로만 생각할 것이 아니다. 우리가 배우는 게 순수과학이 아니라는 걸 빨리 깨닫고 본인이 배우고 싶은 영역이 무엇인지를 명확히 해야한다.

물리학이며 화학이며 천문학이며, 순수과학은 각자의 분야를 탐구하는데 목적을 둔다. 반면 원자력발전이 양자역학을 가져다 쓰는 것처럼 컴퓨터도 응용을 위해 순수학문의 힘을 빌린다. 컴퓨터학 안에는 수학도 들어있고 물리학도 들어있고 심지어 산업공학에 인지과학까지도 들어있다.

그러니 컴퓨터학을 전공할 때 뭘 배워야하는지 궁금해하는 건 의미없는 일이다. 그전에 내가 하고 싶은 응용 분야가 무엇인지를 찾는 게 먼저다.

초기 전산학을 따라간다면 수학을 해야할 것이고, DB를 만들 것이라면 온갖 자료구조와 알고리즘을 익혀야 할 수도 있다. 음대의 악기 전공처럼 극한의 스킬을 계속 연마하는 실기 위주의 코딩 전공자도 얼마든지 있다. 정작 중요한 것은 최종에 어디에서 무슨 일을 하고 싶은가이다. 어떤 전문가라도 그걸 먼저 알아야 무얼 배우라고 답해줄 수 있다.

그럼 학부생들은 이렇게 되묻는다. “컴퓨터학과를 나와서 할 수 있는 것들이 무엇인지 모르는데 어떻게 그것부터 정해요?”. 맞는 말이다. 하지만 진학 결정은 분명 스스로 했을 것 아닌가. 추상적이나마 입학할 때 그렸던 그림은 있을 것이다.

대부분의 졸업생은 우리가 익히 아는 회사들에 가고 싶어한다. 이거야말로 교수님들이 만들어둔 커리큘럼을 잘 따라가면 그만인 법이라, 모범생이 되면 해결되는 문제다. 어차피 대학이 만들어둔 기본 노선이라는 게 그거니까.

그런데 진정한 자기 적성을 찾고 싶다면 얘기가 좀 다르다. 이 때는 고전적인 방법이 아주 잘 통한다. 호기심이 생기는 분야의 발전 역사를 처음부터 쭉 훑는 것이다. 이건 두 가지의 좋은 점이 있다. 우선 한 분야의 전체를 꿰뚫으면 본 길로 가든 곁길로 새든 항시 안전하다. 목적지를 바꿔도 길을 잃지 않는 거다. 그리고 그 길 위에는 항시 내가 공부해야할 연계 과목들이 서로간에 끈끈하게 이어져있다.

예를 들어 게임에 관심이 있다 치자. 2차원 아케이드에서부터 대전형 격투의 충돌검사, FPS의 물리엔진과 MMOPRG의 네트워크 기술까지. 기술 발전 역사가 곧 업계에 쌓인 지식이다. 그래픽 카드가 해석학과 기하학을 위한 기계라는 걸 깨닫고나면 수학도 업계 지식이라는 걸 알게 된다.

반면에 인공지능을 찾아봤다면 게임 때와는 내용이 완전히 다르다. 같은 학과끼리 지식이 더 가깝고 다른 학과라고 해서 더 멀지 않다는 걸 알게 될 것이다. 통계학, 인지과학, 그리고 수학이 차례로 손을 빌려주었으므로 그렇게 논문이 쌓인 시간의 순서대로 공부하면 아주 딱 알맞다. 그런데 이걸 학과 선배에게 물어본다면 “아 인공지능? 파이썬부터 공부해야지!”. 땡 탈락.

지질학에서 지층이 쌓인 순서대로 연대를 추정하는 것처럼, 내가 궁금한 분야도 논문이 쌓인 순서, 지식이 발전한 순서 그대로를 훑어보면 그게 바로 답이다. 조금만 노력하면 주상절리를 보듯이 너무도 적나라하게 쌓인 知層이 보일 것이다. 배울 것이 한 없이 많아 못 할 뿐이지 먼저 해야할 것을 찾지 못해 문제가 생기는 일은 절대 없다.

교재 맨 뒤에 아무도 보지 않는 그늘진 참조 목록을 열어서 대표 논문들을 연도 순으로 파악해두면 참 좋다. 굳이 찾아서 읽지 않더라도 세계사 시험 공부 벼락치기인 양, 제목의 흐름만 순서대로 알아둬도 큰 도움이 된다. 사실 신입생일수록 오히려 더 학술 논문에 참조가 달리는 표기법을 알아두면 굉장히 파워풀한 무기가 된다. 내가 배우고자하는 분야에서 일어난 역사적 사건 몇가지만 파악하고 있다면, 사실 전공 시험 따위 싹 다 망쳐도 졸업할 때는 목적지에 먼저 도착해 있으리라 장담한다.

그런데 논외로, 어쩌다 요즘 한창 유행인 LLM 같은 것을 훑었다면 연대기가 너무 길어서 경유지에 대학원이 있다는 사실을 발견하는 대혼돈을 맞이할 수도 있다. 난 배움의 효율적인 순서를 알려줬을 뿐 선택의 책임은 본인이 져라.