학점 높은 학생을 믿지 말라.
컴퓨터 공학과 졸업년생이 대부분의 컴퓨터 과학 과목 (머신러닝, 알고리즘, 운영체제, 논리회로 등등)을 A를 꾸준히 받았는데 정말 코딩 한줄 못한다는게 말이 되는가?
머신러닝의 수학적 기초는 물론 텐서플로 같이 추상화 수준이 높은 도구도 못다루는데 머신러닝이 A다.
소켓 프로그래밍, 비동기 프로그래밍, 디자인 패턴 같은 평범한 개발자로서의 소양은 물론, GUI 프로그래밍 조차도 제대로 해본적이 없다 한다. 4학년이 되도록 GUI를 짜본적이 없다니...
졸업연구로 위와 같은 문제가 있는 같은 학년의 학생을 팀원으로 배정받았다. 그런데 내가 즉석해서 5분만에 작성하는 코드를 한달 동안 미루며 끙끙거리다가 스펙을 쌓기위해 NDC 봉사단이나 가는 모습에 폭발해버렸다.
데모를 준비했다고 하는데, 코딩 한줄 작성하지 않은 유니티 샘플 프로젝트 데모만 준비하지 않나, 사실은 데모를 완성해뒀는데 파일을 잃어버렸다는 속보이는 변명을 하지 않나.
코어 부분은 내가 모두 작성했으며, 논문을 위한 기초 연구도 내가 모두 작성했으며, 그저 만들어 놓은 코어를 응용하는 데모만 만들라고 부탁했는데 그것도 못한다.
GUI 프로그래밍이라도 할줄 안다면, Qt나 하다못해 학교에서 배웠을 구시대의 유물인 MFC 라도 사용해서 코어를 랩핑하도록 맡겼을 텐데, GUI도 작성할줄 몰라서 포기했다.
쏘아붙이니 소켓 프로그래밍이나 운영체제의 API를 단순히 호출하는 기초적인 코드조차도 4학년에 와서 처음 써본다고 한다. 버전관리에 대한 지식도 거의 없어서 본격적인 연구는 커녕 깃의 사용법 같은 '프로그래밍 기초'를 가르치는 것에 내 시간을 써야 했다.
난 충격을 받았다. 도.대.체. 이런 인간들이 어떻게 A를 받아 가는거지?
DLL에 있는 메서드 명단만 봐도 5분만에 파악하고 작성할 수 있는 코드를, 도큐먼트를 읽을 줄도 몰라서 하루종일 끙끙거리는 것이, 진정 이 시대 컴퓨터 공학과의 학점 4점대의 4학년이란 말인가.
컴퓨터 과학을 하기 때문에 코드를 잘 작성하지 못한다는 것은 엔지니어와 과학자 모두에게 모욕적인 변명이다.
과학에서 실험과 이론은 서로 그 성향이 반대지만, 동전의 양면과 같이 따로 때어내서 분리할 수 없는 것이다.
코드의 실천과 컴퓨터 과학의 이론 또한 마찬가지다. 사실 교수들이 무엇을 가르치는지 스스로 제대로 파악하고, 학생 또한 실제로 적용될 수 있는 사실을 공부하기 위해 애썼다면 이런 일은 없을 것이다.
그저 교수는 실천될 수 없는 낡은 지식만을 가르치고, 학생은 그것을 달달 외우기만 한 것이다.
내가 이 기능은, 이 코드는 5분만에 작성할 수 있는 것이며, 실제로 그렇게 작성한 것을 보여주자 "너는 잘하잖아..." 라는 답을 들었다.
아니다. 그것은 내가 집중할 대상을 알기 때문이다.
나는 그 학생과 같은 수업들을 들어왔고, 그 학생과 그 교수들보다 더욱 더 잘 이해함에도 불구하고 대부분의 수업을 D 혹은 F를 받아왔다. 수업이 엉망이라고 느껴지면 간혹 시험을 아예 거부하기도 했다.
왜냐면 사람의 시간은 한정되어 있기 때문에, 나는 실천 가능한 지식을 원하기 때문이다. 실천될 수 없는 공허한 지식을 '소유'하는 것 보다, 눈앞의 코드에 집중하고 실천함으로서 '존재'하는 지식을 만드는 것이 중요하다.
그 학생과 나, 둘다 똑같은 시간을 부여받았다. 사실 내가 예술 디자인 대학에서 컴퓨터 공학으로 전과한것을 생각하면 내가 부여 받은 시간이 더 짧았다.
다만 취업이니 스펙이니 하는 것들을 위해 주어진것을 달달 외우느냐, 아니면 스스로 하고 싶은걸 하기 위해 불필요하고 가식적인 것들을 거부하고, 코드로 실천하냐의 차이였을 뿐이다.
아무튼, 정말로 학점은 최소한의 보증표도 못된다는 사실을 또다시 증명하게 되었다.
오히려 기업들은 학점이 낮은 학생을 믿어야 한다. 최소한 그들은 자신의 존재 이유를 찾으려 했으며, 실천될 수 없는 이론보다 눈앞의 코드에 집중할줄 아는 사람들이다.
P.S. 대학교를 4년 다니는 동안 제대로 할수 있게 된것이 아무것도 없다는 사실은 그려려니 한다. 실제로 아무것도 배울게 없으니까. 하지만 도전하지 않고 아무것도 할줄 모르는 학생일수록 A학점을 더 잘 챙겨간다는 사실 만큼은 놀라지 않을 수 없었다.
+ 학점이 낮은게 소프트웨어를 잘하는 것을 보장하지는 않는다는 비판 의견을 수용합니다.
그 동안 느낀건, 확실이 학점과 소프트웨어 실력이 상관이 전혀 없었습니다. 정말 상관이 없어서, 학점이 높아도 소프트웨어를 잘할 확률이 전혀 높지 않았습니다.
소프트웨어는 물론 컴퓨터 과학에 대한 능력도, 학점과 상관없이, 그저 그 사람이 해커 문화에 얼마나 동화되어 있냐가 중요했습니다. 물론 해커 문화에 익숙하다면 학점은 별로 신경쓰지 않게 되죠.