Media Log

Code Complete - 10점
스티브 맥코넬 지음, 서우석 옮김/정보문화사

이 책은 말이 필요 없는 프로그래머들의 필독서이다. 좋은 코드를 작성하기 위해서 필요한 정보들을 내용으로 담고 있다.책의 난이도는 초급이면서 동시에 초고급이다.
초급자에게는 그 나름대로 좋은 지침을 주고, 고급 개발자에게는 고급 개발자들만이 보이는
문장이 있다.

신입사원 때 이 책을 조금 읽다가 딱딱하고 지루해서 그만두었었는데, 회사에서 개발을 꾸준히 하다가 1년 쯤 지나서 다시 이 책을 뒤적거렸을 때에는 예전에는 보이지 않던 아름다운 지침들이 조금씩 눈에 들어오는 것을 느꼈다.

아직도 많은 부분을 이해하지 못하고 넘어가지만, 어쩌면 이 책에 있는 모든 문장  하나하나가 그런 좋은 지침일지도 모른다.
단지, 아직 경험이 미숙해 의미가 와닿지 않고 스쳐지나가게 될 뿐. 조금 더 경험을 쌓고 다시 읽을 때 마다 새로운 느낌을 갖게 될 것 이다.

1년에 한 번 정도는 새로 읽어보는 것도 좋지 않을까?

실제로 Jeffrey Richter도 이 책을 가장 먼저 추천하는데, 그 역시 10년동안이나 이 책을 읽고 있지만 아직도 이 책에서 많은 것을 배운다고 말한다.

번역은 내가 너무 좋아하는 서우석씨가 했으며, 역시 훌륭하다.

목차는 다음과 같다.

Part 1 기초 수립
Chapter 1 소프트웨어 구현으로의 초대
Chapter 2 소프트웨어 개발의 이해를 돕기 위한 비유
Chapter 3 준비는 철저하게 : 선행 조건
Chapter 4 구현 시 결정해야 할 핵심적인 사항들

Part 2 고급 코드 생성하기
Chapter 5 구현 설계
Chapter 6 클래스 다루기
Chapter 7 고급 루틴
Chapter 8 방어적인 프로그래밍
Chapter 9 의사코드 프로그래밍 프로세스

Part 3 변수
Chapter 10 변수 사용 시 일반적인 문제
Chapter 11 변수 이름의 효과
Chapter 12 기본 데이터 형
Chapter 13 특이한 데이터 형

Part 4 명령문
Chapter 14 직선형 코드 구성하기
Chapter 15 조건문 사용
Chapter 16 루프 제어
Chapter 17 특이한 제어 구조들
Chapter 18 테이블을 활용하는 방법
Chapter 19 제어와 관련된 일반적인 문제

Part 5 코드 향상
Chapter 20 소프트웨어의 품질에 대한 조망
Chapter 21 협력적인 구현
Chapter 22 개발자 테스트
Chapter 23 디버깅
Chapter 24 리팩토링
Chapter 25 코드 최적화 전략
Chapter 26 코드 최적화 기법

Part 6 시스템 고려사항
Chapter 27 프로그램의 크기가 구현에 미치는 영향
Chapter 28 구현 관리
Chapter 29 통합
Chapter 30 프로그래밍 도구들

Part 7 소프트웨어 장인정신
Chapter 31 배치와 방식
Chapter 32 스스로를 설명하는 코드
Chapter 33 개인 성격
Chapter 34 소프트웨어 장인(匠人)에 대한 주제
Chapter 35 더 많은 정보를 얻으려면