컴퓨터 공학부에서 배우는 것에 대한 고찰

SI를 몇 년 여간 하다 와서 그런가, 아니 그게 꼭 그렇지 않더라도 나는 게임업계, 웹 SI업계, 중소기업, 대기업, 공공기관, 금융 업계 에서 5년간 지내다 보니 개인적으로는 정말 다양한 경험을 하고 왔다고 생각한다.

5년 전 아무것도 모르는 대학 신입생 시절, 그저 컴퓨터가 좋다고 무턱대고 컴퓨터 공학부를 선택한 나이지만 사실상 대학에서 배우는 과목은 C와 C++ 이외에 이해가 가지 않았다. 왜냐하면, 대학을 마칠 때까지 내가 습득할 수 있는 언어의 종류는 사실 그렇게 많지 않았기 때문이다.

게다가 수학과 물리, 그때까지도 나는 수학과 물리에 큰 흥미를 갖지 못했던지라 대학에서 배우는 “선형대수학”이니, 나중에 배우는 미적분학, 공업수학, 수치해석, 이산수학 등의 과목은 이산수학을 제외하곤 전혀 흥미를 갖지 못했다.

컴퓨터 구조는 왜 배우는 것이며, 어셈블리니, OOP, 소프트웨어 공학 등 이론 과목들은 정말로 많지만 내 관심을 끄는 과목은 1학년 당시에는 정말 거의 없었다. 아래 우리 학부에서 추진한다는 공학인증(공대생을 대상으로 공학 교육을 이수했다는 것을 인정하는 제도) 를 2009년에 바라본 나의 생각은 이랬었다. 

2008/03/09 – [IZECT PERSONAL LAB/아이지의 생각과 고찰] – 중앙대학교 컴퓨터공학부

2009/05/18 – [IZECT PERSONAL LAB/아이지의 생각과 고찰] – 컴퓨터 공학부가 비전이 있는가?

그때까지는 내가 무슨 대단한 프로그래머인 양, 이런 이론과목들을 정말 얕게 보고 있었다. 실무에서는 쓰이지도 않는 것들을 왜 나는 배우고 있을까? 당장 눈에 보이는 개발은 언제쯤 하게 될 것인가? 이런 질문들만 머릿속에 맴돌았다.

그때를 크게 후회하지는 않지만, 정말 실무에서 5년간 경험하고 나서 학교 교과과정을 돌이켜 보니 정말 왜 저것을 배우는지 알겠더라. 수학이 왜 필요하며, 컴퓨터 과목 중에 굳이 이론만 빼와서 그것들에 대해서 이해와 암기를 해야 하는 이유를 말이다. 

하지만 저런 교육의 한계는 학생들의 흥미에 있지 않나 싶다. 그리고 내가 대학을 입학할 때만 해도 어떻게 배워서 졸업하고 사회에 나가서는 어떤 실력을 갖춰야 하는지에 대해서 사실 잘 몰랐다. 지금도 졸업한 내 친구들이나 선,후배를 보면 이론은 충분한데 이를 활용할 코딩을 잘 못하는 경우가 허다하다.

결국 저런 교육을 받은 사람은 사회에 나가서는 가장 적합한 곳이 바로 대기업이다. 수 많은 연구과제와 부서가 존재하는 대기업, 그곳에서 나는 어떤 부서에 배치될 지 모르기 때문에 그곳에서 또한 부족한 코딩 부분이나 다른 부분을 보충하고, 어떤 부분에서 재능을 보이는지에 대해 평가받은 다음 적정한 부서로 배치받는 것이다.

좀 웃겼던 것은 모 수업 첫 시간에 교수님의 말씀이다. “우리 과에는 너무 많은 사람들이 주로 대기업 취직만 바라고 있다. 하지만 나는 공모전이나 사업을 하는 것도 추천한다. 그리고 그런 학생들은 B줄꺼 B+주겠다.” 라고 말이다. 

다른 교수님에 비해서는 상당히 열린 생각이긴 한데, 이해와 암기 및 과제까지 시달리는 학생들에게 그것은 좀 크나큰 기대가 아닐까 싶었다. 나 또한 학과 수업을 따라오고 과제를 하기 위해서는 큰 시간 할애가 필요한데 거기다 프리랜서 활동과 다른 활동들 까지 합치면 정말로 교외 활동을 하기 역부족인 것 같다.

결국 가장 중요한 것은 대기업을 가야 편하게 살 수 있다는 사회적 인식이라 생각한다. 사실 대학도 어찌 보면 우리 사회의 인식 때문에 진학하는 경우가 많다. 개개인의 능력 보다는 기초 과목으로 평가받고 들어가는 대학부터, 초,중,고. 물론 예전보다야 다양한 학교들이 많이 있다고 하지만 아직도 우리의 사회적 시선은 어둡기만 하다.

허나 나는 이러한 인식의 문제보다는 개개인의 인식에도 문제가 있다고 생각한다. 내가 신입생이던 당시, 조금 더 명확하게 내 미래를 생각했다면 이론과목에 대한 부정적인 인식은 분명 적었을 것이다. 예를 들어 int의 크기가 어떻게 컴파일러마다 다르고, 왜 컴파일러마다 다르고, OS에서, 하드웨어에서 어떻게 다른지를 안다면 디버깅에서 고생이 적을 것이다.

어차피 컴퓨터란 것도 하나의 큰 복합적 이론체이다. 우리가 사용하는 인터넷 또한 마찬가지이고. 컴퓨터와 관계된 다양한 이론들, 그것들을 배우는 이유는 다른 개발자들과의 차별성을 가지기 위해서다. 좁게는 디버깅 시에 남들보다 더 멀리 볼 수 있는 것부터 넓게는 미래지향적인 기술을 만들기 위해서 말이다.

예측할 수 없는 세상이다. 이러한 세상일수록 내가 가지고 있는 이론적 지식이 큰 무기가 된다. 대학이란 그런 곳이 아닐까? 이런 세상에서 내가 배울 수 있는 최대한의 다양한 경험을 가질 수 있는 이론 습득의 공간 말이다. 그리고 그럴수록 우리는 한 걸음 나아갈 때마다 우리의 미래를 보다 더 구체화 하고 이에 따라 공부할 수 있도록 노력해야 할 것이다.