컴퓨터과학 대학원 생활을 준비하며: 학습 목표 & 실천 계획

2019. 7. 18. 19:49Tech & Science/CS

Context:

학부 시절 나는 누가봐도 공부에는 관심없고 돈 쓰는데 일가견 있는 양아치의 표본이었다. 어찌어찌 3학년까지 다녔으나 그 이후에 졸업 논문/Capstone Project라는 관문에 부딪혀서 고생하다가 겨우 졸업은 했지만, 학부에서 충분히 배우지 못한 컴퓨터 과학에 대한 아쉬움이 컸다. 그래서 한국에 돌아와 마음에도 없는 외국계 회사를 다니면서 대충 일을 하며 남는 시간에 대학원 입학 준비를 해서 safety라고 생각한 곳에 지원했으나 결과는 처참하게 대실패. 그 이후, 내 수준에 맞는 프로그램을 선택하여 새로 지원서를 넣었다. 리얼리티 체크 덕분이었는지 두번째는 금세 합격했다는 통지가 날라왔다. 그러나 직접 돈을 마련한다고 생각하니 한푼이라도 아까워졌고, 학교측에 대뜸 '외국 유학생을 위한 장학금이 있는지' 문의했다. 운이 좋게도, 입학 성적을 바탕으로 장학금을 수여한다고 해서 재빠르게 신청하고 받을 수 있었다. 잘 찾아보니 학년을 괜찮은 성적(GPA 3.75)으로 마무리하면 추가적으로 학업 장려금을 받을 수 있다고 해서 '이왕 다시 학교로 돌아가는 김에 받을 수 있는 것은 최대한 다 챙기자!' 라는 뜻을 갖고 성공적으로 석사 과정을 완료하기 위해서 정말 오랜만에 예습과 계획이라는 것을 하게 되었다. 


Goal:

이러한 상황에서 덜컥 입학을 했으니 앞으로 어떻게해야 살아남을 수 있을까? 일단 버티는 것도 중요하지만 이루고 싶은 것을 구체화해보자면,

 

1. 졸업 필수 전과목 A

2. 흥미와 적성에 잘맞는 랩 찾아서 Thesis 쓰기*

3. 관심 분야의 논문을 함께 읽는 student club

 

단기 목표인 <석사 과정을 잘 마치고 Top Tier CS Ph.D.에 입학>에 가장 관련있는 항목을 중요도로 순위를 매기면 1>=2>3이 되겠고, 마찬가지로 그에 따르는 노력+시간의 양도 1>=2>3으로, 단순하게 1하고 남는 시간에 2하고 그리고 체력이 있을 때 3을 하면 될 것 같다. 

 

*First Author가 아니더라도, Impact Score 낮더라도 무조건 논문 출판 경험 + 추천서

Scope:

어디서 시작할지 막막해져 일단 어드바이저에게 메일로 도움을 요청했다. 아직 만난 적도 없는 교수님은 장문의 메일을 보내주시며 아래 토픽들을 한번 훑어보면 수업을 듣는게 수월할 것이라고 말씀하셨다.

 

-Theory of Computation

-Data Structures

-Analysis of Algorithms

-Operating Systems

-Computer Architecture

-Translators

-Programming Languages

 

그러나 현실적으로 말해서 입학을 한달 남겨둔 이 시점에 위에 모든 토픽을 커버하기란 불가능이다. 그래서 교수님이 친절하게 안내해주신 것은 매우 고마운 일이나, 앞으로 듣게 될 수업 스케쥴에 맞춰서 예습을 하기로 결심했다. 앞으로 듣게 될 첫 일년동안 졸업 필수 과목은 아래와 같다. (선택 과목은 리스트에서 제외)

 

Term 1 - Fall 2019

Data Structures [4]

Theory of Computation [3]

 

Term 2 - Winter 2019

Operating Systems I [3]

Algorithms and Data Structures [4]

 

Term 3 - Spring 2020

Operating Systems II [4]

Computer Architecture [4]

Programming Language Fundamentals [4]

 

컴퓨터 과학은 최적의 알고리즘을 짜고 운영 체계를 효과적으로 돌리는데 있어서 "Abstract Thinking" 이 굉장히 중요하기 때문에, 직관적으로 생각하는 것이 편한 나는 익숙하지 않은 두뇌의 부분을 사용해야 된다는 게 클래스 스케쥴만 봐도 감이 온다. 따라서, 새로운 분야를 배울 때 가장 효과적인 방법 중 하나인 '벤치마킹'을 사용해서 나보다 잘하는 고수들이 한 일을 참고하고 내 것으로 만들어 새로운 버전으로 재해석할 수 있도록 해야겠다. 


Action Plan: 

Problem 1. 과거의 실패를 돌이켜볼때 가장 큰 원인은 '게으름'과 '두려움'이 아닐까 싶다. 정말 좋은 리소스가 주변에 널려있었지만 나는 스스로의 부족함과 무지를 인정하기 힘들어했고, 앞에서는 괜찮은 척하는 '쿨병'에 단단히 걸려 방으로 돌아와 혼자가 되면 한없이 초라해지고 불안해지는 증상을 겪었다. 

 

Solution 1. 따라서, 문제를 극복하기 위해서 나는 내가 모르는 것에 대해 이 블로그에 진실되게 기록할 것이고, 최대한 스스로 해결책을 찾아본 후에, 그래도 왕도가 보이지 않으면 이 기록을 바탕으로 나보다 해당분야에 대해 더 잘 아는 전문가 (TA나 교수님, 아니면 classmate나 peer tutor)에게 찾아가 질문을 할 예정이다. 

 

Problem 2. 이 외에도 내 학부생활의 큰 문제가 있었는데, 당시에 나는 무엇인가에 제대로 전념할 수 없는 상태이었다. 술과 소비 그리고 의미없는 소셜 라이프로 낭비된 시간과 에너지는 점점 고갈되었고 결코 새로운 것을 배우는데 100% 집중할 수 없었다. 돌이켜보면 겨우 수학과를 졸업할 수 있는 것도 고등학교때 올림피아드를 치고 대학에서 배울 내용을 이미 공부해놨었기에 미리 해놓은 것으로 가까스로 학위를 딸 수 있었던 것이다. 

 

Solution 2. 그러나 컴퓨터 과학은 미지의 세계이고 나는 아무것도 제대로 아는게 없는 애송이기 때문에, 새로운 것을 배우는데 온전히 정신을 집중해야 한다. 기본적인 배움의 자세를 갖추기 위해, 

 

- 전체 출석 & 배운 내용 그날 바로 복습 

- 매주 한번 Office Hour 가기 

- 잘 맞는 교수님을 찾아 미리 추천서 운을 띄울 것. 

 

이렇게 세가지를 지킬 것이다. 사실 공부야 하면 되는 것이고, 마음을 잡는게 나에게는 가장 큰 관문이기에 인센티브*도 설정하고, 부디 잘 지킬 수 있길 바란다. 

 

*Incentive: 위와 같이 계획을 지키고 무사히 장학금을 받고 + 석사 학위를 따고 + 원하는 랩에 들어가게 된 경우, 스스로를 위한 보상으로 매달 넣고 있는 적금을 깨서 2021년에 아프리카로 사파리 여행을 갈 것이다. 그래서 내가 좋아하는 동물을 (초원을 뛰노는 사자, 아프리카 영양, 코뿔소, 얼룩말, 코끼리, 기린)등을 가까이서 보고 인생의 새로운 챕터로 나아가고 싶다.