한빛출판네트워크의 도서 서평단인 "나는 리뷰어다 2022"에 선정되어 제공받은 다섯번째 책은 ‘혼자 공부하는 파이썬'이라는 책.
최근 패스트캠퍼스에서 환급 챌린지로 “한 번에 끝내는 파이썬 웹 개발 초격차 패키지 Online”를 66일간 수강했는데, 이 참에 다른 파이썬 학습 자료들도 접해보고싶어 신청해보게 되었다. 아쉽게도 최근 담당 시스템 오픈과 개인 사정(?)으로 인해서 아직까지 완독을 하지는 못했지만, 지금까지 읽은 부분을 기준으로 리뷰해보도록 하겠다.
1. 파이썬(Python)이란?
파이썬(Python)은 1991년도 귀도 반 로섬(Guido van Rossum)이 발표한 프로그래밍 언어. 89년도 크리스마스 시기에 연구실이 닫혀 심심해 만들게 된 언어이다(이래서 이과란… 절레절레). 파이썬(Python)이라는 이름은 ‘몬티 파이선(Monty Python)이라는 영국의 6인조 코미디 그룹에서 따온 이름이라고. 사실 이 내용은 지인이 몬티 파이선과 성배(Monty Python and the Holy Grail)라는 영상을 보여줘서 이 책을 읽기 얼마 전에 알았다. 개인적으로는 너무 재미없고 옛 감성(당연함. 옛날 방송임.)이라 몇 분 보다 껐는데 이 프로그램 이름을 따올 정도라니 역시 공대생은 알 수 없는 생물이다.
파이썬은 초보자가 배우기에 쉬운 언어로 많이 추천되는 언어인데 그 이유는 아래의 장점 때문이다.
- 문법이 간단해 배우기 쉽다.
- 다양한 분야에서 활용할 수 있다(웹개발 및 인공지능, IoT 등)
- 대부분의 운영체제(윈도우, 맥, 리눅스)에서 같은 방법으로 사용할 수 있다.
반면에 단점도 존재하는데, 가장 큰 단점은 느리다라는 점. 일반적으로 C보다 10~350배나 느리다고 하니 꽤나 큰 차이라고 할 수 있다.
2. ‘혼자 공부하는 파이썬’ 리뷰
혼자 공부하는 파이썬에서는 이 책을 읽어야 할 대상을 아래와 같이 정의하고 있다.
- 개발자로서 스타트업에서 웹 서비스 개발을 하고 싶은 경우
- 개발자로서 서비스에 활용할 인공지능을 개발하고 싶은 경우
- 개발자로서 데이터 수집 프로그램을 개발하고 싶은 경우
- 비개발자로서 엑셀 이상의 데이터 분석을 하고 싶은 경우
- 비개발자로서 업무 자동화를 위한 간단한 프로그램을 만들고 싶은 경우
- 비개발자로서 프로그래밍을 접해 보고 싶은 경우
이 중에서 저자는 비개발자로서 프로그래밍을 접해 보고 싶은 경우가 파이썬이 첫 입문 언어로 좋다고 알려진 이유라고 생각한다고. 컴퓨터 공학과 전혀 관계없는 전공을 한 비전공자로서 이 말에 크게 동의가 되는데, 그 이유는 프로그래밍 언어 중 많이 알려진 C언어와 Java를 깔짝거려보면 알 수 있다.
먼저 C언어의 경우 운영체제(OS, Operating System)마다 프로그래밍을 달리 해주어야 한다는 번거로움 외에도, 컴퓨터가 이해할 수 있는 이진 코드(Binary Code)에 가까운 언어로 사람이 직관적으로 이해하기 어려운 부분이 많다. 예를 들어 함수를 작성 한 뒤 ‘포인터'라는 비전공자들이 이해하기 어려운 개념을 같이 다뤄주어야 해서 프로그래밍의 알고리즘 자체에도 익숙하지 않은 비전공자들에게 또 하나의 숙제를 안겨준다.
한 편, Java의 경우 C언어의 한계를 극복하기 위해 만들어진 언어이기 때문에 어느 플랫폼(운영체제)에서나 돌아가는 프로그래밍 언어이다. 하지만 for in문의 메커니즘 이해도 쉽지 않은 코린이들에게 Java는 public static void main() 과 같이 이게 왜 들어가있나 한눈에 알 수 없는 선언문들이 들어가 있어 파이썬에 비해서는 배우는 난이도가 높은 편이다.
그래서 이 책도 프로그래밍 초심자를 대상으로 구성이 되어있는데, 정말로 프로그래밍 자체를 처음 접하는 사람을 대상으로 했는지 프로그래밍을 일상생활에 대입한다면? 이라는 주제로 시작해 이해를 돕고 있다.
개인적으로 이 책의 가장 좋았던 점은 아래 두 가지이다.
첫 번째는 혼자 공부할 때의 가장 어려운 점인 트러블슈팅에 대한 부분이 들어가있다는 점이다. 초심자가 코딩을 처음 따라할 때 정말 갖가지 에러를 마주하게 된다. 그럴 때 혼자 공부하게 되면 아직 구글링도 익숙하지 않은 코린이들은 프로그래밍 자체에 대한 흥미가 떨어지게 되는데, 이 책에서는 초심자들이 책을 따라할 때 생길 수 있는 초심자가 많이 발생시키는 에러에 대해서 케이스 별로 상세히 설명해주고 있어(이 책의 첫 파트에서 나오는 stdin에러도 실제로 내가 만났던 에러이다) 괜히 제목에 “혼자 공부하는"이라는 문장이 들어간 게 아니라고 느꼈다.
두 번째는 초심자를 위한 책이라고 너무 쉬운 내용만 다루지 않았다는 점이다. 이 책의 서문에서도 언급이 되는데, 초심자를 위한 책들은 눈높이를 너무 낮추다보니 너무 “쉬운” 내용들만 다루고 있어 책을 한 권 다 떼고 난 뒤임에도 불구하고 실습이나 알고리즘 문제를 전혀 풀 수 없는 경우가 왕왕있다. 사실 그렇게 되면 코린이의 입장에서는 ‘책까지 봤는데도 문제 하나 못풀다니 나는 코딩에 재능이 없나보다 ㅜㅜ' 라고 생각해 코딩 자체를 포기하게 되는데(내가 그랬음), 이 책은 각 개념을 초심자가 이해하기 쉽도록 설명하면서도 책의 분량이 어느정도 있어 그런지 꽤 상세한 내용까지 다루고 있다. 그래서 패스트캠퍼스에서 이미 파이썬 강의를 수강한 나에게도 새로운 설명들이 있어서 지루하지 않게 학습할 수 있었다.
그래서 아직 다 읽지는 못했지만 패스트캠퍼스 강의를 어느정도 마무리하게 되면 다시 끝까지 읽어볼 생각이 드는 책이었다.
“한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
'Review' 카테고리의 다른 글
[나는 리뷰어다 2022]'쉽게 배우는 AWS AI 서비스’ 리뷰 (0) | 2022.11.04 |
---|---|
[나는 리뷰어다 2022]'클라우드 네이티브 애플리케이션 디자인 패턴' 리뷰 (0) | 2022.08.06 |
[나는 리뷰어다 2022]’MLOps 도입 가이드’ 리뷰 (0) | 2022.07.02 |
[나는 리뷰어다 2022]'찐 UXer가 알려주는 UX/UI 실무 가이드’ 리뷰 (0) | 2022.04.24 |
[나는 리뷰어다 2022]'소프트웨어 아키텍처 101’ 리뷰 (1) | 2022.03.31 |