'책'에 해당되는 글 7

  1. 2008/03/30 The Practice Of Programming by Brian W. Kernighan _ 김재호 (1)
  2. 2008/03/23 Paul Graham의 해커와 화가 _ 김재호 (0)
  3. 2008/03/18 이재규의 C로 배우는 알고리즘 _ 김재호 (7)
  4. 2008/03/17 Jeffrey Richter의 Windows via C/C++ _ 김재호 (0)
  5. 2008/03/15 HTTP - The Definitive Guide _ 김재호 (0)
프로그래밍 수련법 - 10점
브라이언 W. 커니핸.롭 파이크 지음, 장혜식.신성국.김정민 옮김/인사이트


회사에 처음 들어왔을 때 쯤, 이런 저런 명서들을 찾아서 구해 볼 때에 이 책을 알게 되었다.

원서로 가지고 있긴 하지만, 앞 부분만 깨작깨작 거리다가 결국 못 읽고 있었는데, 얼마전에 '프로그래밍 수련법' 이란 이름으로 번역서가 출간 되었다.


이미 훨씬 이전에도 '프로그래밍의 모든 것' 이라는 이름으로 번역서가 있기는 했는데, 책 표지에서 80년대 냄새를 잔뜩 풍겨 번역 또한 엉성할 것만 같아 구해 보지는 않았다.

이 책의 목차는 다음과 같다.

Capter 1: Style
Chapter 2: Algorithms and Data Structures
Chapter 3: Design and Implementation
Chapter 4: Interfaces
Chapter 5: Debugging
Chapter 6: Testing
Chapter 7: Performance
Chapter 8: Portability
Chapter 9: Notation

프로그래밍의 전반적인 내용들을 주제로 삼고 있으며, 이 책을 보면서 스티브맥코넬의 Code Complete와 너무 닮았다는 느낌을 받았다.

물론 Code Complete는 2004년도에 2판이 다시 쓰여진 반면에 이 책은 1999년도에 쓰여졌다. 또한 Code Complete는 1000 페이지에 달하는 분량이고 이 책은 300여 페이지의 정도의 내용을 담고 있기 때문에 깊이 면에서는 이 책이 Code Complete를 따라 갈 수 없는게 당연하다.

Code Complete가 책보다 훨씬 낫다! 라고 말을 하는 꼴이 되어 버렸지만 그렇지는 않다. 타겟으로 하는 독자 수준이 다르기 때문이다.
Code Complete는 Jeffrey Richter가 10년이나 읽고 있지만 아직도 이 책에서 배운다고 말할 정도로 깊이 있고 수준 있게 작성되었지만,
The Practice of Programming은 프로그래밍에 처음 입문 하는 사람들을 목적으로 작성 되었다.

저자가 의도한 바에 맞게 책을 골라서 읽으면 될 것이다.

모든 사람들이 읽을 있도록 언어는 C로만(브라이언 커니건의 주무기인) 작성된 것이 아니라, C++ 과 Java를 섞어서 타겟층을 넒게 잡았다.

어쩌다 보니 Code Complete 이야기를 너무 많이 하게 되었는데, 비슷한 주제를 담고 있어서 비교를 안할 수가 없었던 것 같다.

다음 주에는 Code Complete에 대해서도 한 번 써봐야겠다.

아참, 이책의 번역서 모습이다.^^
좋은 책을 힘들여 번역해 주신 분들께 진심으로 감사드립니다.

  1. 프로그래밍 수련법

    Tracked from The note of Legendre 2008/12/21 13:59

    The C Programming Language를 집필한 브라이언 커니핸이 지은 The Practice of Programming의 번역서이다. 인포북을 통해 같은 원서의 번역서가 2000년에 나온적이 있었지만 절판된 터라, 이 책은 인사이트에서 재번역되었다. 이 책에서는 C, C++, Java, Perl, Awk 등을 예제로 사용하고 있다. 스타일부터 표기법까지 9가지 장으로 프로그래밍에서 부딪치는 문제를 정리 및 분류하여 설명하고, 예제를 들어..

트랙백 주소 :: http://www.crazytazo.com/16/trackback/
옵션
댓글 달기
해커와 화가 - 10점
폴 그레이엄 지음, 임백준 옮김/한빛미디어

어떤 사람들은 폴 그레이엄이 건방지거나 혹은 그가 주장하는 바가 틀렸다고 말하면서도 하나 같이 그의 글은 재밌다고 한다. -에릭 싱크, 조엘, 그리고 이 책의 역자인 임백준까지

나도 폴 그레이엄의 글을 좋아한다.

이 책을 읽고 나서 그의 글에 매료되어서 개인 블로그즐겨찾기 해두고 종종 가보곤 한다.( 물론 내 빌어먹을 영어 실력 탓에 재밌는 최신 글들을 잘 이해할 수 없다는 것이 화가 나지만. )

이 책의 내용은 조엘 온 소프트웨어 처럼, 폴 그레이엄의 블로그에 이미 쓰여진 많은 에세이들을 기반으로 작성되었다.

나는 그가 그림을 얼마나 잘 그리는 지는 따위는 관심 없다.
단지, 이 책에서 그가 LISP, Python, 펄, 그리고 해커를 말할 때면 내 집중력은 200%가 되었다.

프로그래밍 언어에 대한 비교는 언제나 많은 논란거리를 가지고 오는 위험한 주제이기도 하면서 또한 프로그래머들의 흥미를 유발하는 최고의 주제이기도 하다.

그는 LISP에 대한 광신도였다.

그의 블로그에서 그는 자바가 쓰레기라고 말하고 있지는 않지만, 자바 프로그래머는 파이썬 프로그래머보다 멍청하다고 말한다.
자바 사람들이 반발하자, 그는 자바 프로그래머가 멍청하다는 것이 아니라 상대적으로 파이썬 프로그래머가 영리하다. 라고 다시 말한다.

그는 LISP에 대한 광신도이면서 다른 언어로는 파이썬과 펄, 그리고 루비를 인정한다.
에릭 레이몬드가 윈도우즈를 쓰레기라고 번번히 말하듯이 그 역시 다른 언어들은 가차없이 깍아내린다.
아마 그는 속으로 이렇게 생각하고 있을 것이 분명하다.
( 도대체 어떻게 자바 따위로 프로그래밍을 할 수 있다는 말이지? )

하지만 내가 사용하는 언어가 쓰레기가 된들 뭐 어떤가. 그의 글은 재밌는걸.
그리고 LISP와 파이썬이 미치도록 공부하고 싶어지는 것을.

실제로 그랬다. 책을 덮고나서부터 머리속에 LISP와 파이썬 밖에 없었다.
LISP를 접해보려고 했지만, 괜찮은 국내 서적을 찾을 수가 없었다.
인터넷에서 배우지 뭐, 했으나 괴물 형상의 괄호 투성이 언어와 영어로된 설명은 날 금방 질리게 만들었다.

LISP는 나중으로 미뤘지만 Python과 펄 그리고 루비 마저 버릴 수는 없었다.
하나씩 책을 구해서 읽어보고는 그 중 내 두번째 무기로써 Python을 선택하게 되었다.
( 첫 번째 무기는 물론 C++ 이다. ^_^ )

비즈하드 프로젝트를 하면서 파이썬으로 뭔가를 만들어보고 싶은 욕구가 넘쳐난다.
적당하다고 생각되는 몇 몇 기능들은 이미 다른 언어로 만들어져 있기 때문에 굳이 바꾸지 않고 앞으로 새로 추가될 기능에 대해서 한 번 시도해 보려고 한다.

아 얼마나 즐거울까.



트랙백 주소 :: http://www.crazytazo.com/15/trackback/
옵션
댓글 달기
C로 배우는 알고리즘 1 - 10점
이재규 지음/세화


2004년 8월. 제대하고 설레이는 마음으로 학교에 복학했을 때, 내가 가진 것이라곤 0점대 방어율의 끝내주는 성적표 밖엔 없었다.

컴퓨터학과지만 컴퓨터는 나하고 적성에 안맞는다고 생각해서 전과를 하려했으나 전과도 학점이 뒷받침이 되어야 할 수 있다는 것을 깨달은 때였다.

선택의 여지가 없었다. 학교를 버리고 다른 일을 해보겠다는 용기는 내게 없었기 때문이다.

지금도 너무 고맙게 생각하는 먼저 복학한 좋은 친구들의 도움을 받아 공부를 했다.
C언어로 숫자를 입력받아 홀수인지 짝수인지 결과를 출력하는 프로그램,
점수를 입력받아 평균을 구하는 프로그램.
이 정도의 간단한 프로그램을 작성할 수 있게 되었을 때 쯤에,
어라 이것도 꽤 재밌네? 라는 생각을 갖게 되었다.

하지만 군대가기전 그토록 고통스러웠던 링크드리스트에 다시 부딪히게 되었을 때 나는 다시 한 번 절망했다.
C 언어 책을 몇 권을 읽었는지 모르겠다. 연결리스트가 어떤 특징을 가지고 있으며 어떻게 어떻게 동작한다. 라는 것은 충분히 이해했다.
하지만! 책을 덮고 텅빈 에디터 안에서 코드를 작성 해보려고 하면 머리 역시 비어버렸다. 코드를 한 줄도 작성할 수가 없었던 것이다.

그 때 나를 구해줬던 것은 바로 이 책이다.
대학교 1학년 때 이미 이 책이 좋다는 이야기를 듣긴 했었지만, 너무 옛날 책이라서 이제 나오는 책들은 당연히 이 책보다 좋을 것이라고 생각을 했다.

물론 책을 보고도 바로 연결리스트를 이해할 수는 없었지만, 코드를 작성하고 지우고 다시 설명을 읽어보고 하면서, 슬슬 C 언어에 눈을 뜨게 되었다.

이후의 학부 생활은 순탄했다. 학부생 수준의 컴퓨터 과학은 C언어만 할 알아도 그것을 못하는 다른 학생들에게 이미 절반 이상 승리한 것이나 다름 없기 때문이다.

저 때 즈음에 힘들어서 포기하고 다른 길을 찾는 사람들에게 이 책을 강력히 추천한다.
만일 지금 이 글을 읽는이가 학부 1,2학년생이라면 이 책의 모든 내용을 따라 해보고, 또 나중에는 책을 덮고 직접 작성해보라.
아마도 학기가 지나 갈수록 점점 더 재밌고 편해질 것이다.

  1. i'm in 2008/03/18 19:55 답글수정삭제

    공감하는 부분이 있어서 트랙백 남겼습니다.

  2. Tae Jung, Kim 2008/03/21 10:31 답글수정삭제

    우~ 이건 오픈아이디 지원해주냐??
    왜 내건 안되는겨?? -0-;
    암튼;;
    내가 생각할 때는 너는 아직도 부족해 ㅋ
    컴퓨터랑 적성이 안 맞는거 같아;;
    접어;;

  3. 난 뭘로 공부했나?

    Tracked from 그저 그런 이야기 2008/03/18 19:48

    나름 대학시절엔 좀 괜찮게 나갔었다. 고등학교때 공부를 결과적으로 그리 열심히 하진 않았지만 - 사실 열심히는 했던 것 같다. 다만 성적이 원하는 만큼 나오질 않았을 뿐이지 - 대학 가서는 나름 괜찮은 성적을 유지했었다. 그때 도움이 되었던 것이, 첫번째는 국민학교 - 이땐 초등학교가 아니었으니까 - 때 배운 베이직하고 대학 들어가서 처음 접한 "클리퍼 5.01"이라는 책. 학교를 집에서 멀리 떨어진 곳으로 다니다보니 - 지방대 출신 - 주말마다 기..

  4. 홍환민 2009/01/08 14:05 답글수정삭제

    이책 참 좋지요^^

트랙백 주소 :: http://www.crazytazo.com/13/trackback/
옵션
댓글 달기
Windows Via C/C++ (Hardcover) - 10점
Richter, Jeffrey/Microsoft Pr


내가 제일 좋아하는 Jeffrey Richter의 최신 책이다.
이전에는 Programming Application Windows 라는 이름의 책이었으며,
지금은 이름이 바뀌긴 했지만 사실상 Programming Application의 5번째 에디션이다.
제프리 리쳐의 블로그에서는 마지막 책이라고 소개하고 있다.
앞으로 더 이상 책을 안쓰겠다는 것은 아니고, Native 책이 아니라 .NET 책만 쓰겠다는 이야기다.

이 책 4판은 번역서가 있으나 번역 상태가 그다지 좋진 못하다.
하지만 영어에 익숙하지 않다면 번역서를 선택하는 것이 좋을 것이다.
( 하지만 안타깝게도 지금은 절판되어 나오지 않아 그다지 쉽게 구할 수는 없다. )

목차는 다음과 같다.

1장 Error Handling
2장 Working with Characters and Strings
3장 Kernel Objects
4장 Processes
5장 Jobs
6장 Thread Basics
7장 Thread Scheduling, Priorities, and Affinities
8장 Thread Synchronization inUser Mode
9장 Thread Synchronization with Kernel Object
10장 Synchronous and Asynchronous Device I/O
11장 The Windows Thread Pool
12장 Fibers
13장 Windows Memory Architecture
14장 Exploring Virtual Memory
15장 Using Virtual Memory in Your Own Applications
16장 A Thread's Stack
17장 Memory-Mapped Files
18장 Heaps
19장 DLL Basics
20장 DLL Advanced Techniques
21장 Thread-Local Storage
22장 DLL injection and API Hooking
23장 Termination Handlers
24장 Exception Handlers and Software Exceptions
25장 Unhandled Exceptions, Vectored Exception Handling, and C++ Exceptions
26장 Error Reporting and Application Recovery

너무 중요한 토픽들을 다루고 있으며,
그 내용들은 걸작이다.

커널 객체와 예외처리, DLL에 관한 내용들은 이 책의 꽃 중의 꽃이다.

신입사원 때 이 책을 읽으면서 너무나 많은 것을 배웠다.
아직도 도저히 이해할 수 없는 부분이 태반이지만, 한번씩 다시 읽을 때마다 많은 도움을 얻게 될 것이라 생각한다.

국내에서 출시된 시스템 프로그래밍의 책 중 대부분이 이 책의 번역판이라 할 수 있다.
국내서적 중 가장 잘써진 책이라고 생각 되는 윤성우씨의 '윈도우즈 시스템 프로그래밍' 역시 이 책의 토픽 중 몇 개를 좀 더 얉은 수준에서 쉽게 설명 한다.

비트에서 이 책(Progrmming Application Windows)으로 강의를 한 것으로 알고 있는데, 아마도 역시 제프리에게 영향을 많이 받았을 것 이다.

만일 아직 Jeffrey Richter의 이름을 모르고 있다면 꼭 기억해두라.
그리고 Windows 개발자라면 그 어떤 책보다도 이 책을 먼저 무조건 구해서 봐야만 한다.

트랙백 주소 :: http://www.crazytazo.com/12/trackback/
옵션
댓글 달기
HTTP - 10점
David Gourley & Brian Totty & Marjorie Sayer 외 지음/OReilly(오라일리)


회사에서 MFC 기반의 윈도우즈 데스크탑 어플리케이션과
윈도우즈 기반의 서버들을 개발하고 있지만
클라이언트고 서버고 웹페이지와 연동 되어야 하는 작업이 많다.
앞으로는 더욱 더 그렇게 변할 것이고.

항상 웹 어플리케이션에도 관심이 있어서 이런 저런 책들을 봤었는데,
이 책이 브라우저 내부 동작과 전반적인 웹 애플리케이션 지식에 대해서 가장 많은 이해를 가져다 주었다.

원서이기는 하지만 영어 찐따인 내가 처음으로 완독했을 정도로
쉽게 작성되어 있다.

매 개념을 소개 할 때 마다 항상 존재하는 주옥같은 그림들은 문장을 잘 이해하지 못했더라도 꼭 이해하고 다음으로 넘어갈 수 있게 해준다.
이 책이 가진 최고의 장점이다.

태그 : HTTP, HTTP 책,
트랙백 주소 :: http://www.crazytazo.com/4/trackback/
옵션
댓글 달기