선요약: 스스로 생각하자
념글의 원본 -> https://gall.dcinside.com/board/view/?id=engineering&no=37290
념글 자체보다는 념글에 동조하는 사람들이 생각보다 많다는 데 놀라 글을 쓴다. 나는 념글의 방식이 언제나 적용된다고 생각하지 않고 더 나은 방식도 있다고 본다. 이 글의 일부는 념글을 보안하며 일부는 다른 관점을 취한다.
사람들이 말하는 공부는 크게 두 가지 범주로 나뉜다. [다른 사람이 요구하는 지식을 획득/내가 원하는 지식을 획득]. 전자는 시험 등을 위해서 공부하는 거고 후자는 내가 궁금한 것을 해결하기 위해 공부하는 거다. 내가 해결하고 싶은 문제가 시험에 나오는 경우도 있지만 꼭 그러라는 법은 없다. 또 전자는 대부분 학습 목표가 있으며 목표 달성치를 측정할 방법(시험 등)이 있다. 공부법 글 쓴 사람(이하 글쓴이)은 전자의 공부를 말하고 있다. 따라서 후자의 공부를 논하는 건 또 다른 주제가 된다. 이 글은 전자, 그 중에서도 학부에 한정되어 있다.
극단적으로 생각해보자. 학점을 따는 가장 쉬운 방법은 뭘까?
1. 시험에 나올 문제를 미리 아는 것. 그렇게 하기 위해서는 내가 시험 출제자거나 출제자와 매우 친하거나 출제자 몰래 시험지를 빼돌리면 된다. 나는 출제자가 아니며 나머지는 사회적으로 용납되지 않으므로 할 수 없다.
2. 족보를 이용. 교수가 시험 문제를 바꾸지 않는다면 1번과 같은 셈이다. 그러나 어떤 수업은 족보가 없거나 구하기 매우 어려우며 교수가 시험을 똑같이 낸다는 보장이 없을 때도 있다.
3. 교수가 중요하다고 말하거나 암시하는 부분에 집중. 암시에는 반복되는 주제나 과제 등이 해당된다. 이건 내가 누군가를 가르치는 입장이 되어보면 좋다. 가르치는 건 우선 목표가 있어야 한다. 내 목표가 학생이 C언어를 가지고 임의로 입력된 수식을 처리한 결과를 출력하는 프로그램을 만드는 거라고 하자. 그러면 나는 C언어의 요소 중 문자열, 포인터, 메모리, 함수, 구조체 등을 중점적으로 다룰 것이다. 입장을 바꿔서 교수가 학생에 관심이 없거나 특별히 악의가 있는 게 아니라면 중요하다고 말하는 건 이유가 있을 거다.
그런데 만약 1, 2, 3번 다 안 먹힐 것 같은 상황이면 어떨까? 교수가 수업에 관심이 없거나 학생들을 괴롭히려는 의도가 있을 수 있다. 교수가 수업에 열정적이어서 매 학기마다 새로운 시험을 고안하는 사람일 수도 있다. 이런 경우는 어떻게 해야 할까?
나는 이제 '이해'를 해야 한다고 생각한다. 나는 글쓴이가 말하는 이해가 정확히 뭘 말하는지는 모르겠다. 그가 솔루션 풀이 암기에 대해서 설명한 게 교육학에서 도구적 이해에 해당하는 것으로 보아 그가 말하는 '이해'란 관계적 이해인 것으로 보인다.
#include <stdio.h>
C언어를 처음 시작하면 반드시 저 구문을 입력해야만 한다. 초보자는 저게 무엇을 의미하는지 다 알 필요는 없다. 아무튼 저걸 입력해야 한다, 입력하지 않으면 프로그램이 안 만들어진다 정도만 알아도 무방하다. 이게 도구적 이해다. 몇 번 키보드 입력하다 보면 자연히 손에 익는다.
하지만 나는 이해하면 더 쉽다고 생각한다. stdio 이게 뭘까? 바로 standard input output이다. stdio.h는 공구 상자다. 거기에는 input에 해당하는 함수 scanf가 있고 output에 해당하는 함수 printf가 있다. 함수는 공구 상자 안에 있는 공구다. 그러니까 stdio 공구 상자는 input 역할을 하는 공구와 output 역할을 하는 공구를 안에 가지고 있다. 이러면 노가다 할 필요도 없이 기억에 남는다.
stdio는 검색하면 무슨 뜻인지 나온다. 하지만 어떤 의미인지 알기 어렵지만 기억해야 하는 경우도 있다. 만약 내가 134920이란 숫자를 기억해야 한다고 하자. 이 숫자는 임의로 만든 숫자다. 머리가 좋은 사람이라면 저걸 한 번 보고도 오랫동안 기억하겠지만 나는 그렇지 않다. 나는 우선 청킹 할 거다. 134/920. 괜찮은 관계가 보이지 않는다. 13/49/20. 관계가 보이는데 앞의 청크의 합과 차로 다른 두 청크의 첫 번째 원소가 나온다는 거다. 4 = 1 + 3, 2 = 3 - 1. 또 두 번째 청크는 두 자릿수가 모두 제곱수며 그 자체로 제곱수이기도 하다. 2^2, 3^2, 7^2. 마지막 0은 딱히 떠오르는 게 없어 문자의 끝이니까 0이라고 의미를 부여했다. 이 정도 하면 나는 134920을 오랫동안 기억할 수 있다.
나는 글쓴이에 대부분 동의한다. 그렇지만 가장 중요한 건 글쓴이의 방법 자체가 아니라 태도라고 생각한다. 글쓴이는 서두에 다른 사람들이 원론적인 소리나 하고 있다고 말하며 비판한다. 이것으로 미루어 볼 때 그가 내놓은 결론은 다른 사람의 지침을 무조건 수용하기보다는 스스로 경험하고 생각한 끝에 나온 것이라고 본다. 나는 앞서 stdio를 예로 들며 "노가다 할 필요도 없이 기억에 남는다" 고 했지만 이건 주관적인 견해에 불과하다. 학습 능률에서 개인차가 큰 요인이라면 노가다를 하는 게 편한 사람도 있을 것이다. 그렇지 않고 관계적 이해가 중요하다면 내가 든 예시가 부적절하며 stdio를 이해하기 위해서는 다른 개념을 끌고 오는 게 맞을 것이다. 가장 좋은 건 다른 사람이 떠 먹여 주지 않고 스스로 개념과 개념 간의 개연성 있는 관계를 만들어내는 것이 아닐까?
암기법?