Hello Coding 그림으로 개념을 이해하는 알고리즘 Hello Coding
아디트야 바르가바 지음, 김도형 옮김 / 한빛미디어 / 2017년 4월
평점 :
장바구니담기


설명도 쉽게 잘 되어있고. 처음 입문자에게는 도움이 될 것 같아요.

댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
심플 소프트웨어 - 코드의 단순성, 가독성, 안정성, 유지보수 길벗 개발자 자기계발서
맥스 카넷-알렉산더 지음, 이미령 옮김 / 길벗 / 2019년 10월
평점 :
절판


우선 이 책을 선택한 이유는 두 가지 인데, 바로 책 제목과 저자의 이력 때문이다. 먼저 저자인 Max Kanat-Alexander는 구글의 Code Health 기술 책임자이자, 오픈소스 프로젝트인 버그질라 bugzilla의 수석 아키텍트라고 한다. 구글의 코드 건강을 책임지고 있다니 무슨 말이 필요하겠는가.

하지만 이 책을 읽기 전부터 저자를 알지는 못 했다. 이 보다 먼저 나의 관심을 끌었던 것은 “심플 소프트웨어” 라는 책 제목이었다. “어떻게 하면 코드를 심플하게 만들 수 있을까?”가 나에게 있어 최근의 큰 화두였기 때문이다.

책은 전체적으로 개발자에게 필요한 기본 원칙과 복잡성과 단순성에 대해 이야기한다. 또한, 많은 부분이 프로젝트 관리자에게 유용한 내용들도 함께 담고 있다. 각 장들은 저자의 경험과 사례를 예로 들면서 설명하는데, 구글의 이야기가 없다는게 좀 아쉽긴 하다.

“프로그래머를 위한 원칙”으로 시작하는 책은 초반부터 뼈를 때리는 말로 시작한다.

뛰어난 프로그래머가 되고자 하는 마음이 있어야만 뛰어난 프로그래머가 될 수 있다. 이런 마음이 없는 사람은 아무리 훈련을 받아도 뛰어난 프로그래머가 될 수 없다.

나는 뭐든 할 거면 그 분야에서 제일 앞서 나가기 위해 최선을 다해야 한다고 생각하는 사람이기 때문이다. … “어차피 할 거라면 왜 잘하지 않나요? 더 능숙하게 할 수 있으면 그 일을 하는 게 조금 더 즐겁지 않을까요?

그리고 너무 당연하다고 생각하지만 막상 코드를 작성할 때는 잊기 쉬운 점을 두 줄로 간단명료하게 정의한다.

  1. 구현에 드는 수고보다 유지 보수에 드는 수고를 줄이는 게 더 중요하다.
  2. 유지 보수에 드는 수고는 시스템의 복잡성에 비례한다.

메소드 하나가 400라인이 넘는 소스를 한땀한땀 따라가면서 분석하고 있는 요즘 너무 와닿는 내용이었다. 이어지는 장에서는 복잡성과 단순성이란 개념에 대해 흥미롭게 풀어간다.

특히 앞서 얘기 했지만 개발자 관점을 넘어 개발팀과 팀의 리더 혹은 프로젝트 관리자의 관점에서 필요한 이야기를 많이 하고 있다. “소프트웨어 회사에서 코드 복잡성을 다루는 법”에서는 복잡한 코드베이스를 단순하게 만들기 위해 관리자가 각 팀원들의 문제를 해결하는데 도움을 줄 수 있는 방법을 6단계로 나눠서 설명하기도 한다.

이 외에도 디버깅, 테스트, 프라이버시 등과 같은 다양한 이야기를 담고 있다. 개발자라면 한번쯤은 읽어 보면 좋을 내용이라고 생각한다.

이 책은 저자의 블로그 글들을 모아 책으로 만들었다고 한다. 그래서인지 (저자도 앞서 얘기하지만) 꼭 순서대로 읽지 않아도 문제가 없게 구성되어있다. 그리고 각 챕터들은 내용이 길지 않고 설명이 어렵지 않아서 쉽게 쉽게 읽히는 것 또한 장점이다.

한가지 아쉬웠던 점은, 어느정도는 코드 레벨의 접근도 기대했는데 그렇지 않았다는 점이다. (책 뒷 표지에 쓰인 “코드는 한줄도 나오지 않습니다” 라고 시작하는 서평을 책을 다 읽고 나서야 보았다.) 이 부분은 이 책 보다 먼저 쓴 “Code Simplicity” 라는 책이 도움이 되지 않을까?


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
파이썬을 활용한 부동산 데이터 분석 - 파이썬 기초부터 실제 부동산 데이터를 활용한 매매분석, 수요예측, 시각화까지 위키북스 데이터 사이언스 시리즈 35
박준규 지음 / 위키북스 / 2019년 5월
평점 :
절판


실제 통계 자료를 엑셀파일로 내려 받고, 이를 이용해서 각종 부동산 관련 지표를 뽑아볼 수 있는 실습위주의 서적.부동산에 관심이 있는 개발자라면 충분히 의미있는 책이 될 듯.

댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
케라스 창시자에게 배우는 딥러닝 Deep Learning with Python - 파이썬과 케라스(keras)로 배우는 딥러닝 핵심 원리!
프랑소와 숄레 지음, 박해선 옮김 / 길벗 / 2018년 10월
평점 :
구판절판


한동안 머신러닝 학습을 미루다가 케라스로 다시 도전해보기 위해 이 책(케라스 창시자에게 배우는 딥러닝)을 선택했다. 이유는 이 책에 대한 평도 좋았지만, 케라스를 배워보기 위함이 컸다. 케라스의 특징은 이 책에서도 설명해주고 있지만, 결국은 간결하고 사용하기 쉬운 api가 아닐까 싶다. 이 책의 모델을 만드는 코드를 보면 레고 블럭을 쌓듯이 이뤄진다. 딥러닝 자체에 대한 연구를 하고자 함이 아닌, 나처럼 필요한 기능을 빠르게 사용하기 위한 목적을 위한 사람에게는 최선의 선택이 아닐까 싶다.


책의 예제를 돌려보면 학습 시간이 꽤 걸리는 것들이 있다. 학습단계에서 이를 위해 컴퓨터를 새로 장만할 수는 없는 노릇인데, 말로만 듣던 colab을 처음으로 사용해 보았다. github의 코드나 구글 드라이브에 올려진 코드를 그대로 돌려볼 수 있어서 좋았다.


딥러닝 입문서를 조금 읽어 봤던터라, 책 전반의 용어들이 전혀 생소하지는 않았지만, 그렇다고 쉽게 느껴지지는 않았다. CNN에 대한 설명 부분만해도 아리송하게 느껴지는 부분에서는 ‘밑바닥부터 시작하는 딥러닝’ 책을 다시 펼쳐볼 수 밖에 없었다. 이런 점에서 머신러닝(딥러닝)에 완전 처음 입문하는 사람에게는 조금 어려울꺼 같은 느낌이 들었다. 물론 사람의 능력에 따라 다르겠지만, 프로그래밍에 경험이 있으면서 딥러닝을 먼저 실습위주로 경험해보고 싶은 사람이라면 크게 어려움이 없을 수도 있을 것 같다.


이 책의 장점을 여러가지 들수 있겠지만, 개인적으로는 다양한 데이터를 활용한 예제가 아닐까 싶다. 단순히 예제 나열하는게 아니라, 어떤 문제를 풀기위해서 어떤 모델을 활용하면 좋을지, 그리고 더 나은 성능과 결과를 위해 어떤 기법들을 활용하면 좋을지에 대해서도 충분히 설명을 곁들이고 있다. 거기다 이 예제를 기반으로 본인이 해보고자 하는 작업을 충분히 직접 해볼 수 있을꺼란 생각이 된다. 이와 관련해서 4.5절의 “보편적인 머신 러닝 작업 흐름”의 내용도 도움이 많이 될 것 같다.


8장에서는 머신러닝 커뮤니티에서나 보던 모델이나 기법들을 직접 구현해볼 수 있어서 신기(?)했다. 특히 니체의 글을 학습한 후 텍스트를 생성하는 내용을 보는데… 학습과 텍스트 생성이 반복적으로 진행되면서 이 녀석이 직접 글을 써내려가는듯한 느낌이 들어서일까, 순간 소름이 돋았다. ㅎㅎ; 나와 같은 반응을 저자도 예상했는지, “당연히 우연이 아닌 의미 있는 텍스트가 생성된다고 기대하지 마세요.” 라고 설명해준다.

이 책의 또 한가지 장점이라면 번역과 역자의 주석일꺼란 생각이 든다. 역자의 블로그에 가보면 그 이유를 알 수 있을 듯하다.


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
문과생도 이해하는 확률과 통계
야마모토 토시로 지음, 박윤경 옮김, 최원 감수 / 한빛아카데미(교재) / 2018년 6월
평점 :
절판


최근 수학의 중요성은 어느때 보다 높다고 생각한다. 머신러닝등에 관심을 가지고 입문서를 펼쳐보면 몇장 넘기지 않아서 수식들이 등장한다. 그나마 쉽게 설명한 책이나 인테넷의 글들이 많아서 깊이 있는 수학적 지식이 없더라도 어느정도는 이해를 할 수 있는건 사실이긴 하다. 하지만, 조금만 깊이 있게 공부해보려 하면 수학공부가 절실해 지는 것 같다. 그 중에서도 확률, 통계는 가장 필수적인 부분이라고 생각한다. 마침 한빛미디어의 <8월 나는 리뷰어다> 이벤트를 통해 이 책(문과생도 이해하는 확률과 통계)를 읽게 되었다.


책을 읽으면서 안 사실이지만, 저자가 입시전문 학원 강사라고 한다. 그리고 각 챕터들의 구성이 주어진 문제를 가지고 이야기를 이끌어간다. 여기까지 들으면 입시교재라고 생각 할 수 있겠지만, 전혀 그렇지 않다!! 나 역시 앞부분 내용에서 문제 풀이 방법을 알려주는 책인가 하는 불안감이 생겼지만, 읽다보니 이게 장점이라는 생각을 하게되었다. 이유는 각 주제별로 하나의 문제가 주어지는게 아니라 비슷한 난이도의 조금씩 다른 문제가 주어진다. 그렇다보니 하나의 주제에 있어서 반복해서 고민하고 풀어보는 과정을 격게 된다. 이해도가 더 높아질 수 밖에 없다. 물론 각각의 문제나 그에 관현 개념들에 대해서 정말 친절하고 알기 쉽게 설명을 해준다. (읽다보면 내가 다 이해하고 책장을 넘기고 있다는 착각을 하게 한다는게 단점이라면 단점일까? ㅡ.ㅡ;)


그리고 가장 마음에 들었던 것은, 수식이나 계산법을 먼제 제시하여 해결하는게 아니라, 경우의 수를 직접 종이에 써(그려)보며 확인해보라고 하는 부분이었다. 너무 초보적인것 같지만, 이게 몇번 반복하다보니 개념을 이해하는데 상당히 도움이 되었다. 물론 뒤로가면서는 앞의 내용에 대해서는 수식으로 설명하면서 다음 단계를 설명하는 식인데, 그러다보니 수시로 앞부분을 넘겨보는 일이 생기게 된다. ㅎㅎ


출퇴근 시간을 통해 읽고 퇴근 후 집에서 직접 문제를 풀어보려고 노력 했지만, 뒤로 갈수록 읽는 쪽에 더 집중했던 것 같다. 가능하면 몇번 더 읽으며 공부를 할 계획이다. 거기다 문과생도 이해하는 전기전자수학 이 책도 평이 좋은 것 같아, 우선 도서관에서 빌려 보려고 한다.


책표지


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo