이 책은 필자가 오랫동안 파이썬 기업 교육을 진행하면서, 학생들과 대화하며 만들어진 결과물입니다. 학생들 대부분은 교육을 마친 뒤, 파이썬을 더 연습해보려면 어떤 것을 추가로 연습해야 하는지 자주 질문하곤 합니다. 그리고 이러한 질문에 대답하는 과정 중에서 학생들에게 설명한 내용, 실제로 교육 과정에서 진행한 내용들을 기반으로 책을 집필했습니다. 이 책은 파이썬의 핵심 개념이라고 할 수 있는 핵심 자료 구조, 함수, 내포(comprehension), 객체 지향 프로그래밍, 이터레이터를 연습해볼 수 있게 구성했습니다. 굉장히 단순한 주제라고 생각할지도 모르겠습니다. 하지만 파이썬으로 만드는 작은 스크립트부터 큰 애플리케이션까지 모든 코드는 이러한 내용들의 조합일 뿐입니다. 따라서 이를 잘 알고 활용할 수 있어야 파이썬을 능숙하게 사용할 수 있는 개발자가 될 수 있습니다. 기본 구성 요소들을 무시하고, 더 어렵다고 생각하는 것에 집착하는 것은 기초를 제대로 닦지 않고 건물을 계속해서 높게 올리는 일에 불과합니다. 틀림없이 무너질 것입니다. 연습은 분명 능력을 향상시킵니다. 파이썬뿐만 아니라 모든 영역이 같습니다. 이 책이 여러분이 파이썬을 공부하면서, 이러한 경험을 할 수 있게 도움이 되면 좋겠습니다. 하루하루 여러분의 파이썬이 점점 유창해지기 희망하고 기대합니다.
--- 「지은이의 말」 중에서
프로그래밍 언어를 교육하다 보면 프로그래밍 언어의 문법을 분명 배웠는데, “(1) 이제 무엇을 해야 하는지 잘 모르겠다, (2) 무엇을 만들고 싶은데 코드를 어떻게 작성해야 할지 모르겠다.”라며 방황하는 학생들을 많이 볼 수 있습니다. 일반적으로 이러한 벽에 막혔을 때, 많은 학생이 다른 프로그래밍 언어의 문법을 처음부터 다시 공부하는 것을 선택합니다. 하지만 다른 언어의 문법을 더 배운다고, 이러한 벽을 넘을 수 있는 것은 아닙니다. 마치 한국어로 글을 제대로 쓰지 못하는 사람은 영어 문법을 완벽하게 배워도 글을 제대로 쓸 수 없는 것과 같습니다. 이러한 벽을 넘을 수 있는 방법은 “(1) 기본 문법을 활용하는 문제를 풀어본다, (2) 자료 구조와 알고리즘 문제를 풀어보며 컴퓨터 공학을 이해한다, (3) 프레임워크를 공부하며 만들고 싶었던 것을 만든다.”를 반복하는 것입니다. 이 책은 이러한 벽을 넘는 3가지 방법 중에서 (1)을 다루는 책입니다. 그래서 책은 다음과 같은 특징이 있습니다.
● 자료 구조와 알고리즘을 다루는 책은 아니므로, 쉽게 접근할 수 있다.
● 기본 문법을 활용하는 방법을 배우므로, 언어의 설계를 더 깊이 이해할 수 있다.
● 어떤 상황에 어떤 문법을 활용해야 하는지 이해할 수 있다.
따라서 언어의 문법을 배운 뒤에 언어를 더 깊게 이해하고, 언어를 활용하는 방법을 배우는 데 도움을 줄 수 있을 것입니다. 참고로 언어의 문법을 배운 뒤에 언어를 ‘조금 더 깊게 이해’하는 책이므로, 파이썬의 기본 문법은 이미 알고 있어야 합니다.
--- 「옮긴이의 말」 중에서