티스토리 뷰

처음에 어떤 문제가 생기면 체감상 어. 이건 그냥 쉽게 해결할 수 있을 것 같은데? 하며 머리 속에 안전하진 않지만 될 것만 같은 연결선이 그려지는 경우가 많다. 그런데 대게 막상 해보면 생각한 부분은 분명 되는데 생각지 않은 부분에서 사건이 발생한다. 마치 코끼리 다리를 만진 장님이 된 듯이

프로그래밍은 그래서 아무리 고수라도, 아니 고수이면 고수일 수록 빠르게 답을 내리지 않는다.


알고리즘을 '한 방'에 만들어 내려고 하는 사람은 '하수' 이며 '고수'는 어디까지는 뚜벅뚜벅 한 걸음씩 걷는 사람이다.

-'P를 출력하는 프로그램 P' 중...

"가우스나 노이만 같은 사람은 한 시대를 풍미한 천재들이지만, 부러운 것은 그들의 '천재성'이 아니라 바로 자신이 선택한 일을 진심으로 사랑하여 끝없이 몰두할 수 있었던 '열정'이다." 라고 저자는 얘기하고 있는데 나도 사실 많이 부럽다. 내가 몰두할 수 있는 일을 천직으로 삼는 사람은 옆에 두는 것 만으로도 내게 큰 자극을 줄 수 있을 것 같다.


프로그래밍은 혼자서 하는 바둑이나 테니스가 아니라 단체로 하는 축구같다는 얘기도 많은 공감을 일으켰다. 작은 프로그램이면 몰라도 조금만 커져도 어떻게 조화를 깨트리지 않고 완성시킬 수 있을지, 디자인이나 프로그램의 목적을 잘 달성하기 위해 한계까지 고려한 많은 시도와 노력이 필요하다. 그래서 같은 길을 걷는 사람을 찾는 게 정말 어느 것보다도 중요하게 느껴진다.

프로그래밍은 컴퓨터 앞에 앉아서 하는 것만이 아니란 것도. 결국 사람을 위한 것은 삶을 잘 알고 있어야 만들 수 있다.


학부 자료구조때 배운 정렬, 동적 프로그래밍도 좋지만 수업시간에 운 좋게 배웠던 사운덱스 알고리즘, Fast Fourier Transform, 해시, RSA알고리즘 얘기가 나와서 흥미깊게 볼 수 있었다. 그 바람에 지금 그때 필기를 다시 꺼내보고 싶은 충동이 일었는데 이걸 시작하면 또 일을 벌리는 거라 고민하고 있다.


직장인이기 때문에 실제 회사에서의 생활을 가끔 얘기해 주기도 한다.

새롭고 따끈따끈한 기술을 익히기 보단 낡은 기술을 붙들고 틀에 박힌 작업을 해야 하는 경우가 더 많다고..

이 표현이 정말 피부로 와 닿았는데, "신선한 재료를 다듬어서 맛있는 요리를 만드는 것이 아니라 다른 사람이 더럽혀 놓은 그릇을 '설거지'하는 듯한 기분이 들 때가 더 많다는 것이다." 하지만 일상적인 일들조차도 창조 작업의 소중한 일부라고 하더라. 생각해보면 설거지를 잘하는 사람이 필요하다. 요리를 잘하는 것도 좋지만..아니다. 사실 아직 이해하지 못하겠다. 역시 내가 만드는 게 훨씬 더 재미있는데 말이다.


메모리 누수가 얼마나 치명적인 버그인지 경험 있는 프로그래머이면 알거라 하는데 치명적이라는 게 어느 정도를 말하는 걸까? 해결하기 어려워서 치명적인 건지 프로그램 전체에 문제를 주기 때문에 치명적인 건지 아니면 프로그램과 연결된 다른 곳까지 영향을 줘서 치명적인 걸까?


문제가 발생했을 때 그 원인을 알 수 없으면 그것도 사실 치명적이다. 로그나 코드를 읽어서 해결이 되지 않는다면 거의 무슨 탐정처럼 단서를 찾아내야 하는 수도 있다. 


이 책은 누워서 읽어도 되는데 그러면 몇 가지 파트는 뛰어 넘게 된다. 몇 가지 주제들 (펄로 작성한 프로그램이라든지, N개 여왕 문제를 비트 계산으로 최적화 시킨 프로그램이라던지)은 어렵다.. 구체적인 알고리즘은 안하겠다며 동적 프로그래밍은 넘어가놓고 왜 갑자기 이렇게 어려운 것들을 보여주는건지 혼란스러웠다. 


알고리즘은 대부분 아는 거였지만 생활얘기를 곁들인 설명을 해주셔서 참 재미있었고, 종종 필자가 깨달은 점, 통찰 같은 것들을 읽는 게 즐거웠다. 

알고리즘을 배우는 건 정말 재밌다. 왜 그렇게 짰는지를 알면 대단하면서도 재밌다. 대게 알고리즘은 이유가 있어서 나온거라 생각했는데 그냥 이유 없이 나오는 알고리즘도 있었고, 결국 내게 필요하지 않은 알고리즘은 소용이 없다. 삶이 알고리즘이라 말한 저자처럼 어딘가에서 좋은 알고리즘을 찾을 수만 있다면 (그러기 위해 찾을 수 있는 시야를 넓히고 있는 것이겠지만) 좋지만 그렇지 않다면 내가 짤 수 밖에. 하지만 이것저것 보다보면 여러 가지 트릭이 생기는 것 같아서 바텀업, 탑다운 하면서 계속 찾아갈 수 밖에 없는 것 같다. 

댓글