최원영 저
#비전공자를위한개발서적 #북리뷰
회사에서 Slack이라는 도구를 사용한다.
메시지에 이모지로 리액션을 추가할 수 있는데, "eye"를 검색하면 다양한 눈이 나온다.
그중에 동공이 흔들리는 눈도 보인다.
(엇, 그런데 gif 자동 재생이 안 되는 모양이다.. 기껏 만들었는데.. ㅜㅜ 그림을 누르면 움직인다.)
그리고 이 책은 눈빛도 흔들리고 있다.
(아, 2D라 실제로는 움직이지 않지만, 적어도... 내 눈엔 흔들리고 있다.. ㅋㅋㅋ)
내가 그랬다.
사실 뭐 지금도 줄기차게 흔들리고 있다.
개발의 ㄱ자도 모르던 내가 2년- 만에 완벽하게 마스터했다면 난 지금 여기 없을 것이다(?)
회의에 들어갔는데, 한국어인데 한국어가 아닌 언어를 말하고 있었다. 내용 자체도 이해해야 했지만, 회의가 끝난 후에 찾아볼 수 있도록 모르는 단어도 적어둬야 했다. 흔들리는 내 눈빛을 보며 불안했을 다른 팀의 개발자 님들을 생각하니, 지금 생각하면 온라인 회의여서 참 다행(?)인가 싶기도 하다.
아무튼,
난 이 책을 세 번 읽었다. (지금 계획해 둔 3권을 더 읽고 나면 아마도 다시 한번 읽지 않을까 싶다.)
입사 6개월 차- 1년 차- 그리고 1년 반차, 거의 6개월마다 읽었지만 이해의 정도는 달랐다.
"다 드루와"의 마음이었기 때문에 처음 읽었을 때도 좋다고 느꼈다. (종이질이 너무 좋은 것도 놀랐던 지점이었다). 하지만 어느 정도 지식이 쌓였을 때 이 책은 훨씬 더 좋았다. 비전공자를 위한 책이라고 쓰여 있지만 아무래도 분야가 분야이다 보니 지식이 전무한 사람과는 이해의 수준에 차이가 생길 수밖에 없는 것 같다.
내가 느끼는 이 책의 장점은 아래 네 가지 정도다.
제목에 충실하다.
짧다.
도움이 되는 그림이 나온다.
동떨어진 비유가 없다.
적다고 느낄 수도 있겠지만, 개발 서적에 뭐 더 큰 장점이 필요할까?
제목이 충실하다
기본만 알아도 대화의 수준은 달라지는데, 꼭 알면 좋은 주제들을 다룬다. "이 정도는 알고 있어야 대화의 맥락을 그래도 파악할 수 있다" 정도의 주제들인데, "어? 나 어디서 들어봤는데" 수준으로 훑고 넘어간다. 여기서 더 궁금해지면, 좀 더 깊은 수준의 공부를 하면 되기 때문에 제목에 매우 충실하다고 느꼈다.
그런데 아무리 훑는 수준이라도, 아예 생초보 - 조금 초보 - 조금 덜 초보의 시기를 지나며 쌓이는 경험과 이해도에 따라, 내가 받아들이는 수준의 정도는 확 달라지기 때문에 여러 번 읽는 것을 추천한다.
짧다
프롤로그와 목차를 제외하면 챕터 1은 14쪽에서 시작하며, 마지막 장은 238쪽이다. 거기에 각 챕터 시작 부분에 두어 페이지는 없고, 삽화를 고려한다면 실질적으로 읽는 페이지 수는 그렇게 많지 않다.
그림이 나온다
삽화는 글의 이해를 돕는 데 사용하는 도구다. 그런데 큰 도움이 되지 않는 삽화들이 많다. 어쩔 때는 '얘가 왜 여기에 있지'라는 생각이 들게 만드는 삽화들도 있다.
(물론 그런 삽화들이 없는 것은 아니지만) 이 책 대다수의 삽화는 적어도 내가 느끼기엔 글 내용을 요약한 삽화였고, 글을 한눈에 볼 수 있는 삽화를 제공하기 위해 꽤 많은 신경을 쓴 것 같았다.
동떨어진 비유가 없다
대부분의 비전공자 서적은 비유가 굉장히 많다. IT 지식이 없어도 이해할 수 있는 만한 예화를 들다 보니, 가끔 너무 갈 때가 있다.
기본 개념을 모르는데 개념을 비유로 이해하고자 하면, 개념도 비유도 이해하지 못해 더 혼란스러울 때가 있다. (실제로 나중에 다시 읽어봤을 때 왜 이런 비유를 들었는지 그제야 저자를 이해할 때도 있었다.) 그래서 개인적으로는 현실적인- 실무에서 사용할 만한 비유나 예시를 들어주는 편이 훨씬 더 와닿는다.
이 책은 그런 측면에서 다른 책에 비해 동떨어진 설명이 적고, 비전공자로 겪었던 경험들을 예시로 들어 이해하기에 더 좋았다.
이대로 마무리하기 아쉬우니 (개인 취향이 많이 가미된) 아쉬웠던 점도 얘기해 보면,
위에도 잠깐 얘기했지만 종이질이 너-무 좋다.
글씨 크기도 좀 크다. 약간 어린이책 같은 느낌?
그림 좀 줄이고, 글씨랑 행간도 좀 줄이고, 종이도 좀 얇은 거로 해서 책을 좀만 더 작게 만들어줬으면 더 좋았었겠다 싶다.
프롤로그
1장 오리엔테이션
1-1. 왜 자꾸 파이썬(Python)을 배우라고 하는 거죠? (feat. C 언어, 자바(JAVA)를 배워봐)
1-2. 가장 먼저 알아야 할 지식은 '프로그래밍 언어'가 아닙니다
2장 프로그래밍 언어 & 운영체제(OS)
2-1. 프로그래밍 언어가 '언어'라고?(못 알아듣겠는데…)
2-2. 개발자는 앉아서 뭐 하는 거지(뭔가 치긴 치는데…)
2-3. 뭐가 이렇게 많아?(C 언어, 자바, 파이썬… 등)
2-4. 컴퓨터 구매해 보셨나요?(컴퓨터의 구성 요소)
2-5. 우린 왜 이 이야기들이 낯설까?
2-6. 우리가 자바 최신 버전을 설치해야 하는 이유
3장 네트워크, 클라이언트, 서버
3-1. 국민학교와 초등학교 시절 이야기
3-2. 한강에서 카카오톡을 다운로드하고, 실행하면 일어나는 일들
3-3. 당신은 계속 뭘 달라고 하고, 누군가는 계속 뭘 준다
3-4. 도대체 우분투가 뭐죠?
3-5. 개인 서버를 운영하면 힘든 이유
4장 API와 JSON
4-1. POST는 뭐고, GET은 뭐죠?(feat. 개발자의 암호문)
4-2. 요청과 응답을 주고받을 때의 형식
4-3. API 문서 살펴보기
5장 애플리케이션
5-1. 설치한 뒤 실행하는 애플리케이션의 특징
6장 웹(Web)
6-1. 웹은 어떻게 이루어져 있고, 어떻게 동작할까?
6-2. 웹 개발하다가 못해 먹겠다고 말하는 이유
6-3. 반응형으로 코딩하면, 더 비싸나요?(그게 뭔데요?)
6-4. 애플리케이션 이야기를 하는데, 왜 자꾸 웹 개발자에게 말하라는 거죠?
7장 데이터베이스와 이미지 처리
7-1. 쇼핑몰을 생각해 봅니다. 여기서 데이터는 대체 뭘까요?
7-2. 클라가 들고 있다는 게 뭐죠?("클라에 저장돼요. 클라가 가지고 있어요")
7-3. 배너 좀 바꾸려는데, 자꾸 자기한테 말하면 안 된대요. (왜 자꾸 사람이 바뀌는 건데…)
8장 프레임워크와 라이브러리
8-1. 코코아요? 그거 먹는 거잖아요. 그리고 자꾸 왜 도서관 얘기를 하는 거죠?(프레임워크, 라이브러리)
9장 협업, 소스관리, 디자인
9-1. 커밋이요? 머지요? 뭐요? 198
9-2. '왜 말을 저렇게 하지.. 둘이 싸웠나?'(feat. 디자이너와 개발자)
10장 정리
10-1. 개발을 시작하면 일어나는 일들
10-2. 아웃트로
부록- API 문서를 통해 서비스 분석하기