2014년 3월 20일 목요일

프로그래밍에 필요한 재능:논리력





 프로그래머로서 필요한 재능은 무엇일까? 현재로서는 스스로 대답을 내기 어렵다. 뭐 해봤어야지. 여러모로 프로그래머로서의 재능에 대해 물어봤다. 얼마전 다녀온 GDG Daejeon에서 한 세션을 담당하신 '김정'님은 재능보다 포기하지 않는 끈기가 중요하다고 말하셨다. 끈기라... 끈기도 어찌보면 재능이 아니려나? 마지막 세션의 '유명환'님은 프로그래머의 능력을 [(구현 + 삽질) * 표현]/고정관념이라고 설명하셨다. 흠. 이런 것도 사실 어찌보면 재능에 들어가는 범주가 아닐까 싶은데... 잘 모르겠다.

 포프님은 포프TV에서 논리력이라고 대답했다. 논리력. 맞는 말이라고 생각한다. 인문학은 개인의 역량에 따라 개인이 있는 곳에서 발전한다면, 과학은 누군가 쌓아올린 탑위로 다른 누군가가 쌓아올리는 탑이니까. 누구나 받아들일 수 있는, 논리로 쌓아올린 탑의 정점에 있는 것이 컴퓨터. 그 컴퓨터를 통해 무엇인가를 구현하는 사람이 프로그래머니까. 논리력!

 논리(logic)는 조금 다르게 표현하자면 범주(category)다. 대학교 때 들었던 강의 시간에도 그렇게 배웠고, 개인적으로 사 봤던 칼뱅의 <논리학 입문>에서도 범주, 집합을 빼놓고 논리를 설명할 수 없으니까. 사과인 것 or 사과가 아닌 것. 사과 or ~사과. TRUE or FALSE. 1 or 0. 배운 거 써먹어야지, 전압이 있는가 or 전압이 없는가. 이 단순한 구분으로 이루어진, 엄청난 양의 연산을, 어마무시하게 빠른 속도로 해내는 것이 바로 컴퓨터니까.

 졸려서인지 글이 산으로 가는 것 같지만, 결국 나는 논리력이 있는가?에 대해 의문을 가지게 된다. 난 논리적인 인간인가. 논리적인 인간이어야 늦은 나이에 선택한 프로그래머의 길에서 재미나게 살 수 있지 않은가. 논리력이 있었는지는 모르겠다. 그러나 논리력을 학습한 효과는 방금 프로그래밍 문제를 풀면서 느꼈다. 호오, 학습이 가능하다라. 그럼 계속 학습을 해야지!

댓글 없음:

댓글 쓰기