임백준의 대살개문
한빛미디어, 2016
좋은 개발자가 되기 위해서 프로그래밍을 어디에서 누구에게 배우는가는 큰 의미가 없다. 대학에서 컴퓨터를 전공했는지, 학원에서 속성으로 배웠는지, 아니면 회사에서 제공하는 신입사원 교육 프로그램에서 프로그래밍을 처음 접했는지 하는 것은 핵심이 아니다. 그분을 영접하는 신내림을 받았는가, 받지 않았는가 하는 것이 핵심이다. 그 경험을 하지 않는 사람에게는 밤샘 코딩이 고문 같은 고통이지만, 그 경험을 한 사람에게는 가슴 뛰는 즐거움이다.
나눌줄 모르는 개발자는 즐길줄 모르는 사람이다. 즐길줄 모르기에 배움이 빈약하다. 그런 사람은 배움 자체를 목적으로 삼지 않기 때문에 문제를 해결하는 능력도 부족하다. 악순환의 덫이다. 공유를 하면 즐거움의 참맛을 알게 되고, 배움에 살이 붙고, 문제를 해결하는 능력도 배가된다. 선순환이 일어난다. 그래서 개발자 문화의 진정한 핵심은 공유다. 배움과 즐김의 해결의 끝은 공유다.
더 많이 알수록 자기가 모르는 것이 얼마나 많은지 알게 되는 것이 개발자의 숙명이다. 2000년대 중반에 루비를 접한 브루스 테이트는 자바라는 세계에 매몰되어 있던 자신의 편협함에 눈을 뜨고 심히 두려움을 느꼈단다. 그래서 점점 더 많은 지식과 정보를 탐하게 되고, 그러다 어느 순간 저 많은 것을 다 알 수는 없겠구나 하는 체념에 도달하게 된다. 자포자기적 심정이 들면서 우울함을 겪게 되는 것이다. 이런 것을 무협지에서 사용하는 전문용어로 주화입마라고 한다.
해법은 간단하다. 그 많은 내용을 다 알고 있는 사람이 존재하지 않는다는 사실을 깨달으면 된다. 자기가 알아야한다고 생각하는 내용의 1%도 제대로 알고 있느느 사람도 별로 없다. ‘이러저러한 것을 알아야 할 것 같은데 나는 언제 그걸 공부하지’라고 생각한 사람은 이미 대부분의 사람보다 많은 것을 알고 있는 사람이라는 뜻이다. 말장난이 아니다. 개발자 중에는 자기가 얼마나 모르는지 모르는 사람, 그래서 공부의 필요성조차 느끼지 못하는 사람이 80% 이상이다.