-
-
TopCoder 탑코더 알고리즘 트레이닝
타카하시 나오히로 지음, 윤인성 옮김 / 한빛미디어 / 2013년 11월
평점 :
절판
개발과 알고리즘의 관계가 얼마나 있을까 고민을 해보면서 알고리즘은 수학의 미적분처럼 깊이 들어가게 되었을 때 하는 것이 아닌가 하면서 프로그래밍 공부와 알고리즘 공부를 나누어 본다면 보통 프로그래밍 공부를 더해야지 하는 생각을 하는 사람들을 보게 되었다.
수학의 미적분처럼 알고리즘도 로직이 복잡하기에 머리 쓰기를 싫어하는 사람들도 있었고 개발자가 되고 싶고 처음 하는 초보들이 다가가기 쉽지 않아 했었다. 하지만 미적분이나 알고리즘 같은 것도 한번 어떻게 풀어나가는지를 알게 되면 이게 그렇게 어려운 것이 아니구나라는 생각이 들게 된다.
어떤 일이든지 처음 하는 것이 어렵기 마련인데 익숙해지고 계속 사용을 하므로 효율적으로 사용을 할 수 있게 된다. 개발자가 되는 과정 중에서 먼저 개발자의 길을 걸어온 사람들이나 나와 비슷한 입장의 개발자들과 이야기를 해보면서 프로그램이 어떻게 돌아가는지 동작원리는 어떻게 되는지 등 가장 먼저 해야 하는 개발환경 갖추기와 기획부터 개발까지 프로그래밍 언어에 대한 범위가 웹프로그램을 만들기 위해서도 html, css, javascript, jsp, php, asp 등 알아야 하는 언어들도 적지 않게 많이 있다.
이로 인해서 알고리즘을 생각하지도 못해보고 여러 가지 언어들만 보는 그러한 문제점이 생겨나기도 하였다. 저도 웹 프로그래밍을 하고 있는 중에 여러 가지 언어들을 접해보면서 클라이언트 언어와 서버 언어 등을 배우고 같은 길을 걸어가는 사람들과도 이야기를 하게 되는데 알고리즘에 신경 쓰기보다 프로그래밍에 더 신경을 쓰는 측에 더 가까웠고 정말 좋은 개발자로서 좋은 프로그램을 만들고자 한다면 프로그램에 대한 불필요한 소스들은 줄여가고 최고의 성능을 만들 수 있도록 로직을 짤 수 있어야 한다고 생각한다.
공부에 대해서는 끝이 없다고 하는데 좋은 개발자가 되기 위해서는 알고리즘은 필수라고 생각하고 있었다. 하지만 좀처럼 시간을 내지 못하고 있었지만 개발을 처음 하는 초보더라도 반복문, 조건문, 배열을 잘 이해하고 있다면 탑코더의 알고리즘 문제를 풀어보는 것이 좋다고 한다.
알고리즘을 프로그래밍을 마스터 하고 해야한다는 생각은 잘못된 생각인 것 같았다. 물론 마스터 하고 알고리즘을 하는 것도 좋지만 마스터를 한다고 해도 알고리즘에 대해 생각하고 풀어보는 시간도 많이 필요하기에 자꾸 접해 보는 것이 중요하다고 생각한다.
알고리즘에 대한 중요성은 머릿속에 있었지만 탑코더 같은 사이트를 활용하지 않았었고 프로그래밍 공부 먼저하자가 우선이었었지만 초보 일 때 알고리즘을 해봄으로써 처음부터 잘 풀어지지는 않겠지만 문제를 해결하는 능력을 키워가므로 실력이 향상된 다는 것을 명심해야겠다는 생각을 하게 되었고 아직 대회나 탑코더 커뮤니티 같은 사이트를 잘 이용하고 활용할 줄 몰랐었지만 작품위주대회, 단시간 알고리즘 대회, 장시간 알고리즘 대회 등에도 도전을 해보면서 기초를 튼튼하게 하면서 프로그래밍 실력을 향상시켜야겠다고 생각나게 해준 책이었다.