아마 어떤 분야든 마찬가지겠지만, 논리학을 혼자 공부하다 보면 소위 말하는 '사수'의 지도가 간절할 때가 정말 많다. 같은 경험을 했던 조언자가 있다면 한 순간에 파악했을 기본적인 실수를 붙잡고 몇 시간 동안 격투하는 경험도 부지기수지. 하지만 국내에서 논리학을 공부하면서 그런 사치는 기대하기 어렵다. 그렇다면 어떻게 해야 할까? 


이 경우 프로그래밍을 공부에 적극 활용하는 것도 한 방책이 될 수 있다. 문제를 잘 풀었는지는 솔루션이 없으면 헷갈리기 쉽지만, 코드가 잘 짜였는지는 돌려 보면 거의 알 수 있으니까. 설령 정답이 아니더라도 오류의 형태만 봐도 많은 힌트를 얻게 되고,  한 스텝마다 그 결과를 볼 수 있는 실시간 피드백은 집중력 면에서도 굉장한 도움이 된다.


그렇다면 프로그래밍을 활용해서 논리학을 공부하려면 어떤 교재를 써야 할까? 이건 사람마다 지식과 관심 분야가 천차만별이니 한마디로 말하기 어렵지만, 포멀한 배경지식이 전혀 없는 상태에서 공부를 시작하는 사람이라면 The Haskell Road to Logic, Maths and Programming (https://fldit-www.cs.uni-dortmund.de/~peter/PS07/HR.pdf) 이 꽤 괜찮은 선택이라고 본다. 순수한 논리학 교재는 아니고 일반적 개론에서는 다루지 않는 이산수학이나 프로그래밍도 약간 나오지만, 어차피 논리학을 계속 공부한다면 필수적인 내용이니 손해 볼 것은 없음. 추론 규칙과 증명, 집합, 함수, 관계, 타입, 재귀 같은 기초 개념들을 다양한 프로그래밍 과제를 통해 배우게 된다. 그리고 양화사를 type constructor의 일종으로 보는 것과 같은 프로그래머의 관점도 다루기 때문에 논리의 computational interpretation 에 관심 있는 사람에게도 나쁘지 않은 입문서라고 생각.