먼저 알고리즘을 공부하려고 마음먹은 계기는 내가 만드는 프로그램들을 유지 보수하면서부터 시작됐다. 나는 전형적인 P이기 때문에 개발을 할 때도 큰 계획 없이 그때그때 구현하고 싶은 기능을 빠르고 생각 없이 구현했다. 이런 식으로 생각 없이 만든 코드가 늘다 보니 여러 문제가 생기게 되었는데...
별 생각 없이 코드를 짜다 보면 코드의 효율성과 속도는 딱히 신경 쓰지 않고 진행하게 된다. 처음에는 별문제가 없어 보이지만 프로젝트를 완성하고 보면 X 같은 최적화에 엄청난 속도를 보여주는 프로그램을 만날 수 있었다.
아무 생각없이 코드를 짜는 나
아무 생각 없이 코드를 작성하다 보니 이 코드가 왜 작동하는지도 모른 채 그저 작동하는 코드만을 만들어냈다. 이 코드가 왜 작동하는지를 모르는 경우가 많았고 어려운 기능을 구현할 때면 바로 관련 라이브러리를 찾아보는 거나 Stack overflow에서Stackoverflow에서 복사해 붙여오는 것이 일상이 되어서 이 코드가 왜 동작하는지 전혀 알지 못하였다.물론 왜 동작하지 않는지도 몰랐다..ㅎ
아, 너 개발자라고? 그 말은 너 스택오버플로에서 코드 배껴쓴다는뜻이지? 너 지금 우리 업계사람들 전체를 모욕하고 있다는거 아냐? 그치만 맞아.ㅡㅡ
첫 프로젝트를 완성하고 몇 개월 후 프로그램에서 에러가 발생하여 버그를 고쳐야 하는 일이 있었다. 몇 개월 전에 작성한 나의 코드를 보니 정말 한심하기 그지없었다. 프로젝트 구조는 엉망으로 되어있고 코드도 어디 블로그에서 복사해온 코드들이 난잡하게 흩어져있어 내가 작성한 코드임에도 불구하고 단 하나도 알아볼 수가 없었다. 결국 에러의 원인을 찾아내어 고치긴 했지만 다신 그 프로젝트에 손도 대기 싫을 정도로 유지보수가 힘들었다.
이러한 이유로 인하여 나는 내 코딩 실력의 심각성을 느끼게 되었고 이 문제를 해결하기 위해 여러 방법을 찾던 중 여러 책을 발견하였다.
물론 중학교 수학도 다 못 배운 나한텐 더럽게 어렵다.
이 책들을 찾고 나서 바로 2권 모두 구매하고 싶었지만 Introduction to Algorithms은 무려 47,000씩이나 하는 비싼 책이였기 때문에 Introduction to Algorithms만 먼저 구매하기로 했다.
열심히 하렴