읽기 전에

Python coding dojang title page

▲ 깔끔한 표지(천장에 형광등 때문에 그림자가 생겼다)

도대체 어떤 책인가

초보자들을 대상으로 하는 책인 만큼 꼼꼼한 예제와 자세한 설명을 통해 설명하려고 하는 것을 독자가 이해할 수 있도록 돕고있다. 다만 그런 이유로 프로그래밍에 익숙한 사람에게는 일부 내용이 뻔한 이야기로 다가올 수 있다. 특히 C언어로부터 파생된 언어들이나, 파이썬 코드에 익숙한 사람에게는 더욱 앞부분이 지루하게 다가올 수 있기 때문에 가능하면 초반부는 적당히 훑고 지나가고, 중반 이후부터 읽는 것이 도움이 될것으로 생각된다.

읽기 전 감상은

표지에 있는 내용이 몹시 공감된다. “프로그래밍은 공부가 아닙니다. 연습입니다.” 이 말은 프로그래밍을 이제 배우기 시작하거나, 프로그래밍을 배우기 어려워 하는 사람들에게 나도 곧잘 하는 말이다. 사실 이 문구가 너무 맘에들어서 이 책을 선택한 것이나 다름없었다. 다만 책이 너무너무 두꺼워서 끝까지 볼 수 있을까 하는 걱정이 되기는 했고, 이 책을 다른 사람에게 추천하더라도 책의 두께가 두꺼워 접근성이 떨어질 수 있다는 걱정이 되었다.


읽는 중

Python study guidline

▲ 책 앞부분에 8주 완성 형식으로 공부 진도를 소개하고있다

책은 어떻게 구성되어있는가

이 책은 실전예제까지 포함해서 총 46개의 챕터와 1개의 부록 챕터로 구성되어있다. 각 챕터들은 핵심요약 이라고 하는 단위로 묶인다. 예를 들면 챕터 13, 14, 15는 if, elif, else로 묶이는 조건분기에 대한 설명과 예제, 퀴즈를 설명하고 챕터 15 뒤에는 핵심정리와 QnA를 통해 챕터 13, 14, 15의 내용을 요약정리하고 많은 사람들이 해당 문법에 대해 공부하면서 던지는 질문들에 대답하는 형식으로 더 깊은 내용을 설명하고 있다. 각 챕터들은 키워드에 대한 설명과 문법 구조, 그리고 그에 대한 예제코드를 담고있으며 챕터 마지막에는 해당 챕터에 나왔던 내용에 대한 퀴즈와 챕터에서 설명하는 문법을 이용해 풀 수 있는 연습문제, 심사문제를 통해 독자가 얼마나 잘 이해했는지 스스로 확인할 수 있게 하고있다.

어떻게 읽었는가

책 내용만으로도 설명이 충분하지만, 아무리 설명이 잘 되있더라도 독자들은 그 내용을 잘 이해했는지 스스로 점검할 수 있어야 한다. 챕터가 끝날때 마다 추가되어있는 퀴즈, 연습문제, 심사문제가 그러한 점검을 해볼 수 있게 해주지만, 문제-답 형식으로 독자가 직접 답을 확인해야 한다. 책이 내놓은 정답과는 다른 해답을 제시해도 괜찮은지, 틀렸다면 어디가 틀렸는지 다양하게 확인하기가 힘들다. 또한 책 자체가 두꺼워서 책을 펴보는것도 부담이 있었다. 그럴 때는 파이썬 코딩도장에서 제공되는 강좌를 함께 읽었다. 동영상 강의가 같이 있어서 텍스트만 읽는 것 보다 지루하지도 않고 설명도 자세해서 내용을 이해하는데 도움이 많이 되었다. 거기다 연습문제, 심사문제는 홈페이지에서 풀이를 점검해주고, 게시판에 질문을 쓰면 답변도 달리기 때문에 혼자 어려워하고 혼자 고민하고있지 않다는 공감을 얻는것도 공부에 도움이 되었다. 이 웹사이트를 이용하는 방법을 챕터 3에서도 이미 잘 설명하고 있으니 참고해서 학습하면 좋을 것 같다.

만약에 독자가 파이썬 문법에 어느정도 익숙한 사람이라면 맨 마지막에 있는 부록 챕터를 보는것도 도움이 될 것이다. 앞에서 설명하지 않았던 bit, byte에 대한 설명과 각종 비트연산자, 그리고 각 연산자의 우선순위 등등 앞에서 설명하지 않던 내용들이 수록되어있었다. 개인적으로 도움이 될것 같다고 생각했던 내용은 내장 함수에 대한 설명들이었다. 대부분은 기본 문법만으로 충분히 구현할 수 있는 것들이지만 어떤 함수들은 대체할 수 없는 것들도 있다. 그 뒤에도 동적 클래스와 메타 클래스, asyncio를 활용한 비동기 함수 작성 등의 고급 문법 활용법이 소개되어있어서 참고할만 하다.


읽은 뒤

Teaching python

무엇을 얻었는가

이 책을 읽은 뒤로 파이썬 문법에서 잘 알지 못했던 것들이나, 사용하면서도 잘 알지 못했던 문법 구조가 왜 그렇게 작동하는지, 어떤 키워드가 어떤 함수를 호출하는지 등을 이해할 수 있었다. 기초적인 내용을 건너뛰고 파이썬 문법을 응용하는 방법에 대해 소개하거나, 다른 언어와 연계해서 고성능을 내거나 저수준에서 메모리를 제어하는 방법등을 소개하는 책들을 먼저봤을 때는 좀처럼 이해하지 못했던 개념들을 이해할 수 있었다.

이 책은 또한 책만으로는 내용이 반쪽짜리일 수 밖에 없다. 이 책에 있는 내용들이 먼저 연재되었던 웹사이트에는 동영상 자료로 해당 챕터에서 하려는 설명을 제공하고 있고, 퀴즈와 코딩 테스트는 책에서는 정답을 확인해야 하지만 웹사이트에서는 실시간으로 코드를 채점해준다. 실제로 그렇게 했을 때 학습 효율이 좀 더 좋았음을 알 수 있었다.

무엇을 느꼈는가

나는 어떤 언어를 익힐 때 최소한 2~3권의 책을 읽을 것을 권장하는 편이다. 그러나 정작 내가 파이썬을 익힐 때는 거의 공식홈페이지의 문서와 구글 검색을 통해 나오는 코드단락과 몇가지 트릭에 의존하며 코드를 익혔다. 그렇게 야매로 프로그래밍 언어를 익힌 뒤에 이 책을 읽어보니 이러한 개념서적이 얼마나 중요한지 더 강하게 깨달을 수 있었다. 이 책은 파이썬만의 특징을 강조하며 문법을 나열해놓은 책도 아니고, 철저하게 파이썬 초심자를 타깃으로 하고있는 책이라는 인상을 받았지만, 만약 적당히 문법 일부를 익혀서 파이썬 코드를 작성하는데 조금이라도 코드에 부자연스러움을 느끼는 사람이라면 한번쯤 독파해볼 만한 가치가 있는 책이다.

물론 이 책에도 아쉬운점이 전혀 없는것은 아닌게, 문법을 어떻게든 빠짐없이 설명하려는 시도 탓인지 책이 너무 두꺼웠고, 파이썬이라는 언어가 갖는 특징과 매력, 패러다임과 철학 등이 제대로 소개되지 않아서 그냥 흔한 언어처럼 설명되고 있었다. 수많은 언어들 중에서 하필 파이썬이 주목받고 널리 사용되기 시작해 전통적으로 인기있던 언어들을 밀어낼 수 있었던 이유가 제대로 소개되지 못해 아쉬웠다. 파이썬에 막 입문해 이 책을 읽은 사람들에게 그러한 새로운 시야를 갖게 해줄 수 있는 책이었다면 더 좋았을텐데 하는 생각을 했다.

어떤 사람들에게 추천할 수 있을까

이 책은 프로그래밍에 아주 문외한 사람이 처음부터 꼼꼼하게 잘 읽으면 프로그래밍에 대한 입문서적으로는 썩 괜찮다고 생각한다. 만약 다른 프로그래밍 언어를 접해서 프로그래밍에 익숙한 사람이라면 재미없게 느낄 수 있겠지만 한번쯤 파이썬에 대해 잘 알기위해서 처음부터 끝까지 읽어볼만한 책이다. 만약 나처럼 파이썬을 드문드문 익히면서 다른 언어로 프로그래밍하듯이 파이썬을 사용해온 사람이라면 파이썬이라는 언어에 대해서 전반적으로 살펴볼 겸 해서 한번 훑어보기 좋을것이라고 생각한다. 결국 파이썬 언어가 모국어처럼 자연스럽고 익숙한 사람이 아니라면 읽어보라고 추천하고 싶다.


This site uses Just the Docs, a documentation theme for Jekyll.