-
-
게임으로 익히는 코딩 알고리즘 - 취업, 이직, 승진 준비생들을 위한 알고리즘 기본 + 코딩 테스트 트레이닝 북, 2019년 세종도서 학술부문 선정
김영기 지음 / 한빛미디어 / 2019년 5월
평점 :
우리가 일반적으로 배우는 알고리즘은 사실 계륵과 같은 존재라 할 수도 있다. 실제 프로그래밍에 있어, 꼭 사용된다고 말하긴 힘들고, 이미 많은 것들이 사용하기 편하게 라이브러리 형태로 제공되어 힘들여 코딩할 필요가 없기 때문이다.
그런데도 학교 수업이나 회사 취업에서 알고리즘을 무척 중요시하는 것은 개발자의 필수 능력이라 할 수 있는 문제 분석 능력을 알고리즘을 통해 알아볼 수 있어 서다.
실제 프로그램 현장에서는 책에는 전혀 나오지 않는 아주 다양한 문제들을 접하게 되는데, 대부분 개발자 혼자서 해결해야 하는 경우가 많다.
그렇기 때문에 각종 프로그램 개발사들은 사원을 뽑을 때, 어떤 문제를 스스로 해결할 수 있는 능력이 있는지 없는지를 판단하기 위한 방법으로 알고리즘 테스트를 하는 것이다.
그런데 솔직히 알고리즘 공부는 재미없고 지루하다. 특히 책 잘못 선택하면, 알고리즘이란 단어만 들어도 알레르기가 생길 거 같은 거부감까지 생긴다. 속도와 효율을 따지는 알고리즘인데, 알고리즘 공부는 정반대인 경우가 많다.
하지만 '게임으로 익히는 코딩 알고리즘'은 좀 다르다. 사전식 알고리즘 책이 절대 아니다. 이 책은 재미도 있고, 진도도 빠르게 나간다. 코딩게임 www.codingame.com 사이트에 있는 알고리즘 문제를 통해 파이썬도 배우고, 주요 알고리즘을 체계적으로 익힐 수 있는 책이다.
워낙 알고리즘 책이 재미없는 게 많다 보니, 처음엔 큰 기대하지 않고 봤는데, 이 책은 이상하게도 한번 책을 들면, 빨려 들어가는 느낌으로 계속 읽게 되었다. 그만큼 재미적 요소를 가진 책인 것이다.
우선 코딩게임 사이트에 있는 알고리즘 문제를 주제로 자세한 설명을 하고 있다 보니, 알고리즘을 배운다는 느낌보다는 게임 미션을 수행하는 기분이 더 든다. 학습 부담이 그만큼 적고, 편한 마음으로 책을 볼 수 있다는 것이다.
그리고 알고리즘 문제를 풀고 바로 정답을 알려주는 것이 아니라, 떠오르는 데로 해결 방법을 1차적으로 코딩을 해본 뒤, 실행시켜보고, 문제가 발생되면, 무엇을 잘못했는지 확인하고, 다시 수정해서 문제를 해결하는 과정이 일반 프로그램 개발 과정과 같다. 게다가 문제 해결로 끝나는 것이 아니라, 효율이나 더 좋은 방법을 고민하는 코드 최적화 과정이 있어, 더욱 실제 코딩 과정과 아주 유사하다 말할 수 있다.
책에는 이러한 과정을 문제 설명, 어떻게 풀까요?, 필요한 알고리즘은?, 풀어 봅시다, 더 생각해 봅시다, 5 단계로 나눠 구성하고 있다.
보통은 알고리즘을 공부하다 보면, 이거 어따 써먹나 생각하게 되는데, 이 책에는 최단 거리 우주선 공격이나, 주식 팔기, 카드게임, 폭탄찾기, 롤러코스터 매출 계산과 같이 게임이나 실제로도 사용될 가능성이 있는 현실성 있는 문제들이 나와서 실제 개발 과제를 받은 것과 같은 느낌을 받게 한다. 아직 개발을 경험하지 않은 초보 프로그래머에게는 아주 좋은 현장 체험의 시간이 될 수 있다.
책 내용은 뒤로 갈수록 어렵다. 그만큼 설명도 더 많아지고, 여러 가지로 코딩에 대한 고민도 많이 한다. 각 과정별 코딩 결과는 부록에 모여 있는데, 코드를 다 적지는 않고, 일부는 글로 풀어써 놨다. 무조건 베껴 쓰지 말고, 조금이라도 생각하라는 저자의 노파심이 엿보이는 부분이다.
부록에 또 한가지 있는 건, 개발사에서 일하거나 회사를 운영하는 개발자 선배들의 취업 조언이 담겨 있는데, 이것을 읽어보면, 왜 알고리즘을 배우고 익혀야 하는지, 어떻게 쓰이게 될지, 취업 시 어떤 테스트를 하는지, 확실히 알게 될 것이다. 알고리즘 책에서 취업 얘기를 보게 되리라고는 전혀 예상 못했는데, 프로그래머를 꿈꾸는 취업 준비생에게 입사시험이나 면접 준비에 딱 좋은 내용이다.
'게임으로 익히는 코딩 알고리즘' 참 재미있게 봤다. 알고리즘 책을 가끔씩 보고 있는데, 본 것 중에서 가장 실전적인 책이라 생각한다. 코딩 시, 문제 해결 능력을 길러주는 좋은 책이다. 코딩에 관심 있거나,, 예비 개발자, 취준생에게 추천하고 싶은 책이다.