Page 41 -
P. 41
● 트리
● 해시
● 세트
데이터 구조, 알고리즘을 제대로 이해하면 어려운 프로그래밍 문제를 쉽고 명쾌하게
풀 수 있다.
나는 프로그래밍을 거의 독학으로 배웠기 때문에 입문한 초기에는 데이
터 구조와 알고리즘에 대해 잘 몰랐다. 탑코더 topCoder blog 사이트에서 다른
이들과 경쟁해보기 전까지는 이런 부분이 중요하다는 사실도 몰랐다. 탑코
더에서는 알고리즘과 데이터 구조를 잘 알면 상당한 경쟁 우위를 점할 수
있다. 알고리즘과 데이터 구조에 관한 지식을 익혀서 문제 해결에 활용하기
시작하자 전에는 어떻게 풀어야 할지 감도 오지 않았던 문제를 아주 쉽고
재미있게 풀 수 있었다. 그런 경험을 통해 진짜 프로그래밍 세계에서 이러
한 기술이 얼마나 유용한지 금세 깨달았다.
사실 나는 이 분야가 소프트웨어 개발에서 가장 재미있는 영역이라고 생각한다. 아
주 어려운 문제를 풀어가는 과정에서 데이터 구조와 알고리즘을 활용해 깔
끔하고 명쾌한 해결책을 제시할 때 큰 보람을 느낀다.
게일 라크만 맥다월 Gayle Laakmann McDowell이 쓴 탁월한 책인 『코딩 인터뷰
완전 분석 Cracking the Coding Interview』 blog 은 이에 관한 최고의 참고 도서다.
적어도 이 글을 쓰고 있는 현 시점에서는 그렇다. 이 책은 알고리즘과 데이
터 구조에 대해 알아야 할 거의 모든 것을 다룬다. 배우기 어려운 부분이긴
하지만 고생할 만한 가치가 있다. 이 분야에 대한 소프트웨어 개발자 대다수의 이
해 수준은 한심할 정도로 낮다. 마이크로소프트나 구글 같은 회사의 면접을 통
과하고 싶다면 이 영역을 반드시 잘 알아야 한다.
3장 당신이 배워야 하는 기술 057
커리어스킬_07.indd 57 2019-03-25 오후 5:37:31