오늘 리뷰하고 싶은 책은 코딩 알고리즘 책이다.
이 제목만 보았을 때는 알고리즘 전반에 관한 책이겠군 싶었는데, 수식어가 좀 특이하다.
'게임으로 익히는' 이라니...
어떻게 게임으로 익힐수 있을까 하는 호기심이 먼저 들었다.
그리고, 책의 표지에 나온 취업과 관련된 이야기들..
내가 시간날 때 종종 하던 codesignal과 같은 사이트를 이야기 하는 것인가 하는 생각이 들었는데.
책을 펼쳐보니 맞았다. 그래도 내가 접해보지 못했던 사이트를 기반으로 하였다.
codingame.com 이라는 사이트로 코딩 알고리즘을 익히고, 그것을 통해 어떻게 문제해결능력을 향상시킬 수 있는지에 대한 내용을 설명한 책이다.
표지에는 그림이 없이, 이 책에서 강조하고 싶은 포인트만 담았다.
현재는 괜찮겠지만, 나중에는 좀 올드해보이지 않을까 하는 우려가 된다.
초판발행 2019년 5월 6일자 따끈한 책이다.(5월 중순 이후에 배송받았으니..)
부제로 '취업, 이직, 승진 준비생들을 위한 알고리즘 기본 + 코딩 테스트 트레이닝 북' 이라고 되어있다.
코딩테스트 연습을 위해 사이트에서 문제풀이를 하려고 하는데, 가이드가 되어줄 책으로 보인다.
중요한 한마디가 있어서 발췌를 했다. "공부를 위한 코딩이 아닌 즐거움을 위한 코딩의 세계에 함께 빠져들기를 바랍니다."
그저 코딩게임이라는 사이트에서 문제풀이를 하는데, 이것을 함께 즐기고 싶은 마음에서 책을 쓰게 되었다는 것이다. 이 내용을 보니... 책 쓰는게 엄청나게 대단한 결심보다, 다른사람에게 무엇을 함께하고 나눠줄 수 있을까 하는 작은 마음에서 시작하는구나 하고 깨닫게 되었다.
책은 문제를 중심으로 해결하는 과정을 담았기 때문에, 한 문제를 해결할 때마다 이러한 방법으로 구성했다고 설명하고 있다.
1) 문제 설명
2) 어떻게 풀까 제시
3) 필요한 알고리즘을 소개
4) 풀어보는 과정에 대한 이야기(완전한 정답공개는 별도로 수록하여 스스로 풀 수 있도록 유도)
5) 더 생각해볼 내용이 있다면 이야기해 줌
이 중 특히 네번째 항목이 눈에 띄었는데, 이런 코딩 사이트가 그렇듯 정답이 하나가 아닌것에 유념한듯하다. 그래서 정답을 적기보다는, 각자의 해석에 따라 다른 답을 찾아가기를 원해서 이런 구성을 한 듯 한데, 처음에는 답답했지만, 해결하는 즐거움을 독자도 누릴 수 있도록 배려했다는 것을 느끼게 되었다.
목차는 크게 문제의 해결에 초점을 맞추었기 때문에, 당연히 문제 중심으로 되어있다.
챕터 구성은 다음과 같다.
CH 1. 알고리즘 시작하기
CH 2. 코딩게임 살펴보기
CH 3. THE DESCENT
CH 4. TEMPERATURES
CH 5. CHUCK NORRIS
CH 6. STOCK EXCHANGE LOSSES
CH 7. THERE IS NO SPOON
CH 8. WAR
CH 9. SCRABBLE
CH10. SHADOWS OF THE KNIGHT
CH11. THE GIFT
CH12. DWARFS STANDING ON THE SHOULDERS OF GIANTS
CH13.SKYNET REVOLUTION
CH14. TAN NETWORK
CH15. ROLLER COASTER
1부터는 초급, 6부터는 중급, 14부터는 고급문제로 분류하였다.
첫 문제 풀기 전에 알고리즘 문제 해결의 기본적인 요소에 대해 다뤘다.
BigO에 대한 설명이 중요한데, 사실 알고리즘을 이제 처음 다뤄본다면 이런 개념을 잘 모를 수 있기 때문이다.
실제로 이런 코딩 사이트에서는 example 중에 상당히 많은 element들, 혹은 큰 수를 input값으로 넣게 되어있는 경우도 있다.
그렇다보면 timeout이 발생할 수 있기 때문에, 발생하지 않도록 효율적인 알고리즘을 작성하는 것이 중요하다.
BigO의 cost가 어떻게 되는지, 생각하면서 코딩할 수 있어야 한다.
첫 문제에 대해서 해결하다보니 매우 답이 단순하다. 아마도 다른 해결 방법이라 해도 크게 다르지는 않을 것이다.
아마도 너무 어려워서 지레 겁먹지 않도록 도움을 주는 문제인듯 보인다.
하지만, 이러한 쉬운 문제라고 설명을 대충하지 않고, 친절하게 설명한 것이 엿보인다.(약 10페이지를 할애!)
사실 순서도는 알고리즘 문제를 해결하는 과정에서 매우 중요하다. 앞서 설명한 매우 쉬운 문제를 제외하고서, 어려운 문제일수록 이러한 순서도를 작성하지 않으면 코드가 산으로 갈 가능성이 높다. 나 역시도 알고리즘코딩 사이트에서 문제를 해결하는 과정에서, 혹은 업무에서 알고리즘을 반영하는 과정에서 반드시 순서도를 작성한다. 그러면 생각하고난 뒤에 코드 작성시에는 그렇게 많은 생각이 필요없이 술술 작성할 수 있기 때문이다.
이러한 연습이 실무에서도 도움이 되는 것을 알기 때문에 필요한 과정이라는데에 나 역시 동의한다.
부록으로 각 현업 개발자들의 인터뷰 내용을 담았다. 주로 채용시의 프로세스, 코딩테스트의 중요도 등에 대해 인터뷰를 하였다. 이 문제를 풀어가는게 얼마나 중요한지 알게 하려는 것이다. 볼펜을 팔려면, 펜이 없는 사람에게 사인을 요청한다는 이야기처럼, 이 책을 읽어야 할 당위성을 이 책의 부록을 통해 설명하였다. 대단하다!
실제로도 나 역시 중요하다고 생각하던터라 이 인터뷰 내용들이 그저 허울좋은 이야기가 아닌것임을 인정한다.
여러 코딩 사이트가 있으나, 이 책은 코딩게임이라는 사이트로, 게임에 좀 더 포커스를 맞춘 사이트이다.
그래서 재밌는것은 레벨이 있다(물론 다른 사이트도 레벨이 존재하긴 한다.)
그래서 이 책을 통해 어느정도 학습 능력을 키운 뒤, 이 밖에도 많은 문제를 접하면서 레벨을 올리고, 그것을 향후에 취업이나 이직시 언급하는것도 능력을 어필하는 괜찮은 방법이 될 수 있겠다는 생각이 들었다.
어차피 아이디를 공개하면 그 당사자의 코드들을 채용담당자가 조회할 수 있으니, 깃헙 못지않은 코딩 능력을 알 수 있는 또 하나의 척도가 되지 않을까 싶다. 또한 게임에 대해서만 해당될 것 같다고 생각할 수 있으나, 게임에 국한되지는 않는다. 게임이라는것은 하나의 material일 뿐, 그 안에서 문제를 해결하는 능력이 중요한 것이기 때문이다. 문제 또한 영어로 되어있기 때문에, 영어로 된 문제를 읽고 해결하는 능력 또한 알 수 있는 좋은 척도가 된다고 생각한다.
사실 이런 코딩사이트를 주제로 책을 본 것은 처음인 것 같다. 신선한 소재라고 생각이 들어서, 흥미로웠다.
이 책을 추천하는 사람은 다음과 같다.
- 취업, 이직, 승진을 앞두고 있는 개발자
- 알고리즘 코딩사이트에 흥미를 두고싶은 개발자 혹은 학생 등
장점으로는
- 새로운 소재를 이용한 책
- 컬러로 구성하여 눈이 즐거움
- 문제 풀이 과정을 의식의 흐름에 맞추어 진행
아쉬운 점으로는
- 표지디자인의 단순함
- 구성이 설명식으로 되어있어 조금은 정신없는 느낌
나는 이 책을 다음과 같이 평가해 본다.
- 가격: 9/10
- 내용: 8/10
- 디자인: 7/10
- 구성: 7/10
가격: 22,000원
전체 페이지: 311페이지
※ 이 리뷰는 '한빛미디어'로부터 도서를 제공받아 작성하였습니다.
'[Review] > Book' 카테고리의 다른 글
[도서 리뷰] 모던웹을 위한 HTML5+CSS3 바이블 (0) | 2019.07.12 |
---|---|
[도서 리뷰] 혼자 공부하는 파이썬 (0) | 2019.06.27 |
[도서 리뷰] 실습과 그림으로 배우는 리눅스 구조 (0) | 2019.04.14 |
[도서 리뷰] 프로그래머를 위한 기초 해석학 (0) | 2019.03.01 |
[도서 리뷰] 구글스토리 (0) | 2019.02.12 |
댓글