인출을 이용한 효과적인 프로그래밍 학습

CCKN·2020년 12월 4일
3

학습에 대한 학습

목록 보기
1/1
post-thumbnail

본 포스트는 스콧 영의 <울트라러닝>을 읽고 정리 및 재구성한 글입니다
저자가 의도한 바와 다소 다를 수 있습니다.

개요

<울트라러닝>의 저자는 울트라러너들의 학습법 중 하나로 "인출"을 제시합니다.
그럼 왜 인출이 학습에 있어서 강력한 효과를 보이고 어떻게 프로그래밍 학습에 적용할 수 있는지 알아보겠습니다.

A 씨의 사례

A 씨는 프로그래밍 강의를 즐겨 봅니다.
.
어느 날 A 씨는 리액트를 이용한 웹사이트 만들기 강의를 들으면서 강사가 만드는 웹사이트를 똑같이 만들었습니다.
웹사이트가 동작하는 것을 보고 "나도 이제 리액트 마스터"라는 생각을 가졌습니다.
.
어느 날 A 씨에게 '리액트를 이용한 간단한 웹사이트' 제작 과제가 주어졌습니다.
자신만만하게 에디터를 켜고 작업을 시작했지만 금세 자신감이 사그라들고 맙니다.
.
남몰래 강의를 다시 켜고 강사의 소스 코드를 다시 살펴봅니다.
마스터했던 것 같은 강의 내용은 처음 보는 것처럼 새롭기만 합니다.
A 씨는 계속해서 벽에 부딪히고 맙니다
.
왜 이런 일이 일어난 걸까요?

인출이란?

책을 다시 읽는 것보다 잠시 기다리면서 기억하려고 노력하는 편이 낫다.

인출은 쉽게 말해서 "기억에 의존하여 학습 내용이나 개념을 끌어내는 행위"입니다.
한때 유행한 백지 복습법과도 일맥상통하는 부분이 있습니다.

학습법 실험

퍼듀대학의 심리학자 제프리 카피크(Jeffrey Karpicke) 교수는 한 가지 실험을 합니다.

실험 참가자들에게 특정한 주제를 학습시키고 약 1주일 후 시험을 준비하도록 했습니다.
준비 방법은 아래 3가지로 나눴습니다.

  • 책을 보고 복습
  • 자유 회상
  • 개념도 그리기

같은 시간 공부를 한 학생들에게 자신의 기대 점수에 대해 예측해보라고 했을 때 아래와 같은 결과가 나왔습니다.

책을 보고 복습 > 개념도 그리기 > 자유 회상 

실제 결과는 예상과 크게 다르게 나타났습니다.

자유 회상 >>> 개념도 그리기 >= 책을 보고 복습 

왜 이런 결과가 나타났을까요??


인출은 왜 효과적일까?

사전 인출 효과

인출에 대한 실험 중 재미있는 점은 모르는 내용을 인출하는 행위도 향후의 학습에 영향을 준다는 것입니다.

A라는 사항에 인출 연습을 하고 학습을 하게 되면 학습 효과가 배가 된다고 합니다.

지식의 공백과 주목 효과

지식의 공백

호기심은 지식의 공백을 느낄 때 발생한다

우리는 알지 못하는 내용에 대해 불편함을 느끼고 지식의 공백을 채우려는 습성이 있습니다.

  • 중요한 순간 다음 화로 넘어간 TV 프로그램에 대한 분노
  • 자극적이고 호기심을 자극하는 헤드라인의 뉴스
  • 꺼라위키를 보다가 관심도 없던 주제의 페이지를 탐독함

지식의 주목 효과

지식의 공백은 자연스럽게 지식의 주목 효과로 이어집니다.
인출을 하며 모르는 것들을 느낀 사람들은 자신이 모르는 것이 무엇인지 알고 그에 대한 호기심과 갈망을 느낍니다.
향후 학습이 이뤄질 때 해당 부분에 관한 내용을 스펀지처럼 빨아들일 수 있게 되죠


이렇게 좋은 인출을 왜 하지 않을까?

이렇게 좋은 인출을 왜 사람들은 하지 않는 걸까요?

내가 얼마나 알고 있는지에 대한 착각

우리는 "내가 얼마나 알고 있는지"에 대해 잘 알고 있다고 생각하지만 그렇지 않다고 합니다.

우리는 사실보다 "느끼는 감정"에 의존합니다.

비효율적인 복습은 즐겁습니다.


강의를 듣고 새로운 것을 익히는 과정은 즐겁습니다.
"많은 것을 익히는 과정"처럼 느껴집니다.
새로운 정보들을 학습하며 내가 그만큼 나아지고 발전하고 있는 기분이 듭니다.

인출은 고통스럽습니다.


반면 인출은 "아직 모르는 것이 많다"는 기분을 느끼게 해줍니다.
인출은 "하기 싫은 일"에 가깝습니다.
내가 모르는 것을 직시하는 것은 힘들고 불쾌하고 창피합니다.

당장은 복습이 효율적이다.

인출 방식이 두각을 나타내는 것은 시간이 필요합니다.

만약 2시간 후에 시험을 보겠다고 한다면 자유 회상 식으로 테스트할 것이 아니라 책을 펴고 내가 모르는 부분을 한 문장이라도 더 보는 것이 효과적입니다.

하지만 시간이 지날수록 복습으로 인한 학습 기억은 사라지고 인출을 겪었던 학습 기억만 남아있습니다.

어렵기 때문에 매력적이다.

인출을 통한 학습은 어렵습니다.
일반 사람들은 되도록 자신의 능력을 테스트하는 인출을 피하려고 합니다.
그렇기 때문에 인출을 잘 활용하는 사람들은 다른 사람보다 더 빨리 배우고 성장할 수 있습니다.


개발자는 어떻게 인출을 활용할 수 있을까

글 첫머리 A 씨의 사례에 공감하는 분 계신가요??

사실은 제 이야기입니다.

위의 사례에서 살펴본 강의를 보고 따라 하는 방식은 대표적인 비인출 학습 방법입니다.

개발자들의 공부 방식에서도 비효율적인 비인출 방법으로 학습이 이뤄지는 경우가 많습니다.

인출과 비 인출

인출과 비 인출 방법은 어떤 게 있을까요?

비 인출 방법

  • 필기를 그대로 따라 적습니다.
  • (강의, 개발 아티클 등을) 보고 읽기만 합니다.
  • 강사의 개발 과정을 그대로 따라합니다.

인출 방법

  • 자유 회상 등의 방법을 통해 자체적인 시험을 가집니다.
  • 배운 내용을 정리해서 문서화하거나 타인에게 설명합니다.
  • 배운 내용을 활용할 수 있는 과제(서비스 클론)에 도전합니다.

비 인출 환경에서 인출을 하는 방법

비 인출 환경에서도 인출을 하려면 어떻게 해야 할까요?

  • 학습 내용을 기억에 의존해 생각나는 대로 기록한 후 필기한 내용과 비교를 통해 내게 부족한 내용을 파악합니다.
  • 강사의 개발 과정을 따라 하는 데서 그치지 않고 강사의 도움 없이 처음부터 도전해봅니다.

이 외에도 환경에 따라 인출을 할 방법은 많습니다.

핵심은 내가 알고 있는 것을 시험할 수 있는 방법을 찾는 것입니다.

인출 환경의 교과서, 부트캠프

어느 순간부터 벨로그에 위코드를 비롯한 부트캠프 참가자분들의 글이 많아졌습니다.
처음 방문하는 사람이 보면 벨로그 == 부트캠프 참가자 커뮤니티라고 생각이 들 정도입니다.

저는 부트과정에 참가하지 않았지만 참가자분들의 글을 보고 학습 문화에 대해 대략 짐작할 수 있었습니다.

부트캠프의 학습 방법은 인출과 피드백에 초점이 맞춰져 있습니다.
(피드백은 다음 포스트로 작성 예정입니다)

부트캠프 참가자 분들이 단기간에 성장을 이루고 좋은 회사로 취직이 되는 건 당연한 결과처럼 보입니다.

부트캠프에 참여할 상황이 못 되는 분들은 다른 분들의 글을 보며 그들의 학습 방법을 벤치마킹해보는 것도 좋은 방법으로 보입니다.

마무리

본 포스트에서 입이 닳도록 다룬 인출은 <울트라러닝>의 학습 9 법칙 중 한 가지입니다.

책에서는 비중 있게 다루지 않았지만, 개발자에게 정말 중요한 학습 방법이라고 생각하여 포스트를 작성해봤습니다.

다음 포스트는 피드백에 대한 내용으로 찾아뵙겠습니다.

귀중한 시간 내서 본 포스트를 읽어주신 분들께 감사합니다.

1개의 댓글

comment-user-thumbnail
2024년 3월 9일

좋은 글 감사합니다! 많은 도움이 되었습니다

답글 달기