본문 바로가기
thought.log

# 공부하는 힘 - 황농문

by malda 2017. 10. 3.

# 저작권 자유 이미지 출처 by Unsplash

# 공부방법을 찾게 된 계기

나는 개발 일을 할 때에는 구현에 집중하며 시간 가는줄 모르게 몰입을 경험할 수 있었지만, 공부할 때에는 20분에서 40분정도가 최대 집중 가능 시간이었다. 집중 시간이 짧아서인지 깊이 있는 공부가 안되는 느낌을 자주 경험했고 책을 덮으면 기억이 안날 때가 많아서 책을 다 읽어도 다 까먹은 내 자신을 보며 그동안 내가 뭐했나 싶어 자괴감이 들때가 많았다.

또, 책 읽을 때는 이해 한 거는 같은데 간결하게 설명하지 못하고 배운 내용에 대해 기억을 제대로 하지 못했다. 그래서인지 나의 공부 방법이 잘못되었다는 것을 인지 할 수 있었고 이를 개선하기 위해 다양한 공부법을 찾기 시작했다. 이 책을 보면서 그동안 내 공부법의 문제점을 몇가지 발견했다.


# 나의 공부방법의 문제점 : 한계에 대한 인내

먼저, 이해하기 어려운 부분, 난이도가 높은 부분에 있어서 이해 될 때까지 물고 늘어지지 않았다. 특히 어려운 내용이 나오면 "아 하기 싫다, 어렵다, 몇 페이지 남았지?" 이런 부정적인 생각으로 집중을 더 못하며 내일로 미루거나 제대로 이해하지 않고 대충 넘어가는 식이었다. 이런 부정적인 생각을 의식적으로 떨쳐내고 문제 해결에, 이해가 될때까지 몇일이고 매달렸어야했다. 또한 내가 정해놓은 스케줄에 맞춰야한다는 조급함 때문에 어려운 부분을 이해하고 넘어갈 여유가 더 없었던 것 같다. 조급함은 공부에서 금물이었음을 깨달았다.

- 안된다는 이유만을 찾지 말 것!!
또한, 어려운 문제를 만나면 스스로 대충 넘어갈 이유를 만들거나 안되는 이유를 스스로 만들어 나 자신에게 어려운 문제를 그냥 넘어가는데 합리화 했다.

교수님은 어려운 문제를 만났을때 스스로를 합리화하거나 포기하지 말고 스스로의 힘으로 풀릴 때까지 풀어보라고 한다. 즉, 문제를 해결하기 위해 온힘을 다해 생각하는 연습을 하라는 것.

어찌보면 뻔한 답변 같고 말은 쉽지만 행동하기엔 쉽지가 않다. 스스로의 내성, 본성 습관대로 조금만 어려우면 구글링하거나 해설을 봐버리기 때문이다. 나 역시 문제를 내 생각을 통해서 스스로 해결해본 경험이 거의 없었다. 구글이 다알려주니까, 스택 오버플로에 나와 비슷한 고민이 다 있으니까..

만약 문제를 만났을 때 생각하는 것이 익숙지 않더라도 최소한 10분만이라도 먼저, 생각해서 추측이라도 해보는 연습을 해보자. 이후 검색했을 때 내가 먼저 생각한 방식과 정답이 유사하거나 맞다면 의외로 큰 기쁨을 맞볼 것이고 그 찾은 정답의 내용에 대한 기억은 오래갈 것이다.


# SW분야에 몰입 공부 방법 적용

여기서 그럼 나에게 필요한 소프트웨어 공부법에 적용할 수 있는지 생각해봤다. 책에서 제시한 수학 문제나 알고리즘 문제는 답이 정해져 있기 때문에 문제가 풀릴 때까지 스스로 생각해서 풀어보라는 부분이 이해가 간다. 그러면 새로운 언어를 배우거나 프레임워크를 배울땐 어떻게 해야할까?

내 생각이지만 내부 아키텍쳐(라이프 사이클, 핵심 개념)을 파악하는게 가장 우선 선행되어야할 것이다. 그 이후 자주 사용하는 API는 외우려고 노력해야하지 않을까 싶다.

요새는 IDE가 자동완성 기능으로 다 제공해주지만 오히려 이 편리함으로 추후에 내 머리에 남는게 없다. API명에 어느정도 의미가 있기 때문에 아키텍처를 이해한 후 자주 사용하는 API는 외우도록 하자

만약 책이 예제 위주로 진행된다면, 책을 이해 했다고 느낄 때 아무것도 없는 상태에서 진행해보자.


# 공부방법의 핵심 : 한계에 대한 논의

이 책의 공부법의 핵심은 첫번째, 어려운 문제를 만났을때 포기하지 않고 스스로의 생각으로 문제를 해결하는  것이다. 즉, 한계를 뛰어넘는 경험을 쌓아가라는 것인데 우리의 한계는 어디까지인거고 어떻게 알 수 있을까?

근육을 늘리는 것과 비슷하다는 생각을 했었는데 근육도 자신의 한계치를 넘겨야 근육을 커진다. 근데 문제는 잘못해서 한계치를 지나치게 넘게되면 부상으로 오히려 몇달간 운동을 할 수 없다.

공부도 비슷하다. 한계를 지나치게 넘는 공부를 지속하면 "아무리 노력해도 난 안되나봐.. 틀렸어.."라는 생각이 들면서 무력감을 경험하게 된다. 결국 몇달간 슬럼프로 공부를 못하게 될 가능성도 있다.

나도 비슷한 경험을 한적이 있다 자료구조에 대해서 공부를 했었는데 아무리 공부를 해도 AVL트리 삽입부분이 이해가 되지 않았다. 3일을 이해하려고 붙잡았던 것 같은데 지쳐갈 때쯤 딱 4일째 되는 아침에 마치 도를 깨달은 듯한 느낌을 경험했다. 그렇게 이해가 안 되던 것이 술술 이해가 되는 것이었다. 그때의 짜릿한 경험은 잊을 수가 없다. 그 이후 목표했던 자료구조 책을 처음으로 완독하고 그로 인한 성취감과 자신감이 붙어 호기로운 마음으로 더 어려운 책인 올림피아드 알고리즘 책을 보았다. 그때 "난 아직 멀었구나 이제 꼬꼬마 발걸음은 띈거구나”에 우울했었다.

위와 같이 우리는 언제 어디서든 새로운 어려움을 만날 수 있다. 이러한 어려움을 만났을 때 어떻게 할 것인지에 대한 선택지가 3가지가 있다. 자신이 한계라고 느낀다면

첫째, 포기한다.

"나에게 이게 한계구나" 받아 들인다. 이게 쉬울 수도 있는 사람도 있겠지만 나의 경우에는 "왜 난 이정도 밖에 할 수 없는가?" 마음이 찢어지는 경험이 들었다.

두번째, 1주정도 더 온힘을 다해서 도전한다.

1주정도 시간을 들여 성공한다면 어마어마한 짜릿함을 느끼겠지만 만약 실패하면 더 큰 좌절과 슬럼프가 올 수 있다.

세번째, 난이도를 조정한 후 추후에 다시 재도전한다.

만약에 너무 오랜 기간 도전해도 풀지 못해 슬럼프까지 올 정도라면 난이도 조정이 필요할 수 있다.

생각해보면 내 스스로의 한계는 나만 알 수 있다. 또한, 자신의 한계는 스스로가 결정하는 거다. 내가 도저히 못하겠으면 거기가 스스로의 한계점인거다. 앞으로 나의 한계 기준은 최대 4주까지로 정했다. 만약 동일한 문제를 내 스스로 4주동안 온전히 생각해도 안풀리는 문제라면 난이도 조정으로 한발 후퇴후 재도전 하려고 한다. 자신의 한계를 파악하는 것이 가장 중요하면서 가장 어렵다. 


# 공부방법의 핵심 : 생각하는 훈련

두번째 핵심은 생각하는 법을 훈련하는 것이다. 단순히 수동적으로 정보를 받아들이는 것이아니라 내가 의식적으로 생각해보고 정리하는 연습을 하는 것이다. 내가 이 글을 오랜 시간들여 정성껏 쓰고 있는 이유도 훈련이라고 생각하고 투자하는 것이다.

또한 교수님이 상세한 팁을 알려준다. 공부하고자 하는 과목이나 책은 최소 1주일은 하나만 선택한다. 이유는 서로 다른 분야의 공부나 책을 자주 바꾸면 뇌에서 적응하는 시간이 추가로 필요해 학습의 몰입에 방해가 되기 때문이다. 컴퓨터 공학과라면 컴퓨터 역시 컨텍스트 스위칭(작업 변경)이 빈번하게 발생하면 성능이 떨어지는 현상을 알것이다. 우리 뇌에도 이와 같은 현상이 동일하게 발생하는 것이다.


# 공부방법의 핵심 : 운동

마지막으로 개인적으로도 가장 중요하다고 생각하는 운동.
공부는 머리로 하는 것 같지만 사실 체력이 받쳐주지 못하면 오래할 수가 없다. 하루 30분 온몸이 땀으로 적셔질 때까지 온힘을 다하고, 운동 후에는 스트레칭으로 온몸을 충분히 풀어주고 따뜻한 물 샤워까지 총 1시간정도로 운동을 한다. 




'thought.log' 카테고리의 다른 글

올바른 방향  (0) 2017.12.21
#009 삶의 방향  (0) 2017.11.28
# 금딸의 효능  (13) 2017.09.27
#008 시행착오  (0) 2017.08.14
#007 개발자 문화  (0) 2017.07.22