2018. 8. 30. 09:20 독서 영역/길벗
728x90


<알고리즘 산책 : 수학에서 제네릭 프로그래밍까지>



이 책을 리뷰하게 된 계기는 프로그래밍을 위한 알고리즘, 그리고 그 근간이 되는 수학에

대하여 그동안 놓았던 정신을 붙잡고 다시 도전해보고 싶어서였다.



책 표지 뒷면에 지은이와 옮긴이의 정보가 씌여있던 밑에 이런말이 적혀있다.


----------------------------------

좋은 프로그래머가 되려면 제네릭 프로그래밍의 원리를 이해해야 한다.

제네릭 프로그래밍의 원리를 이해하려면 추상화를 이해해야 한다.

추상화를 이해하려면 그 바탕을 이루는 수학을 이해해야 한다.

---------------------------------- 


이 내용을 읽고 나니 두려움이 앞선다.

왜냐하면 나는 수학이 싫진 않았지만 나의 발목을 잡고 있는 어려운 문제였기 때문이다.

책을 훑어보니 역시 놓았던 정신은 쉽게 돌아오지 않나보다.

수학적 기초가 부족하다면 내 생각에는 내용을 이해하는 것 뿐만 아니라

수식을 읽는것조차 쉽지 않을 것 같다.

(그래도 다행히 부록A["표기법"]을 참고하여 이해하는데 도움을 얻을 수 있었다)


자 그래도 이 책을 보면서 내가 느끼는 장점, 단점을 적어보겠다.

내가 느꼈던 부분이라 누군가에는 장점이 될 수 도 있지만 단점이 될 수 도 있다.


<장점>

알고리즘에 대하여 역사적 관점과 함께 설명하는 부분

알고리즘마다 발경 배경 및 해당 인물의 대한 설명을 기록하여 단순히 수식적인 내용만 확인하는 것이 아니라 지루하지 않고 오히려 흥미로웠다. 오래된 알고리즘 책들에도 간단하게는 적혀있었던것 같긴한데 ... 다시봐서 그런지 새롭게 느껴졌다.



     






















결론 페이지와 부록 페이지들의 도움

이 책은 특이하게도 "14장 결론"이라는 챕터를 별도로 두어 저자가 설명했던 내용들을 다시금 2페이지 안에 정리하고 있다. 이 페이지를 보면서 복잡했던 생각들을 정리하는데 도움이 된 것 같다. 그리고 그 이후 나오는 부록 페이지들 역시 이 책을 읽는데 있어서 큰 도움이 되었다. 



<단점>

수학적 기초가 부족하다면 어렵게 느껴지는 부분

이건 어쩔 수 없을 것 같다... 나만 그렇게 느꼈을 것 같기도 하다. 알고리즘을 프로그래밍 언어로 표현해놓은 것을 이해하는데는 어렵지 않았지만 수식이나 개념을 이해하는데 어려움을 느꼈다. 그래서 부록에 추가로 정리해줬던 용어나 표기법, 증명법등의 내용이 조금 더 확장되었으면 하는 바람도 있다. 



정리해보면

사실상 이런 책은 한번 읽었다고 끝~ 으로 생각하는 책은 아니라고 생각한다.

그리고 알고리즘을 달달 외우려고 보려했던 책도 아니고 문제 해결 과정에서 나타나는 사고에 대하여 좀 더 확장하고 싶었던 욕구가 있어서 보려했던 책이다. 

그런면에서만 본다면 이 책은 내 의도를 만족시키는 그런 책이다.

일단 잠시 덮어두지만 조만간 다시 꺼내보면서 찬찬히 음미해볼 생각이다.


728x90
posted by acedon