본문 바로가기

Vol 2. 배우다

비전공생이 MIT 컴퓨터공학 수업을 듣는다면? - 울트라러닝 (2)

반응형

 

👇👇 이전글 읽기 👇👇

 

누구보다 빠르게 남들과는 다르게 학습하는 법

울트라러닝, 세계 0.1%가 지식을 얻는 비밀 경영학을 전공한 평범한 캐나다인이 MIT 컴퓨터공학 수업을 1년 만에 마스터한, 일명 MIT 프로젝트가 큰 화제다. 4년을 몰입해도 소화하기 힘든 내용을 1

jinstartup.com

울트라러닝을 적용하면 비전공생도 MIT 컴퓨터공학 수업을 들을 수 있을까?

 

울트라러닝의 9가지 단계

1. 메타학습 | 미리 지도를 그려보며 전략적인 학습 내용을 설계하는 단계
2. 집중하기 | 집중하여 학습하는 단계
3. 직접하기 | 직접 겪어보는 단계
4. 특화학습 | 부족한 점을 집중 공략하는 단계
5. 인출 | 스스로 시험을 보며 학습한 내용을 완벽하게 소화하는 단계
6. 피드백 | 결과물에 대한 피드백을 얻고 보완하는 단계
7. 유지 | 지속적으로 배운 내용을 상기시키고 장기적으로 저장하는 단계
8. 직관 | 주제에 대한 직관을 넓히는 단계
9. 실험 | 배운 내용을 바탕으로 실제적인 적용과 실험을 해보는 단계

 

오늘은 그중에서도 첫 번째 단계인 메타학습을 적용해볼 차례다. 메타학습 단계는 말 그대로 저 너머의 것을 상상하며 구체적인 전략을 그려보는 단계이다. 이 과정에서 정의되어야 하는 것은 크게 세 가지이다. 

 


1. Why : 나는 왜 배워야 하는가?

세상엔 배워야 할 것이 넘쳐나는데 반해 우리의 시간과 에너지는 한정적이다. 내가 정말 알아야 할 한 가지를 정하고 내 목표를 달성하는데 필수적인 기술인지 점검하는 과정이 필요하다. 남들을 따라 하는 것인지, 타인에게 등 떠밀리지는 않았는지 재고해보라는 뜻이다. 심지어 내가 이루고자 하는 일에 도움이 된다고 생각한 기술을 배우고 나니 막상 큰 연관성이 없었거나 굳이 배우지 않았어도 될 것이었다면 들이부은 시간은 되돌이킬 수도 없는 노릇이다. 고로 내가 배우고자 하는 일이 정말 목표 달성에 필수적인 것인지 곰곰이 생각해보아야 한다. 

내가 하려는 공부의 목적은 프로그래밍을 자유자재로 하는 것 보다도 컴퓨터공학과 관련된 기초 지식을 쌓고 앞으로 내가 집중해야 할 영역을 설정하는 것이다. 이 목표는 앞으로 수준 높은 기술 회사를 창업하고 현재 다니고 있는 IT 회사에서도 활용하기 위해 세운 목표이다. 


2. What : 무엇을 배울 것인가?

내가 학습하고자 하는 목적이 분명하다면, 구체적으로 공부할 내용들을 정리하는 과정이 필요하다. 책에서는 크게 아래 세 가지 내용을 정리해보라고 한다. 

1) 개념

개념이란 어떠한 기술이나 내용을 학습할 때, 단순 암기가 아닌 완벽하게 파악해야 하는 기초 원리들을 의미한다. 아직 배워보지 않은 내용에 대한 개념들을 미리 정리하는 게 쉽지 않다. 책에서 추천하는 방법은 해당 과목을 가르치는 대학교 수업의 커리큘럼을 살펴보고 꼭 알아야 하는 개념들을 정리해보는 것이었다. 

나 또한 MIT 컴퓨터공학 커리큘럼을 통해 컴퓨터공학에 필요한 기초 개념의 내용들이 무엇인지 파악할 수 있었으며 커리큘럼 중 필요한 부분을 옮겨 아래와 같이 정리했다. 한 과목 안에는 기본 개념을 응용할만한 과제와 시험들이 포함되어 있어 기초적인 지식과 함께 프로그램언어도 함께 배울 수 있게 구성되어 있다. 

  • Introduction to Computer Science and Programming
  • Fundamentals of Programming
  • Elements of Software Construction
  • Mathematics for Computer Science
  • Introduction to Algorithms
  • Design and Analysis of Algorithms
  • Computer Systems Engineering
  • Introduction to Low-level Programming in C and Assembly
  • Computation Structures

2) 사실정보

사실정보란 개념과는 반대로 외우면 그만인 것들을 의미한다. 올바른 상황에 끄집어낼 만한 암기 내용들의 예를 들어보면, import라는 함수가 있다. 프로그래밍을 할 때 필요한 라이브러리 등을 가져오는 대표적인 함수인데, 매번 구글링을 하는 것이 아닌 자연스레 암기되어서 나오는 함수이다. 이처럼 프로그래밍 학습에서의 사실정보란 Python, Java 등의 프로그래밍 언어들의 기본 syntax 등이 되겠다. 

물론 배우고자 하는 내용에 따라 개념과 사실정보의 비중이 상이할 것이다. 예를 들어, 프로그래밍은 문법이나 syntax는 구글링을 통해 해결되는 경우가 많다. 그에 반해 특정 고시나 시험을 치르기 위한 학습엔 사실정보의 비중이 훨씬 높다. 울트라러닝의 처자 또한 이 이유 때문에 개념과 사실정보를 구분하여 정리해 두는 것이 필요하다고 강조했다. 

3) 절차

절차란 개념이나 사실정보와는 별개로 연습이 필요한 부분을 의미한다. 예를 들어, 자전거를 타는데 개념과 사실정보가 중요한가? 그저 밖으로 나가 자전거를 많이 타보면 그만이다. 이처럼 개념이나 사실정보 이외에 실제로 활용하고 연습해야 하는 내용을 정리해보는 것은 매우 중요하다. 

내가 배우려는 컴퓨터공학에서 절차란 실제 문제를 해결하는 코드를 짜보는 것이다. 무수히 많은 문제를 접해보고 컴퓨터공학적인 사고를 적용해보는 것, 작은 사이드프로젝트를 진행해 보는 것을 절차에 포함시켰다. 

 


3. How : 어떻게 배울 것인가?

개념, 사실정보, 절차에 대한 정리가 끝났다면 본격적인 방법론을 생각할 차례다. 처음에는 개념, 사실정보, 절차를 꼼꼼하게 정리할 필요가 있나?라고 생각했었지만 '어떻게(How)'를 정하는 단계에서 그 이유가 충분히 이해되었다. 개념이 중요하다면 강의나 질의응답 등 적극적으로 이해도를 높이는 방법을 선택해야 하며, 사실정보가 중요하다면 SRS 같이 단순암기를 도와주는 프로그램을 사용해야 할 것이다. 절차가 중요하다면 물론, 많은 시간을 효율적으로 할애하여 실습하는 시간을 늘려야 할 것이다. 

그 외에도 구체적인 학습법을 결정하는 두 가지 방법이 있다. 첫 번째는 '벤치마킹'이다. 위에서 MIT의 커리큘럼을 참고하였듯이 이미 기술이나 지식을 가지고 있는 사람들이 활용했던 방법론과 자원을 백분 활용하는 것이다. 배우려는 분야가 비학과적이거나 전문적이라면 온라인에서 그 기술을 습득한 사람에게 조언을 구하거나 커뮤니티를 활용하는 것을 추천한다. 

두 번째 방법은 강조&제거이다. 번역이 와닿지는 않지만 강조&제거란 메타학습을 지속적으로 개선하고 수정해야한다는 의미다. 학습 전반의 과정은 실험과도 같아서 잘되는 부분은 강조하고 목표와 부합하지 않는 내용은 과감하게 삭제해야 한다. 우리는 틀에 박힌 공부를 하는 게 아니다. 내 목표를 위한 선택과 집중의 학습을 하는 것이다. 

 


 

오늘 글에서는 울트라러닝의 첫 번째 단계인 메타학습을 적용해보았다. 학습의 목표를 분명히 하고 선택과 집중을 하기 위한 조사 과정을 거쳐보았는데, 책의 저자는 MIT Challenge를 설계하는데 장작 6개월이 걸렸다고 한다. 울트라러닝의 핵심이 '전략'이라는 것을 한 번 더 실감했던 대목이었다. 나는 저자와 똑같은 프로젝트를 정했기 때문에 학습 전략을 세우는 시간을 절약할 수 있었다. 저자 또한 배움을 설계하는 데 총 소요 기간의 10% 이상을 할애하지 말라고 조언했다. 1년짜리 프로젝트를 준비한다면 준비 기간을 1개월 이상 잡지 말라는 뜻이기도 하지만 반대로 이야기하면 10% 정도는 '학습 전략'을 세우는 데 써야 한다는 말이기도 하다.

인생은 짧고 배움엔 끝이 없다. 이 글을 읽는 독자들도 각자 타파하고 싶은 영역을 정하고 메타학습을 시작해 보는 건 어떨까? 경제학자 타일러 코웬의 말처럼 평균의 시대는 끝났다. 소수의 최상위 성과자들이 나머지 대다수의 사람들보다 더 많은 일을 하는 시대에서 한 축을 감당하는 사람들이 되기를 기대하며 글을 마무리한다. 

반응형