프로그래밍의 고전인 ??The Unix Programming Environment??에서 통찰력과 탁월함을 보여준 브라이언 커니핸과 롭 파이크가 프로그래머의 생산성과 효율성을 위해 ??프로그래밍 수련법(The Practice of Programming??을 썼다.
프로그래밍 수련이란 단순히 코드를 작성하는 것만이 아니다. 프로그래머들은 설계, 디버깅, 테스트, 성능 개선, 소프트웨어 유지보수에 대한 트레이드오프(tradeoff를 다뤄야만 한다. 이와 함께 소프트웨어의 명세를 유지하면서도 호환성, 견고성, 안정성 같은 문제들을 고려해야 한다. 이 책에는 C, C++, 자바 외에도 다양한 언어로 작성된 실전 예제와 현실적인 충고들이 가득하다.
디버깅 : 버그를 체계적으로 빨리 찾는다.
테스팅 : 소프트웨어가 제대로 확실하게 작동하는지 보장한다.
성능 : 프로그램을 더 빠르고 작게 만든다.
호환성 : 소스를 바꾸지 않고서도 프로그램이 어디서나 작동하게 한다.
설계 : 목표와 제한사항의 균형을 맞추며 최적의 알고리즘과 자료구조를 선택한다.
인터페이스 : 상호작동을 제어하기 위해 정보를 은닉하고 추상화를 사용한다.
스타일 : 잘 읽히면서 제대로 작동하는 코드를 작성한다.
표기법 : 기계에게 더 많은 일을 시킬 수 있는 언어와 도구를 선택한다.