-
-
프로그래머를 위한 파이썬 - 실전 프로젝트로 배우는 소프트웨어 개발의 원리와 정석
데인 힐라드 지음, 황반석 옮김 / 제이펍 / 2020년 11월
평점 :
이 글에는 스포일러가 포함되어 있습니다.
우리는 프로그래밍을 하면서 고려하는 것들이 많습니다.
단순히 프로그래밍 언어를 배우는 측면을 뛰어넘어 자신의 실력을 발전시키고 싶은 부분이 반드시 존재하게 된다.
그렇다면 이 책, <프로그래머를 위한 파이썬>을 권해보고 싶습니다.
원제에서도 볼 수 있듯이 이 책은 기본적인 파이썬 책이 아닙니다.
Practices of the Python Pro 라는 말에서 Pro라고 함은 어느 정도의 경험을 했다고 볼 수 있습니다.
그 경험이라 함은 파이썬 프로그래밍 언어에 한정된 것이 아닌 실제적인 프로젝트를 수행했는지 여부에 달려있다고 볼 수 있습니다.
이 책의 추천대상은 중급정도로 측정되어 있습니다.
책을 숙독해본 결과 파이썬 입문은 확실히 아니라는 것을 볼 수 있었습니다.
설계에 대한 상세한 내용이 나오는데 이러한 내용은 확실히 실제 경험에서 우러나오는 얘기이기 때문에 공감할 수 있는 포인트가 입문자와 다르기 때문입니다.
고급자에게도 이 책이 어울릴 수 있는 부분이 있습니다.
고급자라는 명칭 또한 초급, 중급을 거쳐서 왔기 때문에 어떠한 경험과 어려움이 있었을지 알고 있을텐데 그것에 대해서는 모두 기억할 수 없습니다.
과거의 어려움을 다시 한 번 상기할 수 있고 그 어려움을 통해서 어떠한 과정을 겪었는지 다시금 배울 수 있을 것입니다.
책을 통해서 프로그래밍을 배우는 부분은 사실 실전보다 적습니다.
이 책은 그러한 상황을 고려하여 실전에서 나타날 수 있는 상황을 고려하여 서술되어있는 책입니다.
실무에서 벌어졌을 때 그 상황에 빠르게 대처하기 위한 방법론적인 부분이 주로 서술되어있습니다.
책의 두께는 그렇게 두껍지는 않지만 핵심키워드가 명확합니다.
프로그래밍을 한다는 것 자체가 어떠한 작업을 더 효율적이게 하기 위함에서 생겨난 행동입니다.
그렇다면 자신의 현재 프로그래밍 숙련도를 몇 단계 발전시킨다면 어떻게 될까요?
책에서는 프로그래머를 대상으로 말하고 있습니다.
생각하보면 어떤 프로그래머에게 이 책이 적합할지 생각해볼 수 있습니다.
저는 데이터관련 업무를 하고 있기 때문에 이 책이 직접적으로 어울리지는 않습니다.
설계부분에서 배울 수 있는 부분이 있었고 어플리케이션 프로그래머와의 소통을 위해서 어떤 부분이 중요한지 간접체험할 수 있었습니다.
프로젝트를 진행하는데 있어서 어떤 부분에서 버그가 발생하고 고려 사항은 어떤 것들이 있을 지 그림과 코드, 상세한 주석으로 알 수 있었습니다.
Pro를 강조하는 앞표지를 볼 수 있습니다.
뒷표지에서는 책의 주요내용과 책의 목적을 간략히 볼 수 있습니다.
실무에서 프로그래머에게 중요한 유지보수가 중요하다는 내용이 있습니다.
저는 책을 볼 때 어떤 책이든 저자와 역자의 이력을 살펴봅니다.
책의 내용에 따라 이력이 중요한 경우가 있고, 저자가 어떠한 목적이 있는지, 그 목적과 부합되는지 알 수 있기 때문입니다.
책의 큰 내용은 3파트로 나눠집니다.
제가 주요적으로 살펴본 부분은 설계/버그/유지보수/애플리케이션에서의 유의사항/주석 등 다양하게 책을 통해 배우고 있습니다.
한 번 보고 덮을 책은 아니라고 생각합니다.
이 책에 있는 예시와 주석은 최신의 예시를 다루기 때문에 일반적인 예시에 질리신 분들에게 재미를 줄 수 있다고 생각합니다.
새로운 주제와 익숙한 주제를 어떻게 받아들일지에 대한 내용으로 설명을 하고 있습니다.
이 책의 특장점이 이러한 부분입니다.
오픈마인드로 기술을 받아들이는 태도가 있기 때문에 다양한 관점을 함께 배울 수 있습니다.
관련된 소스코드의 세부적인 함수, 클래스별 동작을 그림으로 묶어서 설명해주기 때문에 세세하게 코드를 살펴보시지않으셔도 책을 보며 목적을 이해하기 편하다는 것도 좋았습니다.
그림의 설명이 길게 되어있는 부분이 있는데 그림설명은 반드시 읽어보시길 바랍니다.
그림을 잘 그리는 사람은 많지만 그것을 기술적으로 설명하고 이해시킬 줄 아는 사람은 많지 않습니다.
또 다른 기술을 배울 수 있었습니다.
설명하면서 배운다는 것인 이러한 것임을 느꼈습니다.
고급자들도 쉽게 설명하지 못하는 부분에 대한 설명입니다.
바로 추상화와 설계에 대한 설명입니다.
이 내용은 주관적으로 경험에 따라서 설명이 많이 갈리기 때문에 사람마다 의견이 분분합니다.
때문에 우리는 이 부분을 배울 때 많은 경험을 해보고 들어보고 받아들이는 연습을 해야합니다.
어떠한 경험을 통해 무엇을 배웠는지 정리해보는 것입니다.
이 책을 하나의 오답노트처럼 생각하고 자신의 오답경험, 어려웠던 설계경험을 함께 정리해보는 것이 좋다고 생각합니다.
이 책의 또 다른 장점은 주어, 동사, 서술어같은 글의 관계가 명확해서 이해하기가 좋습니다.
번역서를 보면서 이해하는데 어려운 점은 바로 글과 단어의 관계를 잘못해석한 경우 이해가 안된다는 점입니다.
이러한 부분에서 이 책은 번역이 굉장히 우수하다고 볼 수 있습니다.
한가지 주의하셔서 보셔야 될 것은 책에서 권장하는 글들이 있고 방법들이 존재하는데 모두 정답이 될 수 없다는 것을 인지하셔야합니다.
책을 보고 공부를 하는 것의 양날의 칼이 될 수 있다는 것을 말씀드립니다.
책은 지식의 확장이 될 수 있지, 지식의 정답이 될 수는 없다는 것입니다.
책에서 가장 마음에 들었던 부분입니다.
바로 버그에 대한 설명, 주의사항, 그림에 대한 자세한 설명, 차이점에 대한 설명입니다.
컴퓨터에 대한 지식을 판단할 때 우리는 많이 정답이 있다는 것은 가정하고 배우는 경우가 있습니다.
조심하셔야 될 것이 정답을 있을 수 있지만 상황을 다를 수 있다는 것입니다.
학교에서 배웠던 지식을 적합하게 활용하려면 버그에 대한 경험이 있어야 합니다.
이 책은 그러한 어려움에 대한 경험을 간접체험해줍니다. 그리고 주의사항을 던져줍니다.
다양한 관점을 제시해주는 것 또한 글에서 볼 수 있는 좋은 부분입니다.
개인적으로 책은 보면서 저에게 필요한 부분을 우선적으로 봤고, 나머지에서는 부차적인 것을 배웠습니다.
앞으로 옆에 두고 레퍼런스처럼 펼쳐볼 수 있는 책이라서 저에게 적합한 책이라고 생각이 드네요.
파이썬이나 프로그래밍에 대해 입문을 마치고 올바른 경험을 쌓으실 분들에게 추천드리는 책입니다.
감사합니다.