Notice
Recent Posts
Recent Comments
Link
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
04-23 21:30
관리 메뉴

ulismoon

첫 베타리딩 - 혼자 공부하는 파이썬 - 분노의 후기 본문

카테고리 없음

첫 베타리딩 - 혼자 공부하는 파이썬 - 분노의 후기

ulismoon 2022. 6. 4. 01:17

우연한 기회로 한빛미디어의 새 도서에 베타리딩을 하게 되었다. 인생 첫 베타리딩이었는데... 참 씁쓸한 맛이다.

한빛미디어의 아쉬운 베타리딩

 혼자 공부하는 파이썬 개정판을 내는 데 베타리더를 모집한다고, 초보부터 고수(?) 까지 여러 사람을 모집한다고 해서 한번 지원해봤는데 덜컥 돼버렸다. 베타리딩용 원고를 PDF 로 전달받았고, 10일정도의 시간동안 책을 읽고 오탈자, 오류 등과 설문조사에 응답하는 형식으로 진행했다.

한 3일정도 빡세게 읽으면서 열심히 리뷰를 하기는 했는데, 가장 피로했던 것은 PDF 에 목차가 없었다는 것이다. 그래서 대체 책 전체가 어떤 구성으로 되어 있고 어떤 내용을 커버하고 있으며 어떤 흐름과 방향성으로 책을 풀어나갔는지 조망할 수가 없었다. 앞으로 한번 돌아가려 하면 600페이지가 넘는 PDF 를 스크롤해가며 움직여야 하는 것도 피로한 일이었다. 베타리딩용 원고니 아직 페이지가 완성되지 않았고 목차가 없었을 수도 있지만 최소한 PDF 자체 목차라도 만들어주었으면 좋았겠다는 아쉬움이 있다.

 베타리딩을 완료하면 책을 보내준다고 해서 오늘 받았는데 책의 상태가....

별로 가지고 싶은 책도 아니었고 하니 뭐 상관은 없는데, 아무리 기념품으로 무료로 준다고 해도 이건 좀 심하지 않나 싶다. 보낸 곳을 보니 아마 출판사나 인쇄소에서 바로 보낸 것 같은데, 그러니 검수같은게 없었을 수 있지만 파본에 가까운 것을 받으니 과히 기분이 좋지는 않다. 새 책 또 받으면 쓰레기가 2개가 되는거라 따로 연락은 안 할 예정.

 그리고 내가 지적한 정도의 이슈 제기가 있었으면 책 출판을 멈추고 다시 저자랑 이야기를 해보았을 것 같다. 뭐 일정이 있고 confirm 을 받았으니 출판을 했겠지만 글쎄... 그래도 한빛미디어에 좋은 인상을 가지고 있었는데 작금의 사태를 겪고 나니 출판사에 대한 신뢰가 좀 떨어지는 것은 사실이다.

에이콘꺼 봐야지

도저히 용납할 수 없는 오개념의 향연

 사실 그것보다 더 내가 이 글을 쓰게 만든 것은 책의 내용이다. 저자가 무얼 하는 사람인지는 찾아봐도 잘 나오지 않는다. 무슨 초보자용 개발 도서를 여러개 냈더라. 베타리딩 설문조사 문항 중 "혼공파를 한 문장으로 표현한다면?" 이라는 질문에 "저자가 혼자 공부한 내용을 적은 노트" 라고 썼는데 내가 베타리딩을 하며 느낀 게 크게 틀리지 않았다는 생각이 들었다. Expert Beginner 의 느낌이 물씬 나는 것이... 이렇게 책을 써도 되는 현실이 암담했다.

 베타리딩 하면서 정말 열심히 주석을 달았는데, 오타랑 들여쓰기 말고는 거의 고쳐진 부분이 없는 것 같다. 뇌절도 그대로다. 출판부에서 오탈자는 잘 고쳐준 것 같은데, 오개념이나 설명이 부족해 아쉬운 부분, 빠진 부분 등은 하나도 고쳐지지 않았다. 내용이나 개념에 대한 내용은 저자가 보고 수정한다고 했는데 이모양이면 열심히 주석을 쓴 이유가 없는 것 같다. 정말 저자가 보기는 한걸까...

 모든 틀린 내용을 다 지적하자면 내가 여기에 책을 다시 쓰는 수준으로 설명을 써야 하니 중요한 것 몇 개만 짚어보자. 여기 있는 것들을 쭉 답습하면 파이썬을 정상적으로 이해하고 쓰지 못하게 될 것이다.

파이썬 들여쓰기 스페이스 네칸 힘들죠?

 개인적으로 제일 문제가 크다고 보는 부분은 파이썬에서 들여쓰기가 가지는 의미에 대한 설명이 1도 없다는 것이다. 파이썬에서는 들여쓰기가 단순 들여쓰기가 아닌 코드 블록을 구성하는 단위이고, 인터프리터가 코드를 해석하는 데 있어 매우 중요한 기준이다. 그래서 들여쓰기가 잘못되면 오작동이 문제가 아니라 실행이 안되는 경우도 있다. 그런데 책에서는 들여쓰기를 왜 하는지에 대한 설명도 없고, 스페이스바 4번씩 치기 힘드니 softtab 으로 편리하게 들여쓰라는 이야기만 한참 해놓았다. 왜 다른 언어처럼 중괄호가 없고 엄지 아프게 들여쓰기를 하고 있는지에 대해 설명을 해주었어야 한다.

함수 인자 설명 부재

파이썬의 함수 인자는 매우 아름답게 설계되어 있다. 오죽하면 난 이것만 가지고 글도 하나 썼다(https://ulismoon.tistory.com/7). 파이썬에서 함수 인자, 특히 *args, **kwargs 에 대한 내용은 다른 언어에서는 찾아보기 힘든 놀랍고 멋진 구조이다. 뭐 기초 책에서 이걸 다 설명하기를 바라지는 않는다. 그런데 최소한 빠진 내용이 있으면 안 되는 것 아닌가? 이 책 전체를 걸쳐 **kwargs 에 대해 설명하고 있는 구절이 없다. 이제 이 책 보고 공부한 사람은 **kwargs 가 뭔지 모르고 파이썬 함수를 쓰게 된다.

별찍기는 원래 어려워요

 개발 도서의 중반을 넘으면 어려운 내용이 나오기 마련이고, 벽을 느끼고 의지를 잃거나 이탈할 가능성도 높아지는 것이 당연하다. 이를 위해 독자의 의지를 유지할 수 있도록 독려하는 것은 좋다고 생각한다. 하지만 개인적으로 이 책에서는 방식이 틀렸다고 생각한다.
 if, for 문을 배우면 가장 많이 하는 것 중 하나가 별찍기 예제이다. 아마 프로그래밍 공부를 해본 사람들은 거의 다 별찍기를 해봤을 것이라 생각한다. 그리고 개중에는 머리를 좀 굴려야 하는 예제도 있다. 하지만 차분히 규칙을 생각하고 그걸 코드로 바꾸는 연습을 하면 못할 정도는 아니다. 무슨 generic 같은거 갑자기 배우는 것도 아니고..

 저자는 책 전반에서 이런 말을 많이 한다. "나도 못했다", "도저히 이해를 할 수 없었다", "몰라도 된다", "지금 이해하려 하지 말고 느낌만 알고 넘어가라". 의도를 모르는 바는 아니지만 별찍기 예제에 이런 말을 써놓고 "낙심하지 마라 나도 처음 배울 때 며칠 고민해도 못했다. 모르면 걍 답 보러 가라" 고 써놨다. 이건 솔직히 지식 전달 목적의 책을 쓰는 사람으로서는 배임이라 생각한다.
나도 컴공 전공도 아니고 수학적 사고가 특별히 뛰어나다거나 하지 않기 때문에 내가 할 수 있는 것은 다들 할 수 있을 것이라 생각하고, 그렇기에 내가 이해하고 있는 것은 누구든 이해할 수 있도록 설명할 수 있어야 한다고 생각한다. 그렇자 못하면 아직 내 이해가 부족한거지.
 프로그래밍에서 가장 중요한 것을 꼽으라면 난 iffor 를 주저 없이 꼽는다. 그런데 여기에다 대고 원래 어렵다고 하면 되나? 이게 없으면 로직을 만들 수가 없는데. 그럼 최소한 여기에는 프로그래밍 전체를 통틀어 가장 중요한 논리가 있으니 충분히 연습하고 넘어가라고 해야 하지 않았을까? 그런데 저런 무책임한 말을 책 전반에 써놓은 것을 보면...

최소한 난 내 자식이 별찍기 며칠 걸려도 못했었다는 사람한테 프로그래밍을 배우지 않길 바란다.

상속은 현업 개발자도 몰라요

 클래스에 대해 설명을 하면서 OOP 내용을 슬쩍 건드리고 지나간다. 여기에서 상속이라는 개념이 나오는데, 사실 이게 대단한 것 같지만 별 것 아니다. 뭐 처음 보는 사람한테는 당연히 한번에 이해가 가지 않는 내용일 수 있다. 그런데 클래스, 추상화의 개념을 잘 잡은 상태에서 적절한 예시 두어개만 보면 상속이 어떤 것인지 이해하는 데 별다른 어려움이 없다고 본다(괜히 탈것, 동물 예시를 드는 게 아니다).

 그런데 책을 보면 나는 이거 이해 못해서 포기하고 현업에서 일하다 생각없이 외워 쓰던 것이 상속인것을 어느순간 깨달았다고 하는데, 나한테는 이게 이렇게 보였다. "저는 구구단 5단이 어려워서 포기하고 살고 있었는데, 어느날 시계를 보다가 내가 무심코 시계를 보고 몇분인지 세는 것이 구구단 5단이라는 것을 깨달았어요." 상속을 이해도 못했는데 OOP 로 현업 개발을 "외워서" 하고 있었다니... 이게 가능한 것인지 잘 모르겠다. 그리고 자기 치부를 들어 어렵다는 것을 이렇게까지 설파할 이유가 어디에 있는지도 궁금하다. 그렇다고 상속과 다형성에 대해 제대로 설명하고 있느냐? 그렇지도 않다. overloading, overriding 이라는 말은 이 책 어디를 봐도 없다. 아니 이럴거면 아예 언급을 말던지. 진짜 이거 보고 어디 가서 "상속은 개발자들도 잘 모르는 거라던데요" 같은 말을 하는 사람이 있을까 걱정된다.

 

나도 모르겠다. 이정도만 하련다. 들여쓰기부터 시작해 if / for, 함수, 클래스와 상속까지 틀린 내용, 빠진 내용이 촘촘한 책이다.

그럼에도 불구하고

글을 쓰는 것, 특히 책을 쓰는 것은 매우 큰 용기와 노력이 필요한 작업인 것을 안다. 내 이름을 걸고 영원히 남을 유산을 남기는 행동이며, 여기에서 오는 모든 이슈는 오롯이 내가 다 책임져야 한다. 지식을 전달하고 다른 사람들이 이로 인해 인생에 영향을 받을 수 있는 글이라면 더더욱 조심해야 할 것이다. 이런 면에서 이 책, 혼자 공부하는 파이썬은 정말 잘못된 첫발을 내딛도록 해주는 책이다. 부족한 설명과 대충 넘어가는 중요한 개념, 어렵고 모르는 것이 당연하니 지나가라는 말까지. 대체 이걸 보고 뭘 배워야 할까? 내가 가장 안타까운 것은 이 책을 보고 프로그래밍을 시작할 사람들이 잘못된 시작을 하는 것, 이게 맞는 줄 알고 뿌듯해할 독자들이다. 그리고 가장 화나는 것은 이렇게 독자에 대한 책임감 없이 입문서를 쓴 저자의 태도이다.


그럼에도 불구하고 저자의 용기와 노력은 존중하는 바이다. 허나 부디 다시는 이런 책을 내지 않기를 바란다. 혼자 공부한 노트는 혼자 공부한 노트로 두자.

 

 

p.s.
그럼 뭘 보고 파이썬을 시작하면 좋을까? 정답이라고 꼽을 수 있는 책이 있는지는 잘 모르겠다. 최근에는 파이썬 입문 책을 잘 안 보기도 했고. 개인적으로는 구관이 명관이라고 점프 투 파이썬이나 바이트 오브 파이썬이 여젼히 유효한 선택지 안에 있지 않나 한다. 다만 너무 예전 버전의 파이썬을 사용하고 있는 것이 좀 불편한 부분일 수 있을 것 같다. 파이썬이 인기있는 언어가 된 지도 오래되었기 때문에 좋은 책이 많을 것이다. 최소한 내가 위에서 짚은 내용들이 잘 설명되어 있는 책이면 망하지는 않지 않을까 조심스레 예상해본다.

Comments