넘어야 할 산(ft. 컴퓨터과학)

최근 이런 저런 경험을 하며 컴퓨터과학 전공지식 부족에 대한 한계를 느꼈다. 그동안은 사내 업무를 하면서 모르는 부분이 생길 때마다 그 기술에 대해 알아가는 식으로 공부를 하였는데, 이대로는 많이 부족함을 느꼈다. 마치 어떤 돌계단은 탄탄한데 어떤 돌계단은 물에 빠지는 그런 느낌이었다. 장기적으로 생각하고 보통의 컴퓨터과학과 커리큘럼을 따라가보기로 하였다. 실제로 Scott Young이라는 분은 MIT 컴퓨터과학 4년 학부 과정을 12개월동안 온라인으로 공부하는 MIT Challange라는 프로그램을 진행하였다. 그리고 이 사례는 TED에 소개되기도 하였다.

요즘은 무료/저렴한 가격에 오픈된 매우 질 좋은 강의들이 정말 많다. 특히 고퀄리티의 유명 대학 강의도 쉽게 온라인으로 청강할 수 있다. 대표적으로는 Coursera, edX, Udemy 등이 있다. 그리고 누군가가 나와 같은 고민을 바탕으로 온라인으로 들을 수 있는 컴퓨터과학 커리큘럼을 만든 Open Source Society University, Teach Yourelf CS와 같은 사이트가 있다. 자기주도 학습능력만 있다면 충분히 전공/비전공의 간극을 줄일 수 있음은 물론, 더 나은 개발자가 되기위한 밑거름을 쌓을 수 있다.

나는 OSSU(Open Source Society University)를 참고하여 커리큘럼을 따라가기로 결정하였다. OSSU에서는 크게 아래와 같은 커리큘럼으로 구성되어있다.

나는 위의 커리큘럼 중 컴공 3년 과정에 해당하는 Core CS 부터 따라가 보고자 한다. 정말 대학 커리큘럼을 기반으로 구성되어있기 때문에 그 양이 방대하다. 절대 단시간에 끝낼 수는 없다. 가이드에 따르면 약 18-22시간/주(=3시간/일)을 투자하면 CoreCS를 2년 내로 끝낼 수 있다고 한다(It is possible to finish Core CS within about 2 years if you plan carefully and devote roughly 18-22 hours/week to your studies.).

당장 스케쥴을 짜기에는 불확실성이 커서, 추후에 여유가 되면 CoreCS를 기반으로 계획을 세워볼 예정이다. 일단 최근에는 출퇴근시간을 이용해서 CS50부터 듣고있다. 유명한 하버드대학 컴퓨터공학 교양과목인데, 이 명강의를 지금 2019년 2학기에 진행되는 따끈 따끈한 버전으로 나도 청강할 수 있다는 것은 정말 정말 감사한 일이다. CS50사이트에서 수강생과 동일한 course material을 볼 수도 있고 심지어 실습환경도 접속해서 사용할 수 있다. CS50처럼 다른 명강의들도 청강 가능한 것이 아주 많다. 잘 찾아서 차근차근 수강할 계획이다.

— 프로그래밍이라는 분야는 유독 전공자와 비전공자에 대한 구분이 선명하게 있다. 직업/산업의 특수성이다. 나는 산업공학을 전공했는데, 내 친구들을 보면 전공에서 배운 개념들을 녹여서 일을 하고 있는 친구는 거의 없다. 하지만 프로그래밍은 OS, 네트워크, 데이터베이스, 보안 등 컴퓨터과학과에서 기본적으로 배우는 개념들을 실제로 개발할 때 사용하게 된다. 그리고 그 개념들은 좋은 프로그램을 만드는데에 굉장히 중요한 거름이 된다. 비전공자로 시작한다는 것은 당연 플러스가 되기는 어렵다. 그렇지만 넘어야할 산이지 넘지 못할 산은 아니라고 생각한다. 오늘도 내일도 나는 산을 넘는 사람이 될 것이다.

image 2018년 목숨을 건 천왕봉 등반