영어 단어를 외울 때, 여러 번 반복해서 영어 단어를 보고 읽고 생각한다. 심지어 내가 초등학생 때 수학을 배울 때는 수학책과 수학익힘책이 따로 있었다. 수학책은 좀 작은 책이었는데, 개념을 설명하는 책이었고 수학익힘책은 문제 중심으로 그 개념을 이용해서 다양한 문제를 풀 수 있는 책이었다.
학습에서 가장 중요한 것은 반복이라고 생각한다. 특히 처음일 때. 뭐든 처음 배울 때는 모든 것이 익숙하지 않기 때문에 이해도 안 될뿐만 아니라 이해한 것도 기억이 안 난다.
강의를 하다보면 3일, 5일 또는 길면 10일 정도 되는 강의가 있다. 나는 대부분 비전공자를 대상으로 프로그래밍 입문을 가르쳤는데, 이 정도 기간이면 사실 할 수 있는 것이 많지 않다.
그러다 보니 목표가 명확하고 강의 자체가 “소개”와 “따라 하기”에 가깝다. 예를 들어 for 문이 반복문이라는 것을 설명하고 반복이 활용되는 사례 몇 가지를 따라 작성하면서 익힌다. 그러다 보니 학습자는 온전히 이해한 것으로 생각하고 실제로 만족도도 높은 편이다.
(아마 클론 코딩 강의가 많은 것도 비슷한 이유가 아닐까 생각한다.)
그렇지만, 개인적으로 이렇게 학습하면 전혀 활용할 수 없다고 생각한다. 정말 가끔 재능있는 분들은 바로 잘 활용하는 경우가 있긴 하지만, 경험상 매우 드물다. 결국 모든 학습에는 수학익힘책이 필요하다. 지루하지만 반복해야 하고, 비슷한 문제가 외워질 만하면 다른 형태로 반복해야 잘 활용할 수 있다.
프로그래밍 언어는 특히나 그렇기 때문에, 강의 중에도 매번 얘기하게 된다.
그래서 1개월 이상 강의를 하는 경우에는 조금 다르게 접근한다. A 함수를 하나 설명하기 위해서, 이런 상황에서는 A 함수를 쓴다고 설명하지 않고 앞서 다뤘던 내용을 누적해서 반복한다.
예를 들어, 업무 자동화 강의 중에 Selenium으로 iframe 태그가 있는 웹 페이지를 스크래핑 시 switch_to.frame 함수를 사용해야 하는데 단순히 소개하고 실습하는 수준이 아니라, 이전에 배운 스크래핑 과정에서 실습을 진행하고, 문제를 직면한 후에 switch_to.frame 함수로 해결한다. 그 이후에 진행하는 내용은 이전에 배운 내용의 또 다른 활용이기 때문에 직접 실습할 시간을 학습자에게 준다.
1개월 이상 강의는 대부분 부트캠프나 커리어 전환을 위한 과정이 많기 때문에 이러한 과정이 더 중요하다고 생각한다.
왜냐하면 생각보다 학습자는 강의 외 시간에 학습하기 어려울 수 있다. 그래서 가능한 한 강의에 녹이려고 한다.
결국 학습에는 효율이 없다는 생각이 든다. 회사에 다니다 보면 많은 부분에서 효율을 찾기 마련이라, 학습에서도 효율을 찾게 되는 경우가 많다. 이러한 생각이 결국 효율을 떨어뜨리는 것 같다.
목표가 있다면 목표로 가기 위한 커리큘럼이나 환경에는 효율이 있을 수 있지만, 실제 학습을 하는 과정에서는, 체화하기 위한 물리적인 시간이 필요한 것 같다.
그래서 그렇게 학창 시절에 선생님이 요령 피우지 말라고 했었나 보다.