한 해 전쯤에는 대학원생 조교로서 UC 버클리 학부생들을 대상으로 기본적인 통계, 인과추론, 실험 설계 등을 가르쳤는데 이번 봄학기에는 대학원생들을 상대로 사회과학도를 위한 코딩 기술을 가르친다. 이 수업은 UC 버클리 정치학과에서 수년 전에 새롭게 개설된 과목으로 R, 파이선 등의 프로그래밍 언어를 사회과학 연구를 위해 활용하는 방법을 가르치기 위해 만들어진 과목이다. 따라서 크게 보면 데이터를 모으고, 정리하고, 분석하고, 시각화하는 데이터 사이언스 트랙에 속하는 한 과목이라고도 볼 수 있다. 이제 가르치는 입장이 돼서 지난 4년 동안 대학원 들어와서 완전 백지에서 프로그래밍 언어를 배웠던 과정을 생각하면 학생들이 마주칠 몇 가지 난관이 쉽게 예상된다. 전공이 경제학이든, 정치학이든, 사회학이든, 심리학이든 많은 사회과학도들에게 이제 프로그래밍 언어는 필수다. 학회에 가면 젊은 세대 학자들 중에서는 상당히 많은 사람들이 R, 파이선 같은 언어에 능숙할 걸 볼 수 있다. 데이터 사이언티스를 구하는 구직 기회도 이곳 실리콘밸리뿐 아니라 전세계에 많다. 그러나 여전히 많은 사회과학도들이, 학부생뿐 아니라 대학원생들도 프로그래밍 언어에 생소하다. 엄격한 논리 기계인 프로그래밍 언어는 조금의 실수도 허락하지 않는데, 그런 상대를 접하는 게 일단 어색하다. 나아가, 프로그래밍 언어는 효율성을 위해서 고도로 압축된 문법을 사용한다. 사람과 사람 사이의 대화에만 익숙할 경우, 이렇게 기계와 대화하는 법이 그렇게 간단하지 않다. 이건 프로그래밍 언어를 '언어'라는 부분에만 초점을 맞추고 볼 때 파악할 수 있는 기본적인 난관들이다. 취미가 요리이다 보니 자연스럽게 프로그래밍 언어를 그쪽 관점에서도 보는데, 이렇게 보면 프로그래밍 언어는 '언어'란 측면 외에도 '요리'와 비슷한 점이 많다. 요리의 뒤에 생물학, 화학, 물리학 등 과학적 원리가 있는 것처럼 프로그래밍 언어 뒤에도 일련의 논리가 있다. 또한, 다양한 재료에 따라 다양한 요리법이 필요하듯 다양한 데이터에 따라 다양한 접근법이 필요하다. 여러 요리 도구가 있듯이 여러 모듈이 있다. 그리고 요리와 마찬가지로 프로그래밍에서도 잘 짜여진 순서를 미리 생각해 놓는 것이 긴요하다. 훌륭한 요리 기술에 앞서 좋은 재료(데이터)가 중요하다는 것도 비슷할 것이다. 이런 원리적인 부분들을 떠나서 데이터 사이언스를 위해서 프로그래밍 언어를 배우는 것과 요리를 배우는 것의 가장 근본적인 공통점은 실용적인 부분이다. 소위 파인 다이닝이라고 하는 고급 레스토랑에서 선보이는 음식과 집에서 매일 먹는 음식은 다르다. 예산이 다르고, 도구가 다르고, 기술이 다르다. 사회과학도들은 대개의 경우, 코딩을 하는 이유가 컴퓨터 공학을 하기 위해서가 아니라 실제 자기가 하는 프로젝트에서 써먹기 위해서이다. 가정에서 매일 밥을 해 먹어야 할 사람들에게 가르칠 요리 기술과 셰프가 될 사람에게 가르쳐야 할 기술이 다르듯이, 데이터 사이언스를 가르치는 사람도 실제로 그 코딩 기술을 활용할 사람이 어떤 목적을 가지고 있는지에 따라서 다른 학습방법을 제시해야 할 것이다. <김재연 (UC 버클리 정치학과 박사과정생)>
프로그래밍 언어를 배우는 것과 요리를 배우는 것의 공통점은 실용적이라는 점 뿐 아니라 프로그래밍 언어 뒤에도 일련의 논리가 있고 다양한 데이터에 따라 다양한 접근법이 필요하다는 점에서 같다.