더북(TheBook)

어려운 알고리즘 문제 해결해보기

이쯤이면 공부한 프로그래밍 언어를 꽤 편하게 쓸 수 있다. 단순히 아는 수준을 넘어서 여러 애플리케이션에 활용해본 경험도 많이 쌓였다. 특정 기술이나 플랫폼에 해당 기술을 적용해보기도 했다. 그 기술로 기초적인 애플리케이션을 만드는 정도의 작업은 편하게 할 수 있다.

그래도 그 프로그래밍 언어를 통달했다는 느낌은 받지 못할 것이다. 걱정 마라. 그 또한 정상이다. 나도 C++를 배운 초창기에는 C++의 모든 것을 배우고 애플리케이션도 몇 개나 완성하고 C++ 전문 개발자로 일하면서도 그 언어를 완벽히 통달했다고 생각하지 않았다. C++ 개발자로서의 능력이 괜찮은 정도지 훌륭하다고는 느끼지 못했다. C++ 개발 능력을 발전시키고 싶은 마음이 굴뚝같았지만 방법을 몰랐다.

그러던 중 톱코더라는 코딩 경쟁 사이트를 알게 되었다blog. 이 사이트는 매주 새로운 프로그래밍 도전 과제를 제시한다. 누구나 이곳에 와서 다른 프로그래머와 경쟁하며 알고리즘 문제를 풀 수 있다. 문제는 꽤 어려웠다. 처음에는 내 실력이 형편없었다. 가장 쉬운 문제도 풀지 못했다. 다른 이들이 제시한 답을 아무리 살펴보아도 어떻게 그런 해결책을 냈는지는커녕 그 코드가 어떻게 작동하는지조차 이해하지 못했다. 다른 이들은 내가 상상하지도 못한 방법으로 C++를 사용했다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.