안녕하세요.
현재 순수수학은 아니고, 머신러닝을 위해 수학을 공부하는 중인데요, 수학 공부 방법 관련해서 질문이 있습니다.
갤 전체에 "공부", "방법" 두 가지 키워드로 검색을 모두 해 보았지만 제가 원하는 상세한 노하우를 찾을 수 없어 여기 고수분들께 질문을 드립니다.
어떠한 일반적인 답을 찾고있는 것은 아닙니다. 케바케에 해당하는 개인적인 대답도 환영합니다.
총 6가지 질문이 있습니다:
1: 이해와 암기에 관한 질문:
1.1) 배운 내용을 잊어먹지 않기 위해 시간적/정신체력적 비용을 투자해야 할까요?
완전히 이해했던 내용이라도, 관련된 부분을 오랬동안 공부하지 않으면 잊어버릴 겁니다.
그렇게 되면 추후에 해당 내용이 필요해지는 상황이 와도, 기억해내지 못하겠지요.
제가 Reddit을 돌아다니다가 읽은 썰이 있는데요, 진위 여부는 모르겠지만:
이런 상황에 대해서 의식적으로 대처하는게 좋습니까?(주기적으로 복습하는 식으로)
아니면 일단 배운 다음에 잊어버리도록 방치하되, 그 기회비용으로 현재 공부하는 내용에 집중하는 것이 낫습니까?
1.2) 증명도 암기해야 하나요?
개인적으로는, 증명이 이해가 되면, 증명 전체를 토씨하나 빠트리고 외우지는 않고, 다만 증명의 핵심 아이디어만 외우는 편입니다. 핵심 아이디어와 키워드만 외워서, 나중에 그 조각들을 이어붙인 흐름으로 증명을 제 스스로 백지에 써낼 수 있을 정도로 외우는거죠. 저는 현재 학부 저학년 수준(미분/선대/수리물리학)의 간단한 책만 공부중이라, 이러한 식으로만 암기를 해도 괜찮습니다. 어려운 수학을 다루시는 분들이 어떻게 하는지는 잘 모르겠지만요. 아무튼, 이러한 식으로, 저는 증명뿐만 아니라 문제를 풀거나 또는 혼자 생각하면서 발견한 remarkable한 접근방법, 새로운 시각과 관점/응용들 역시 하나하나 모아서 명시적으로 외워놓습니다. 이렇게 하는게 좋은가요 아니면 시간낭비일까요?
2: 연습문제에 관한 질문:
1.1) 연습문제를 언제까지, 얼마나 풀어야 할까요?
텍스트북의 챕터를 공부한 후, 텍스트북의 연습문제를 풀거나, 또는 그것으로도 부족하다면 인터넷에서 관련된 문제를 찾아서 풀어볼 수 있을 것입니다. 이때, 내가 이만하면 충분히 연습을 하였고, 다음 챕터로 넘어가도 되는지의 여부를 어떻게 알 수 있나요? "충분히 숙달되지 못함" 과 "문제에 지나치게 시간낭비를 하였음" 사이의 적절지점을 어떻게 찾을 수 있을까요?
1.2) 많이 추상적인 질문입니다. 근본적으로 연습문제를 풀면서 제가 얻어가야 하는 부분은 무엇입니까?
예를 들어서 제가 초등학생이고, 배우는 내용이 구구단이라면, 2x2 부터 9x9 까지 단답형 문제가 빼곡히 적힌 연습문제 책을 푸는 목적은 마치 근육을 만들듯이 머릿속으로 기계적인 숙달을 하는 것일 것입니다.
그렇다면 학부 수준 또는 그 이상의 내용을 공부하는 데에 있어 연습문제를 푸는 목적은 무엇일까요? 이것을 확실히 알고 있다면, 단순히 풀어서 맞으면 넘어가고 틀리면 챕터를 복습하는 것 이상의... 무언가 Exploit이 가능할 것이라고 생각합니다.
예상하는 바로는 연습 문제를 풂으로써 얻는 것들은: 1) 배운 개념을 어떻게 적용할 수 있는지 예시를 익히는 것, 2) 하나의 Data 형식을 다른 Data 형식 또는 이전에 배운 내용과 연관짓는 법(예를 들어서 선형대수에서는 행렬과 벡터는 서로 연관되어 나중에는 벡터/평면간의 Projection을 행렬로 표현하게 됩니다), 3) 마지막으로 위의 구구단 예시와 같이 기계적인 숙달입니다.
그런데 만약 기계적 숙달이 학부 이상의 수학에서 별로 중요한 것이 아니라면, 풀이법이 너무 뻔한 문제는 솔루션만 보고 그냥 넘어가는 식으로 저의 공부 방법이 변하겠지요.
3: 전공자들에 대한 질문
좀 멍청하고 답이 뻔한 질문들입니다...
자기 전공 외의 전혀 생각하지도 못했던 부분에서 기발한 솔루션을 가져오는 사람들이 있습니다.
3.1): 그런 사람들은 사전에 자신의 주전공 이외에 다른 부분 역시 공부했기 때문에 그런 생각을 해 낼 수 있는 건가요?
3.2, 이어서): 만약 그렇다면, 그 사람들은 주전공에 전념해도 시간과 체력이 부족할 텐데, 다른 분야를 공부할 짬은 어떻게 내는 것인가요?
(제 머릿속의 대학원생/전공자는 하루 12시간동안 공부만 하면서 생활을 포기한 사람들입니다.... 직업이니 하루 8시간 이상 집중하는 것은 당연하고, 전문직이니 더 빡센건 더욱 당연하니 최소 4시간은 더 잡아야겠죠. 그러면 12시간 정도는 공부하지 않겠습니까...? 물론 제 상상입니다)
3.3, 이어서): 만약 그렇다면, 삼천포로 빠질 때, 단순히 개인의 흥미에 따라서 공부를 하는 사람도 있겠지만, 무언가 도움이 될 것 같아서 공부하는 사람도 있을 것입니다. 이때, 그 분야가 자신의 주전공에 도움이 될 것이라는 것을 사전에 어떻게 알 수 있는 것입니까?
타고난 지능은 어찌할 수 없겠지만, 저의 현재 위치에서 최대한의 포텐셜을 발휘하고 싶습니다.
하지만 혼자서 길을 알아내는 데에도 한계가 있습니다. 사람은 항상 남에게서 배워야만 해요.
롤 솔랭의 초고수 도파가 말하기를 자기 자신은 그냥 잡기술의 천재일 뿐이라고 했지요.
하지만 저는 그 잡기술들이야말로 실력의 정수라고 생각합니다. 그리고 단순 게임인 롤뿐만 아니라 수학도 마찬가지라고 생각해요.
제가 하는 질문들이 실로 지엽적이고, 이런 궁리를 할 시간에 연습문제 하나라도 더 푸는 것이 낫다고 생각할지도 모르지만, 제 입장에서는 수학의 고수들이 무수한 시행착오와 재능/ 운으로 획득해 체화된 그런 습관과 잡기술들이 정말로 큰 도움이 됩니다.
저는 비록 순수수학은 아니고 머신러닝이라는 응용분야를 공부하지만, 늦게 출발했더라도 멀리 가고 싶습니다.
제가 학문을 나아가는 데 있어, 여러분의 조언으로 인한 아주 작은 각도수정만으로도, 장기적인 시각에서는 저의 실력벡터는 목표지점에 훨씬 더 가까운 발전을 이룰 수 있을 것이라고 생각합니다.
모든 답변 감사합니다.
책1권을 이해한다 -> 반복하며 문제제기를 한다(자유로운 생각)
그냥 보편적인 공부법이라 생각하고 댓글달아요
개인적인 생각: 1.1) 저는 딱히 안 합니다. 저 레딧 썰도 프로페셔널들도 저렇다더라~ 느낌인 거 같은데요, 잊어버리는 건 자연스러운 거니 필요할 때 다시 보는게 낫다고 생각합니다. 1.2) 저도 핵심 아이디어만 외웁니다. 나중에 가면 대부분 증명은 "자연스러워" 보이는데, 그러면 충분한듯 2.1) 일단 저는 문제 딱보고 풀이가 자연스럽게 떠오르면 넘어가고 아니면 풀어보는 편입니다 2.2) 연습문제 취향이 책들마다 다 달라서 말하긴 어려운데, 저같은 경우는 본문은 흐름을 익히는 느낌이고 연습문제는 구멍을 메우는 느낌 3.1) 아마 그렇겟죠 3.2) 제가 본 대부분은 그정도는 아닌 거 같음 3.3) 사전에 아는 게 아니고 하다보니 깨닫는거에 가까운듯
1.1) 난안함 1.2) 가능하면 증명의 intuition 만 이해하려고함. 그래도 대부분은 까먹음. 까먹으면 다시 보면됨. 2.1) 난 책의 연습문제는 한번도 안풀어봄 2.2) 사실 연습문제 푸는건 그 수학에서 사용하는 '언어'의 숙달에 가까울껄. 예를들어서 어떤 technique 어디서 어떻게 쓰는지 익숙해진다던가. 3: 난 다른분야에서 기발한 아이디어 내본적이 없어서 패스
솔직히 딱히 정해진 답이 없는거같은데, 사람마다 자기한테 맞는 공부하는 법도 다 다를거고...
누구한테 어떻게 공부해라 하고 공부법 말해주는사람도 결국 자기가 시행착오 해보고 자기한테 맞는 좋은 방법을 찾아내는거라...
https://www.coursera.org/learn/learning-how-to-learn?
나는
안봤지만 저 강의 괜찮다는 평을 많이 들어서 한번 봐보고 고민해보던가
지극히 내 개인적인 생각을 말하자면, 1.1 과 1.2 에 대한건 의식적으로 외우려 하기보다 여러번 자주 보면서 자연스럽게 외워지는게 좋다고 생각함 예를들어 난 해석학 처음 들을때 compact set 정의만 가지고 이것저것 증명하는거 영 익숙하질 않았는데, 그뒤로 미기 위상 다변수 등 들으면서 자주 쓰다 보니 각종 아이디어들이 되게 자연스럽게 익혀지고 해석개론 책 다시보면서 증명 안보고 스스로 해보는것도 금방금방 되더라
2 에 대한건 정말 답이 없다 그 과목 처음들었는지 복습인지 책 문제가 쉬운지 어려운지 뭐 계산이 복잡한건지 특정 아이디어 아니면 안풀린다던지 등등 요소가 너무 많은데 시행착오 겪어가면서 적당한 커트라인을 찾아야 한다고 생각함 내 휴리스틱은 대충 봤을때 쉬워보이는데 내가 못푸는거면 그냥 그 단원 이해를 못한거니까 앞에 개념이랑 example을 다시 보고 그래도 안되면 솔루션을보고 딱봐도 어려워보이는문제면 일단 잠깐 넘겨놨다 시간많을때 재도전함 근데 뭐 휴리스틱이 맞으려면 문제난이도 판단이 되야하는데 그건 정말 시행착오 겪어가면서 찾아야하는거같고... 문제 보고 난이도판단하는 머리속의 뉴럴넷을 머신러닝한다고 생각하셈 ㅋㅋ
3.1): 그런 사람들은 사전에 자신의 주전공 이외에 다른 부분 역시 공부했기 때문에 그런 생각을 해 낼 수 있는 건가요? -> 나도모름 근데 케이스 바이 케이스 아닐까 뭐 얘를들어서 언어학자들이 언어학 지식 가지고 NLP모델을 모델링하는 뭐 새로운 아이디어를 내는 경우도 있을수있고 그런거지..
3.2, 이어서): 만약 그렇다면, 그 사람들은 주전공에 전념해도 시간과 체력이 부족할 텐데, 다른 분야를 공부할 짬은 어떻게 내는 것인가요? -> 요새 학제간 연구 많이하지않나, 대학원생이나 교수면 뭐 자기 동료들하고 같이 연구할수도 있고 회사면 뭐 회사에서 하는거 따라서 같이 할수도있는데, 보통 일단 자기가 먼저 공부해 온 툴을 그쪽 분야에 적용시키려 해보면서 이것저것 하고 그러는거지 주전공하고 똑같은 시간 써가며 하는 경우는 많지 않지 않을까 파인만이 양자컴퓨터에 대한 아이디어를 냈는데 그게 파인만이 물리학 박사 받고 컴공 전공을 또 한건 아니잖아 자기 물리학 지식과 컴퓨팅에 대한 기본적인 개념을 가지고 양자역학의 계산에 대한 문제점을 해결해보려고 아이디어를 낸거지
3.3, 이어서): 만약 그렇다면, 삼천포로 빠질 때, 단순히 개인의 흥미에 따라서 공부를 하는 사람도 있겠지만, 무언가 도움이 될 것 같아서 공부하는 사람도 있을 것입니다. 이때, 그 분야가 자신의 주전공에 도움이 될 것이라는 것을 사전에 어떻게 알 수 있는 것입니까? -> 그걸 미리 알면 미래가 보이는게 아닐까 하다보니 되는거지... 폰노이만이 아닌 이상
그리고 개인적인 경험상 공부방법에 대한 고민 해보는것도 좋은데 결국 고민 적당히 해서 너무 틀린 방향만 아니면 그냥 그시간에 공부를 많이 하는게 더 좋음 어차피 공부하다 보면 경험이 쌓이고 더 좋은 방향이 보이면 조금씩 수정해가는거지 Gradient Descent도 그렇잖아 시작할떄부터 좋은 파라미터값이 어딧겠음
답변들 모두 감사해요
개인적인 대답은 네가 무엇을 준비하고, 공부를 왜 하는지에 따라 다름. 준비하는데 시간이 충분하거나, 재미로 공부하는 거라면 낯선 유명한 관광지를 천천히 둘러 보는 것도 좋겠지. 하지만 현실은 시간적 비용적 제한이 있잖아. 수학공부는 필요한 만큼만 하면 충분함.
축구선수가 축구를 잘하려면 드리블, 패스 이런거를 주력으로 하고 필요한 만큼만 헬스장에 가는거지. 축구를 하려면 하체단련을 해야 하니까 옆에 있는 보디빌더, 역도선수, 파워리프터 들만큼 할 필요는 없지.
글쓴이는 어느정도 경험과, 개인적인 답을 알고 다른이들의 상황을 궁금해 하는 것 같은데, 다른 이들도 비슷함. 자기가 주력으로 준비하는 거에 더 많은 시간을 투자하면됨