벌써 25년 전이네요. 그때 대학생일 때... 우연히 접하게 된 Robert Sedgewick 교수의 "Algorithms in C" 책에 빠져 한동안 헤어나오질 못했습니다. 지금도 헤어져 누더기가 된 이 책이 집에 있을텐데, 구석에 쳐박혀 있어 찾질 못하겠군요.
심지어 군대에 있을때도 이 책을 들고 들어가 짬짬이 보았던 걸로 기억납니다. 왜 그렇게 알고리즘에 천착했을까라고 생각해보니... 그것은 그냥 지적 호기심이었던 같습니다.
C나 C++과 같은 프로그래밍 언어의 테크닉은 책으로 경험으로 익힐 수 있지만, Heap Sort니, Red-Black Tree니, Backtracking이니 하는 용어들은 마치 블랙박스처럼 속을 들여다 볼수도 이해할 수도 없는 것들 이었습니다. 당시에 꽤나 프로그래밍을 한다고 알려진 저로서는 자존심에 큰 상처를 주는 것들이었습니다.
그래서 컴퓨터공학과도 아닌 제가 그 과의 필수 과목인 알고리즘과 자료구조 등의 과목을 수강했더랬습니다. 그런데 사실 교수님으로부터 배운 것 보다는 이 책을 통해 배운게 더 많은 것 같습니다.
지적호기심에 대한 추억으로 남아있는 이 알고리즘을 다시 꺼내어 볼려고 구글링을 좀 해보니... 이제 이게 어린 학생들의 입시를 위한 하나의 방편으로, 소프트웨어 분야 대기업 혹은 외국기업의 입사 시험을 위한 것으로 약간은 세속화(?) 되었더군요. 더 이상 지적호기심을 충족시키기 위한 순수한 열정을 기대하기는 어렵게 된 것 같습니다.
TopCoder니 ACM-ICPC니 하는 등의 알고리즘 풀이 능력을 계량화 하고자 하는 노력들도 보이던데... 어느 정도는 그럴 수 있을지 모르나, 이 역시 문제 은행의 한계로 점수만 높아지고 실력은 하향하는 이상한 귀결로 가지 않을까 하는 걱정이 되기도 합니다. 이건 마치 "퍼즐을 잘 푸는 사람일 수록 업무를 더 잘 할까?"라는 의문과 같습니다.
저는 IT분야에서 이제 한물 간 세대에 속하고, 젊은 친구들의 팽팽 돌아가는 두뇌를 따라갈 수는 없지만... 다시 또 알고리즘을 파고 들려고 합니다. 현업은 알고리즘 퀴즈와 달리 문제가 명쾌하지도 단순하지도 않습니다. 주어진 사양에서 우선 돌아가는 코드를 만들어 일정을 맞추고, 이후 그것을 최적화 해야 하며, 다른 사람이 수정할 수 있도록 읽기 쉬운 코드를 만드는 것이 더 중요합니다.
이런 관점에서 알고리즘 분야를 할아버지가 손자에게 옛날 이야기를 들려주듯 되도록 재미있게 풀어보고자 하는게 지금 생각입니다. 물론 이 생각이 흐지부지 될지도 모릅니다. 때때로 여유가 날 때마다 들여다보고 글로 정리해 보도록 하겠습니다.
피드 구독하기:
댓글 (Atom)
인기글
-
언젠가부터 내 스마트폰에서 용량이 부족 하다면서 계속 알림이 떴다. 저가폰이라 내부저장소가 16GB 밖에 되지 않았지만, 추가로 마이크로SD 카드 16GB를 달았는데도 그렇다. 안드로이드가 앱을 설치하고 필요한 데이터를 저장하는 곳은 특별히 지정하...
-
사람들은 메이드인 차이나라 그러면 업신여기는 경향이 있지만, 요즘 웬만한 제조물품들은 중국도 꽤나 잘 만든다. 아니 샤오미나 팍스콘을 보면 꽤나 잘 만드는 정도가 아니라 아주 잘 만든다. 중국이 세계의 공장이 되면서 미국도 그렇고, 우리나라도 그렇...
-
나는 무려 10년이 된 Java 프로젝트를 여러개 관리하고 있는데, Netbeans와 Ant 기반의 개발/빌드 환경을 사용한다. Netbeans는 Sun이 Oracle로 넘어간 뒤에 Apache 재단으로 넘어가면서 개발 동력이 많이 떨어져 있다...
댓글 없음:
댓글 쓰기