책을 읽기 시작하며
이번에 리뷰하고자 하는 책은 그 유명한…
Head First 시리즈 중 파이썬을 다루는, Head First Python(개정판) 이다.
책 표지에 개정판/파이썬3 라고 적혀있는 것으로 보아, 2011년도에 초판 발행되었던 책은 파이썬2를 기준으로 서술하고 있을 것으로 보인다.(구판을 읽어보지 않아서 모르겠다…)
다만… 파이썬3가 본 책의 구판(2011년 초판발행)보다 일찍 나온 것으로 기억되는데 그럼에도 파이썬2를 서술했던 것은 아마 파이썬3가 2와의 호환성 문제로 인해 정착되는데 오랜 시간이 걸렸기 때문일 것으로 생각된다.
구판이 496쪽으로 구성된데 비해, 개정판은 624쪽으로 100쪽 이상의 페이지가 추가되었다. 다만 책에서 구판과 비교해 개정된 내용이 무엇인지 비교해주는 부분이 없는 것은 다소 아쉽다. python2 에서 3로 넘어간 것만으로 내용이 추가된 것일까???
대상 독자
분명, 입문자들에게도 친절한 책이다. 별도의 부록을 통해 파이썬3를 다운로드 받을 수 있는 링크, 설치 방법까지 수록하고 있고, IDE에 대한 기본 용어 설명부터 시작한다. 충분히 입문자들도 소화할 수 있지만. 그러나, 나는 C나 JAVA가 뭔지도 모르고… 코딩의 코자도 들어보지 않았다… import가 뭔지도 모른다… 이런 독자들에게까지 적당한 책이라고 하기는 어렵다. 물론, 놓치지않고 책에서 지면을 할애해가며 설명하고 있지만 1도 모르는 독자들한테까지 밥을 지어서 떠먹여주고 소화까지 시켜줄 수 있는 책은 아니다. 코딩의 경험이 있고, C언어 정도에 대한 개념이 있으면 적당하겠다. 갓 대학생활을 시작하며 전산실무나, 전공으로 프로그래밍을 공부하고자 하는 학생들에게도 매우 많은 도움이 될 것이다.
(책에도 이렇게 쓰여있다. “이 책은 참고서가 아니에요. 그리고 여러분이 이미 프로그래밍 경험이 있다고 가정합니다.”)
그럼에도, 나는 코딩의 “코”자도 모르긴 코알못이지만, 요새 코딩이 유행이라고 하는데 한번 도전해보겠어 하는 강한 도전정신을 가지고 계시다면 못할게 무엇인가. 당신에겐 “Google”이라는 아주 든든한 조력자가 있다. 검색해서 안나오는건 없음~~~
책의 구성
책은 총 12개의 파트와 부록으로 나누어진다. 부록은 파이썬 다운로드 및 설치, 웹앱의 배포 등 파이썬을 배우면서 모두에게 중요하지는 않은, 파이썬이라는 핵심내용의 기초를 닦는데 있어서 당장은 알지 않아도 괜찮은 그런 부분들을 따로 뽑았다. 독자들의 서로 다른 수준을 충족시켜 줄 수 있는 좋은 구성이다.
12개의 파트는 아래와 같이 분류된다.
– 01. 기초
– 02. 리스트 데이터
– 03. 구조화된 데이터
– 04. 코드 재사용
– 05. 웹앱 만들기
– 06. 데이터 저장과 취급
– 07. 데이터베이스 사용하기
– 08. 클래스 맛보기
– 09. 컨텍스트 관리 프로토콜
– 10. 함수 장식하기
– 11. 예외처리 / 스레드 맛보기
– 12. 고급 반복
[파이썬 기초]
01.기초에서는 IDE를 다루는 방법부터 시작해서 기본 용어설명, 파이썬의 특징, 쉘 사용법 등에 대해서 설명한다. 처음으로 기본 코드를 작성해보고, 컴파일을 해보고 결과를 실행해본다. 내가 작성한 코드가 Error없이 컴파일되고 화면에 출력되는 첫 기쁨을 맛보게된다.ㅎㅎㅎㅎㅎ
그런데, Hello World!가 없다. 섭섭하다. 헬로월드는 모든 언어의 학습의 시작일터인데.
다른 언어의 입문책을 읽어봤던 독자라면 Hello World!가 무엇인지 알고 있으리라
02.리스트 데이터 부터가 본격적인 파이썬에 대한 학습이라 보면 무방하다. 변수에 대한 설명 및 사용, 객체(object), 파이썬이 기본적으로 제공하는 라이브러리 등에 대해 학습한다. 03.구조화된 데이터 에서는 key-value쌍으로 이루어지는 딕셔너리에 대해 공부할 수 있다. 04.코드 재사용은 개인적으로 매우 중요하게 생각하는 부분인데, 이 과정을 통해 흔히 말하는 객체지향 프로그래밍(OOP, Object Oriented Programing)에 대해 배우게 된다.
[파이썬 응용]
01~04까지는 파이썬에 대한 기본 지식을 닦게끔 하는 챕터다. 뛰기 위해서는 걸을 줄 알아야하고, 걷기 위해서는 기어다니는 과정과 시간도 필요하다. 아기가 태어나자마자 걸을 수는 없지않나. 01~04까지 파이썬의 기초를 닦았다면 이제부턴 날개를 단다. 그래서 이걸로 뭘 어떻게 해? 라는 생각을 가졌을 수도 있는데 이후 챕터부터 그런 의심을 시원하게 날려준다.
05에선 플라스크를 활용해서 기본적인 웹앱을 만들고, 배포하는 작업까지 해본다. 다만 기초, 맛보기 정도라는 사실을 미리 알아두자. 시중에 출판되어 있는 플라스크-파이썬으로 개발하는 별도의 책만해도 본 서(Head First Python 개정판) 두께 못지 않을테니까. 하지만 이제 막 파이썬을 공부하는 독자들 혹은 파이썬으로 코딩은 해봤지만 응용을 해보지 못한 독자들에게 아주 재미있고 쉽게 따라할 수 있는 수준으로의 예제가 실려있어서 아주 좋다. 이후 충분히 응용해보기에 좋은 수준이라고 사료된다. 이후 장들도 전부 파이썬을 바탕으로 고급 기술을 구사하고 응용하는데 필요한 내용들이라고 할 수 있다. 예외처리나, 스레드 활용은 고급 기술이지만, 고급이라고 하기엔 너무나도 당연하고 보편적으로 사용되고, 적용되야만 하는 기술이기 때문이다.
위에서 본서를 파이썬 기초, 파이썬 응용으로 나눈 것은 필자의 개인적인 분류에 불과하다. 그러나, 그 구분이 비교적 명확하게 드러나는 편이고, 그에 따라 쉽게 난이도를 조절할 수 있기 때문에 독자의 수준에 따라 학습의 정도를 결정할 수 있어서 아주 좋다고 말하고 싶다. 기초 부분을 읽으면서도 쉽게 이해가 되지 않는다면 다시 그 부분을 반복학습하고, 구글이나 본 서에서 안내하고 있는 파이썬 커뮤니티를 활용해서 기초를 확실하게 다지면 좋겠다. 그러면 응용파트에서도 크게 어려움을 느끼지 않을 것이다.
책의 장점
작은 글씨의 텍스트와 코드, 실행결과만 나열한 것이 아니라, 너무나 친절할 정도로 초심자 입장에서 충분히 가능할만한 ‘의식의 흐름’을 따른다. 다양한 화살표와 손글씨체를 이용해서 바로바로 주석 이상의 tip을 던져준다. 또한, 보다 코드나 핵심 개념을 쉽게 이해할 수 있는 도식들, 테스트, 핵심정리 등의 summary로 쉽게 이해할 수 있도록 구성되어 있다. 많은 입문서들에게서 책의 페이지 한쪽 혹은 양쪽을 예제 소스 코드로 도배해놓고, 다음 페이지에 주요 코드들에 대해 설명을 하는 경우를 찾아볼 수 있다. 친절하지도 않고, 그 코드가 와닿지도 않는다. 특히 코딩 입문자들에게는… 헤드퍼스트 파이썬은 과감하게 코드의 길이를 줄이고, 글씨를 키웠으며 거의 모든 라인에 대해 핵심 주석을 달아놓아 코드 한줄 혹은 함수의 기능 및 역할에 대해 쉽게 이해할 수 있도록 배려하였다. 초보자들에게 이보다 더 친절하기는 어렵다… 진짜다.
구술형으로 구성되어 있는 본문도 장점이다. 딱딱하지 않게, 학원 강사던 학교 교수님이던, 수업을 진행하듯이 풀어쓴 본문 내용과 거기에 질문을 던짐으로써 독자가 먼저 생각해보게끔 하는 구성은 조금 더 이 책에 집중할 수 있도록 도와준다. (수능 학습 교재 중에 누드교과서 라는 책이 있었는데… 그런 느낌이다. 아시는 분이 있으려나 모르겠다…)
더불어 저자는, 천재보다는 노력형이 아닐까 하는 생각을 해본다. 천재들은 바보들이 무엇을 어려워하는지, 혹은 왜 어려워하는지 모른다. 그냥 당연하니까. 하지만 노력형은 자신도 똑같이 특정 부분에서 어려워했고, 고민해보았기 때문에 초보자들이 어디서 어려워할지, 무엇을 모르는지, 왜 이해하기 힘들어하는지를 아는 경향이 있다.
저자가 노력형이 아닐까 라고 내 생각을 전달한 이유는 위와 같다… (참고로 필자는 바보다… 내가 왜 코딩을 시작했을까 하는 후회를 한두번 해본게 아님…)
마무리하며
개인적으로 Head First 시리즈는, 컴퓨터공학을 전공했거나 s/w 개발자로 근무하고 있거나 했던 사람이라면 사실 모르는 사람이 없을, 아주 유명한 시리즈이다. 집에 어떤 종류이든, 한권쯤은 있을만한 그런 책인 것이다.
다른 헤드 퍼스트와 마찬가지로, 이 책 역시 헤드 퍼스트만의 독창성을 가진다. 읽고 공부하는데 지루하지 않고, 내가 모르는 부분에 대해서는 신기하게도 주석이나 챕터의 후반부에서 코너를 만들어 다룬다. 마치 나에게 강의하는 듯한 느낌이다.
이 책은, 파이썬의 기초 학습서라고 할 수 있다. 파이썬으로 다양한 프로젝트를 경험해봤고 경험한 사람들에겐 분명 적당하지 않을 것이다. 그러나 C, JAVA의 경험이 있으면서 파이썬에도 도전해보고 싶은 사람이나 혹은 경험이 없어도 코딩에 대한 기초지식을 조금이라도 갖추고 있다면 분명 큰 어려움 없이 따라갈 수 있는 수준을 다룬다.(그럼에도 어려우면, 언제나 구글을 이용하자. 내가 모르는 질문은 100% 이전에 다른 누군가가 질문한 적이 있다. 본 서에서도 언급하지만, 바보같은 질문은 없다. 바보가 많은 것이라면 할말이 없지만..ㅎㅎ)
사람에 따라서 이 책을 다 읽는데 2~3일이 걸리는 사람도 있겠지만 1달~2달이 걸리는 살마도 존재할 것이다. 코딩 경험이 있으신 분들은 분명 금방 이 책을 뗄 수 있을것이라 생각한다. 이 책을 다 보았다고, 당신이 파이썬의 마스터, 대가가 될 수 있다고 말하지는 않겠다. 빅데이터, 딥러닝 등에 대한 관심이 있는 분들이라면 파이썬에 대한 얘기를 수 없이 많이 들었을 것이다. 이 책을 마스터했다고 당신이 바로 빅데이터와 딥러닝을 개발할 수 있다고 얘기하지도 않겠다.(그건 그냥 불가능)
그러나, 이 책을 보고나면 인공지능과 딥러닝을 공부하기 위한 제 1단계 준비를 마쳤다고는 할 수 있을 것이다. 다시 말하지만, 기지 않고 걸을 수는 없다. 그러다 어느 순간 걸음마를 떼게 되고, 뒤뚱뒤뚱 걷게된다. 수 없이 넘어지겠지만 어느 순간 달리고 있는 내 모습을 보게 될 것이다.
이 책은 훌륭한 가이드가 될 자격이 있다.