이 책은 전세계에서 가장 많이 팔린 파이썬 책 으로 전세계적으로 무려 50만부를 판매하면서 아마존 서점 파이썬 베스트 셀러 분야 1위에 등극한 책이다
저자 소개
이 책의 저자 에릭 마테스는 고등학교 교사로 알래스카에서 과학, 수학, 프로그래밍을 가르치고 있다
다섯 살 때부터 프로그램을 만들었고 현재는 교육 부문에서 오픈소스 소프트웨어를 만들거나 활용하는 데 주력하고 있다고 한다
에릭 마테스는 아이들에게 파이썬을 가르치며 얻은 실습 중심의 수업 방식, 노하우를 초보자도 어려움 없이 파이썬을 배울 수 있도록 이 책으로 정리했다
온라인 자료
GitHub: https://github.com/ehmatthes/pcc_2e
GitHub IO: https://nostarch.com/pythoncrashcourse2e
no starch press: https://ehmatthes.github.io/pcc_2e/regular_index
온라인 자료에 포함된 내용
-
설치방법
-
- 책에 실린 내용과 같으며 클릭하면 연결되는 링크가 있음
-
업데이트
-
파이썬이 업데이트될 때마다 반영 책에서 설명한 내용이 동작하지 않는다면 참조
-
연습문제 해답
-
치트 시트
-
파이썬의 주요 개념을 빠르게 훑어볼 수 있는 치트 시트를 내려받을 수 있음
개정된 내용
50만 독자의 피드백을 반영하고 2판으로 개정되면서 최신버전인 파이썬 3.8에 맞게 수정하며 오래된 내용인 파이썬 2에 관한 지원을 제거 했다
1장
- 주요 운영체제 사용자들이 파이썬을 더 쉽게 설치 할 수 있도록 단순화 하고 서브라임 텍스트를 권장하는 내용을 추가
2장
- 파이썬이 변수를 어떻게 처리하는지 더 정확히 설명
- 변수를 값의 라벨이라고 설명
- 파이썬 3.6에서 도입한 f-문자열을 활용
- 파이썬 3.6에서 도입한 아주 큰 숫자에 밑줄을 써서 1_000_000처럼 표현하는 방법을 따름
- 변수 여러 개에 한꺼번에 값을 할당하는 방법을 일반화해 2장에서 소개함
- 파이썬에서 상수를 더 명확히 나타내는 표기법 설명
6장
- 딕셔너리에 키가 존재하지 않을 때 기본값을 반환하는 get() 메서드를 소개
12~14장
- 외계인 침공 프로젝트는 클래스를 바탕으로 완전히 수정
- 게임 자체도 함수의 연속이 아니라 클래스로 수정
- 전체적인 구조가 단순해지고 함수 호출 횟수와 매개 변수 수도 많이 줄어듬
- 이제 어떤 시스템에서든 명령어 한 줄로 Pygame을 설치할 수 있고 전체 화면모드나 창모드를 선택해서 실행할 수 있음
15장
- 데이터 시각화 프로젝트에서는 Matplotlib 라이브러리 설치가 쉬워짐
- Matplotlib의 시각화의 subplot() 함수를 사용하는 부분이 쉬워짐
- 주사위 굴리기 프로젝트에서 잘 관리되는 시각화 라이브러리 Plotly 사용
- Plotly는 깔끔한 문법으로 고품질의 출력 결과를 얻을 수 있으며 출력 옵션 역시 마음대로 바꿀 수 있음
16장
- 날씨 프로젝트는 NOAA 사이트의 데이터를 사용
- 초판에서 이용했던 사이트에 비해 향후 몇년은 신뢰할 수 있는 사이트
- 지도 프로젝트는 지구 규모의 지진활동을 시각화하는 것을 목표
- 프로젝트 완수 후 주어진 기간안에 일어난 모든 지진의 위치를 지각 판 경계와 함께 표시한 놀라운 시각화 결과를 보게됨
- 지리적 포인트를 포함해 어떤 데이터든 그래프로 그리는 방법을 알게됨
17장
- Plotly를 사용해 GitHub에서 진행되는 파이썬 관련 오픈 소스 프로젝트들을 시각화해봄
18~20장
- 학습 로그 프로젝트는 최신 버전의 Django를 사용
- 최신 버전의 Bootstrap을 사용해 스타일을 입힘
- django-heroku 패키지를 사용해서 프로젝트를 헤로쿠에 올리는 과정을 단순화함
- setting.py 파일을 편집하지 않고 환경 변수를 사용하게 바꿔서 더 단순화함
- 단순화할 뿐 아니라 최신 장고 프로젝트를 운영하는 프로 프로그래머들이 사용하는 방법
부록A
- 파이썬 설치에 관한 최신 모범 사례를 따르도록 완전히 개정
부록B
- 서브라임 텍스트 설정방법 추가
- 현재 널리 쓰이는 텍스트 에디터와 IDE 중 산당수를 간단히 소개
부록C
- 도움이 필요한 독자들이 찾아볼 수 있는 온라인 자원 중에서 더 새롭고 인기 있는 곳들을 소개
부록D
- 깃을 통해 버전 관리를 하는 방법을 소개
책의 구성
1부
책의 초반은 파이썬 프로그램을 만드는데 필요한 기본 개념을 배운다
이 개념은 어떤 프로그래밍 언어에서든 공통인 개념이다
다양한 데이터에 대해 배우고 그 데이터를 리스트와 딕셔너리에 저장하는 방법을 배운다
데이터 컬렉션을 만들고 그 컬렉션을 효과적으로 다루는 법을 배운다
while 루프와 if문을 통해 조건을 만족할 때는 이부분을 만족하지 않을 때는 다른 부분을 실행하는 방법을 배운다
사용자로부터 입력을 받아 프로그램을 대화형으로 만들고 사용자가 원하는 동안 계속 프로그램을 실행하는 방법도 배운다
함수를 통해 프로그램 일부를 다시 사용할 수 있게 만들어서 한 가지 일을 하는 코드는 한 번만 만들고 필요한 만큼 재사용하는 법을 배운다
나중에 이 개념을 클래스로 확장하면 아주 단순한 프로그램으로도 다양한 상황에 대응할 수 있다
흔히 일어나는 에러를 우아하게 처리하는 프로그램을 만들 수 있게 된다
이런 기본 개념들을 익힐 때마다 간단한 프로그램을 만들어서 필자가 세심하게 선정한 문제를 풀게 된다
마지막으로 코드를 테스트하는 방법을 배우면서 중급 프로그래밍으로 한 걸음 더 나가게 된다
이 과정을 익히면 버그를 두려워하지 않고 프로그램을 개발할 수 있게 된다
1부에서 배우는 것들은 모두 더 크고 복잡한 프로젝트를 만드는 기초가 된다
2부
1부에서 배운 내용을 세 가지 프로젝트에 응용한다
이들 프로젝트에는 정해진 순서가 없으므로 어떤 것을 먼저 진행하든 상관 없다
12~14장에서는 첫 번째 프로젝트로 점점 어려워지는 갤러그 스타일 게임 외계인 침공을 만든다
이 프로젝트를 끝내고 나면 스스로 2차원 게임을 만들어 볼 수 있다
15~17장에서는 두 번째 프로젝트로 데이터 시각화를 소개한다
데이터 과학자들은 방대한 정보를 이해하는 수단으로 다양한 시각화 테크닉을 시도한다
이 프로젝트에서는 코드를 통해 데이터 세트를 만들거나 온라인 소스에서 데이터 세트를 직접 내려받거나
프로그램이 자동으로 데이터 세트를 내려받는 등의 방법으로 생성한 데이터를 다루게 된다
이 프로젝트를 마치고 나면 방대한 데이터 세트를 누비고 다니며 저장한 정보를 시각화하는 프로그램을 만들 수 있게 된다
18~20장에서는 세번째 프로젝트로 학습 로그라는 간단한 웹 애플리케이션을 만든다
이 프로젝트는 특정 주제에 대해 공부한 개념이나 그 과정에서 얻은 아이디어를 기록할 목적으로 만든다
다양한 주제별로 로그를 만들 수 있고 다른 사람들도 계정을 만들어서 자신만의 기록을 남길 수 도 있다
프로젝트를 배포해서 누구나 어디서든 온라인으로 사용할 수 있게 하는 방법도 배운다
서평
전 세계 언어로 번역되어 50만부나 팔린 베스트셀러 서적이라고해서 파이썬 입문 서적이 어떻게 이렇게 나 많이 팔릴 수 있는 지 신기하기도 했다
신기하게도 이 책의 저자는 개발자가 아니며 고등학교 교사이다
프로그래밍 전문 강사도 아니였으며 과학, 수학, 프로그래밍을 가르치는 교사이다
저자가 남을 가르치는 직업을 가져서 그런지 교육자의 성향이 책에 그대로 녹아있어 학생의 입장에서 매우 이해하기 쉽도록 구성되어 있다
책의 내용과 구성 뿐만아니라 제공되는 온라인 자료 까지 정말 매우 체계적이고 초보자들이 쉽게 이해하며 언어를 배울 수 있도록 구성이 되어 있다
마치 자신이 처음 언어를 공부할때 알아가던 방식으로 마치 책의 독자들에게 강의 하듯이 진행된다
정말 상세히 프로그램 기초 부터 파이썬 언어의 기초를 가르쳐준다
아주 심플한 예제와 예제의 결과 값을 살펴보며 이 예제를 실행하면 왜 이런 결과 값이 출력이 되는지 아주 자세히 설명해준다
초보자들이 간과하기 쉬운 중요한 팁들도 놓치지 않고 가르쳐주며 넘어간다
이 책의 절반 가량은 파이썬 언어의 기초적인 내용들을 공부할 수 있도록 구성되어 있고
나머지 절반의 내용은 모두 프로젝트 개발 내용이 실려 있다
챕터 12의 외계인 침공 게임 프로젝트에서는 Pygame을 사용해 이떄까지 배웠던 파이썬 언어를 활용해 갤러그 비슷한 게임을 직접 구현해본다
언어의 기초를 배우고 써먹지 않으면 금세 까먹어 버리는데 이렇게 프로젝트를 진행해봄으로써 언어의 이해도가 훨씬 높아 지는 것 같다
기초적인 프로젝트이지만 코드의 구성이나 설계가 엉성하지 않다 중복코드를 줄이고 클래스를 활용하며 개발자들이 실제로 사용하는 기법들을 사용하여
프로젝트를 진행하므로 프로젝트를 하나하나 진행하면서 어떤식으로 코드를 짜는 것이 더 좋은지 왜 이런식으로 개발을 하는지 이해해나가며
실무에 활용할 수 있을만한 수준의 개발지식을 얻을 수 있게 된다
이 책으로 파이썬 기초적이 부분을 공부하고 나서 프로젝트를 진행해 봄으로써 파이썬 언어 입문자는 매우 많은 성장을 할 수 있을 것 같다
하지만 프로젝트를 진행해본다고 해서 파이썬 프로젝트 각각에 대해서 깊게 이해하기는 힘든 부분이 있다
프로젝트 하나 하나가 실제로는 그 범위가 매우 넓고 방대한 분야이기 때문에 이 책을 통해 기초를 습득 했다면
이제 자신이 원하는 분야에 대해 더 깊게 공부 해볼 수 있는 준비가 된 것이므로 자신이 관심있는 분야에 대해 더 깊게 공부 해보면 좋을 것 같다
이 책을 훑어 보니 흔하디 흔한 파이썬 입문서중에 어떻게 베스트셀러가 된 건지 알 수 있을 것 같다
입문자를 체계적인 구성, 명확한 설명, 이해하기 쉬운 내용, 아주 기초적인 부분부터 눈높이를 맞추어 진행되는 예제 코드
그리고 마지막 끝판왕 각 분야벌 프로젝트 예제 완수로 이 책 한권만 마스터 하면 확실히 파이썬 언어의 기본적인 부분은 마스터 할 수 있다
파이썬 언어에 입문하고 싶다면 2판으로 개정된 나의 첫 파이썬 책을 강력히 추천한다
※출판사로부터 책을 무상으로 제공받아 직접 실습해보고 정성껏 작성한 리뷰 입니다