프로그래머의 능률향상에 대한 내용을 다룬 책이다. 툴 사용에 대한 내용부터 시작하여 개발 방법론에 이르기까지 적은 분량으로 여러가지 이야기를 한다.

저자가 줄기차게 단축키를 활용할 것을 강조한다. 100% 옳은 말이라고 생각한다. 죽어라고 마우스질만 하는 나를 반성하게 된다.

책의 문체가 상당히 좋다. 뭔가 냉소적(?)이면서 이 분야를 아는 사람이라면 쓴 웃음짓게 하는 문체가 정말 일품이다.

다만 책의 예제 중에 잘못된 것 같은 부분이 있다. 루비와 자바의 생산성을 다루는 부분에서 아래와 같은 예제 코드를 들었는데,






        # 루비 버전
        class String
            def blank?
                empty? || strip.empty?
            end
        end
        // 자바 버전
        public static boolean isBlank(String str) {
            int strLen;
            if (str == null || (strLen = str.length()) == 0 ) {
                return true ;
            }
            for (int i = 0; i < strLen ; i++ ) {
                if((Character.isWhitespace(str.charAt(i)) == false) {
                    return false ;
                }
            }
            return true ;
        }

책에서는 자바가 불필요하게 복잡하다고 말한다. 그러나 위 코드가 저런 모양이 된 것은 비교회수를 조금이라도 줄여서 성능을 높이려고 했기 때문이다. 만약 성능을 전혀 고려하지 않아도 된다면 루비 코드와 비슷한 모양새가 나온다. (물론 자바의 언어적 한계로 인해 루비 코드와 완전히 같게 되지는 않는다.)

    public static boolean isBlank(String text) {
        return (text == null
                || text.trim().length() == 0 ) ;
    }

가격도 그리 비싼편이 아니고 책이 얇아 읽는 부담도 없어서 좋은 책이다.


http://kangcom.com/sub/view.asp?sku=200909140001
Posted by lispholic
,
안드로이드 개발에 대해 다루고 있는 책이다. 원서(Android Wireless Application Development)가 2009년 9월에 출간되었고 이 책이 11월에 출간되었으니 최신의 내용을 담고 있어야 하는데, 불행하게도 한창 번역중일 때 안드로이드 1.6버전이 나오더니, 출간할 때가 다 되어서 2.0 이 나왔다 (게다가 현재 최신 버전은 2.1 ... ). 안드로이드가 너무 빨리 발전하는 바람에 피해를 봤다고 할 수 있다. (이는 다른 안드로이드 책도 마찬가지)

번역기간은 짧지만 번역하신 분이 상당히 공을 들였다. 이 책을 평가한 글 중에 "발로 번역했다"는 내용도 있는데, 곳곳에 있는 역주나 (코드를 일일이 직접 실행하고 테스트해보지 않았으면 그런 역주를 달 수 없다) 역자분이 직접 추가한 부록 등을 보면 절대 저런 소리는 하지 못할 거다.

아마 저런 평가를 한 것은 용어를 한글화해서 그런 것 같은데, 안드로이드가 국내에 소개되기 시작한지 얼마안되었기 때문에 이런 시도는 바람직하다고 생각한다. (하지만 이미 대세는 기운듯...)

혹시 번역상태가 궁금하면 http://occamsrazr.net/tt/223 에 역자분이 직접 추가한 부록을 올려놓았으니 읽어보면 될 것이다.

책은 안드로이드 개발에 대해 전반적인 내용을 다루고 있어 그리 깊이 있는 내용은 없다. 제목대로 처음 시작할 때 적합하다.

책 정보 보러가기


Posted by lispholic
,

Pro Git

프로그래밍 2009. 8. 6. 23:56
일단은 Git 관련 책이다. 그런데 책의 전체 내용을 웹에 공개해놓았다. http://progit.org/
게다가 책의 소스파일도 github에 공개했다.
Creative Commons Attribution-Non Commercial-Share Alike 3.0 license로 공개해서 내용을 수정하거나 pdf를 만들어 배포하는 것도 가능하다.
pdf를 만드는 방법도 나와있기는 한데 해보면 에러가 난다. 어차피 소스를 docbook으로 변환하여 pdf로 만들면 되기 때문에 크게 문제되지는 않는다.

훌륭한 저자와 출판사에 박수를...

 
Posted by lispholic
,

원서 제목은 Javascript The Good Parts 이다. 적은 분량에 꽤 깊이 있는 내용을 다룬다. (대신에 너비가 넓지 않다.) DOM 이나 브라우저간의 차이 등에 대한 것은 전혀 다루지 않고 오로지 자바스크립트 언어 자체에 대해서만 다룬다. 자바스크립트의 특색이 뭔지, 다른 언어와는 어떻게 다른지 , 자바스크립트를 자바스크립트답게 쓰려면 어떻게 해야 하는지에 대한 내용이 많이 나온다. 가볍게 읽어볼 책은 아니고 여러번 내용을 음미하며 읽어야 할 책이다. 

다만 일부 챕터에서는 프로그래밍 책이라기 보다는 마치 저자의 에세이를 읽는 듯한 느낌을 받게 된다(주로 후반부). 그리고 책 분량에 비하면 가격이 센 편이다. (아마존에도 이러한 것을 언급한 서평이 있다.)

하지만 내용을 놓고 보면 책 값이 그리 아까운 편은 아니다. 빠르게 자바스크립트 언어의 핵심만 알고 싶다면 이 책만큼 좋은게 없다.

앞에서도 이야기했듯이 이 책에는 자바스크립트 언어 이외의 부분은 안 나오기 때문에 PPK 등의 다른 자바스크립트 책과 함께 보는 것이 여러모로 좋을 것이다.

출판사 페이지
Posted by lispholic
,
그동안 내가 java를 공부하며 읽었던 책으로 java 학습 로드맵을 만들어보았다. 전적으로 주관적인 내용이므로 "이렇게 생각하는 사람도 있구나" 하고 받아들였으면 좋겠다.

시작하는 프로그래머를 위해

Head First Java

설명이 간단명료하면서도 쉽게 되어있다. 그리고 다른 책과는 다른 독특한 구성으로 재미있게 java를 익힐 수 있다. 다만 자세한 내용을 담고 있지는 않기 때문에 다른 입문서를 같이 볼 것을 추천한다. (내가 예전에 본 책은 "제대로 배우는 자바2" 라는 책인데, 지금은 절판된 상태이다.)

한걸음 더 나아가려면

자바 성능을 결정짓는 코딩 습관과 튜닝 이야기

java를 쓰면서 고려해야할 여러가지 내용을 담고 있다.글도 상당히 쉽게 써져있기 때문에 재미있게 읽을 수 있다.

Effective Java

위의 책과 비슷한 책이라 할 수 있는데, 훨씬 깊이 있는 내용을 담고 있다. 일반적으로 java 언어에 대해 잘 알지 못하거나 대충 넘어가던 부분에 대해 제대로 설명한다. java 프로그래머라면 꼭 읽어보기 바란다. 1판은 java1.4 버전을 다루며 번역서가 나와있고, 2판은 최신의 내용으로 업데이트되었지만 아직 번역서는 나오지 않았다. (영어를 두려워하지 말자. 최신의 내용일수록 번역안된 것이 더 많다.)

효율적으로 프로그래밍하기

프로그램은 사람의 일을 더 편하게 하기 위해 쓰인다. 프로그램을 만드는 일도 프로그램을 이용하여 좀 더 편하게 할 수 있다면 좋지 않겠는가? 툴을 익히는데는 시간이 좀 걸리지만 나중에 몇배의 시간으로 보상받게 되므로 꼭 익혀야 한다.

Java 세상을 덮친 Eclipse

최고의 Java 개발툴인 Eclipse 활용에 대한 책이다. 기본적인 사용법에서부터 리팩토링 기능에 이르기까지 이클립스의 여러 기능에 대한 내용을 담고 있다.

이클립스 프로젝트 필수 유틸리티 개정판

(이 책은 개정되기 이전에 샀다.) CVS,Ant,JUnit 등 개발할 때 필요한 여러 툴에 대해 설명하고 있으며, 이를 이클립스와 연계해서 사용하는 방법에 대해 설명한다.
"Java 세상을 덮친 Eclipse"가 이클립스 자체에 무게 중심을 두고 CVS등 다른 도구와 연계하는 방법을 설명하고 있다면, "이클립스 프로젝트 필수 유틸리티"는 다른 도구에 중심을 두고 Eclipse와 연계하는 방법을 설명한다.

잘 돌아가는 코드를 만들려면

자신이 만든 코드가 올바르게 동작하는지 확인하려면 테스트는 필수다.

테스트 주도 개발

프로그램을 테스트하려면 어떻게 해야 하는지, 어떻게 해야 테스트하기 쉬운 코드를 만들 수 있는지 설명한다. 이제 막 프로그래밍을 시작하려는 분에게 강추이다. 내가 처음 프로그래밍을 배우기 시작할 때 이 책을 봤더라면 지금보다 훨씬 나아지지 않았을까 하는 생각이 든다. 한번 안좋은 습관이 들면 바꾸기 어렵다.

좋은 코드를 만들려면

컴퓨터가 이해하는 코드를 만들 수 있게 되었다면 이제는 사람이 이해할 수 있는 코드에 대해 생각해보아야 한다.

Clean Code

이 책은 읽기 좋고 이해하기 쉬운 코드를 만드는 것에 대해 강조한다. 그리고 잘 돌아가는 코드이더라도 더 읽기 좋도록 끊임없이 개선해야 한다고 이야기한다. (일반적인 글쓰기에서는 이를 퇴고라고 하고, 프로그래밍에서는 리팩토링이라 한다.) java 프로그래머라면 이 책을 꼭 읽어야 한다. java 프로그래머가 아니라면 이 책을 읽기 위해 java를 공부할 것을 권한다. (단, 아직 번역이 안되었기 때문에 영어는 필수다.)
좋은 코드에 대해 이야기 하면서 패턴을 빼놓을 수 없다.

Head First Design Patterns

Head First Java 와 마찬가지로, 이 책도 다른 기술서와는 상당히 다른 방식으로 패턴에 대해 설명한다. 패턴이 무었인지 개념을 잡는데 매우 좋을 것이다.

소프트웨어 개발의 지혜: 원칙, 디자인 패턴, 실천방법

Clean Code 를 쓴 사람의 다른 책이다. 제목대로 프로그램을 만들때 지켜야할 원칙과 연관된 디자인 패턴, 이를 실천하는 방법을 설명하고 있다.

실전코드로 배우는 실용주의 디자인 패턴

다른 패턴관련 책이 패턴별로 작은 예제를 이용해 설명하는 것에 비해, 이 책은 어느 정도 규모가 있는 예제 2개에서 여러 패턴을 적용하며 디자인 패턴에 대해 설명한다. 원서의 뛰어난 내용에 번역한 분의 상당한 노력이 더해진 매우 훌륭한 책이다.

Java를 넘어서

java를 어느 정도 다룰 수 있다면 이제는 프로그래밍 그 자체에 대해 생각해볼 차례이다.

Beautiful Code

여러 고수들이 각자 자신이 생각하는 아름다운 코드에 대해 쓴 책이다. 초간단서평

생각하는 프로그래밍

책 제목대로 여러가지 생각할거리를 던져주는 책이다. 알고리즘부터 시작하여 튜닝 및 메모리 사용관련 내용까지 여러 이야기가 나온다.

실용주의 프로그래머

코딩시의 가이드라인부터 시작하여 설계에 대한 내용이나 사람사이의 관계에 이르기까지 프로그래밍 전반에 대한 좋은 내용을 담고 있다.
아래는 한빛미디어의 설문이다.(질문이 존칭이라서 답변도 존칭이다.)
1.현재 하시는 일은 무엇인가요?
소프트웨어 개발 회사에서 java, python, php 등으로 프로그램을 만들고 있습니다.
2.로드맵에서 각 단계별로 같이 보면 좋은 책이 있나요?
로드맵에는 넣지 않았지만 전산학 기초(자료구조, 알고리즘 등)에 대한 것을 꼭 공부해야 합니다.
3.로드맵에 대한 자신의 생각을 적어주세요.
이 로드맵에는 웹개발이나 DB등 다른 중요한 분야에 대한 것은 빠져있습니다. 이런 부분은 다른 분의 로드맵을 참고하시는게 좋을 듯 합니다.
ps. 내가 본 책만 넣다보니 한빛미디어 책의 수가 적다. 자격 미달이라고 탈락하면 낭패...
Posted by lispholic
,