졸업

졸업을 했다. 졸업장에는 두 개의 학위가 적혀있다.

2012년 여름부터 본격적으로 개발을 공부하기 시작했지만, CS를 복수전공으로 듣기 시작한 건 2015년 첫번째 학기부터다. 이 시간의 격차는 내 이야기를 듣는 사람들이 다들 흥미를 가지는 부분이다.

사실 처음에는 CS를 전공하지 않아도 괜찮을 거라 생각했다. 인터넷과 책만으로도 혼자서 두 개의 아이폰 앱을 출시까지 해봤고, 또 이 바닥은 타 분야에 비해서 학력이나 학위를 덜 중요하게 여긴다는 것을 어디선가 들었기 때문이었다.

그리고 이 생각은 곧 바뀌었다. CS 전공은 적어도 나에겐 반드시 필요한 것들을 충족 시킬 수 있는 방법이었다.

  • 자료구조와 알고리즘처럼 코드를 짤 때 필요한 배경지식을 얻고 싶었다. 방법을 모르니 개발 효율이 떨어지고, 내가 무엇을 모르는지 몰라서 효율적인 방법을 어떻게 찾을 수 있는지도 모르는게 문제였다. 아는 개발자가 없으니 계속 혼자 삽질해야 했다.
  • 소프트웨어의 동작 원리에 대한 궁금증을 풀고 싶었다. 하드웨어는 분명 현실에 존재하는데, 코드가 실제로 하드웨어를 어떻게 제어하는지 궁금했다. 현실과 디지털 세상이 어떻게 연결되고 있는지 알고 싶었다.
  • 이건 현실적인 문제인데, 상당수의 소프트웨어 엔지니어 채용공고에서 학위를 필요로 한다. 특히 외국의 경우는 그 비율이 더 높은 것 같았다. 일부러 기회를 좁힐 이유는 없었다.

복학과 함께 복수전공을 신청하기로 했지만, 그 과정도 모험이었다.

내가 복학하는 학기부터 수강신청 시스템이 바뀌어서 복수전공 신청보다 수강신청을 먼저하게 되었다. 결국 CS 과목으로 수강신청을 먼저 하고, 그 다음주에 복수전공을 신청했다. 우리학교에서 복수전공은 직전학기까지의 평점으로 신청자의 순위를 매겨 T.O로 잘라서 당락을 결정한다. 내 평점은 그리 나쁘진 않았지만 당락을 걱정할 수준이었다. 다행히도 그 학기 CS 복수전공 신청은 미달났고 (아마도…), 내 계획은 성공했다.

복수전공을 늦게 시작해서 졸업 이수까지의 학점이 빠듯했다. 계산해보니 졸업할 때까지 모든 학기를 꽉꽉 채워 들어야 딱 맞게 졸업 학점을 맞출 수 있었다. 학점이 아까워서 쉬운 과목은 듣지 않고, 궁금해 했던 과목이나 재미있어보이는 과목 위주로 수강했다. 선수강을 권장하는 과목을 순서대로 듣는 것은 사치였다. 컴퓨터 구조론을 먼저 듣고 논리 회로는 그 다음 학기에 듣거나 알고리즘과 자료구조를 동시에 듣는 식이었다. 5월의 황금연휴동안 16비트 컴퓨터의 회로도를 전지에 직접 손으로 그리는 과제도 신선했다.

그냥… 뭔가 뿌듯해서 끄적여봤다.