로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
서평보기
실용주의 프로그래머 : The Pragmatic Programmer [재출간판]
앤드류 헌트 | Insight (인사이트) | 번역서 | 2007-06-20
종합평점
도서수준
실용주의 프로그래머(The Pragmatic Programmer)는 성경이며 코란이다. 2007-06-15 오후 12:52:25 
평점
도서수준
조회수 (2617)
공감 (0)
박상민 님의 블로그
실용주의 프로그래머(The Pragmatic Programmer)는 성경이며 코란이다.

책을 읽고 난 후에 느낀 바를 한문장으로 표현한 것이다. 그만큼 이 책은 프로그래머들이 수시로 읽고 계속 느끼며 배워나가고 실천해야 할 내용들로 가득차 있다. 성경을 읽듯 매일 저녁 자기 전에 한 챕터씩 읽어야 하는 내용들로만 되어있다고 자부한다. 작년에 구입해서 대충 읽어보고 그 좋음을 알고 있었지만, 올해 정독을 하니 그 깊고 넓은 내용의 향연에 감탄하지 않을 수 없었다.

책의 부제는 From Journeyman to Master이다. 초보자들이 고수로 가기 위해서 마스터해야 할 모든 내용들이 있다. 물론 여기에 나와있는 것들을 완벽하게 몸에 습득해야 하는 것은 아니다. 어느 특정 파트에서는 고수가 될 수 있고 어느 특정 파트는 상황에 따라 지키지 않을 수 있다. 하지만 대략의 큰 흐름은 다 알고 대부분을 지켜나갈 때에 마스터가 되는 것이 아닐까?

이제 책의 내용들을 정리해서 보여드리겠다. 육하원칙에 따라서 이 책이 필요함을 말해보겠다.

What?
"무엇에 집중을 해야 하는가"라는 질문에 이 책이 대답을 해준다. 프로그래밍을 할 때 부가적인 것에 시간을 보내느라 집중을 하지 못하는 경우가 있다. 얼마전 문서 작업을 할 때에 테이블을 그리느라 문서 내용에 집중하지 못한 적이 있다. 비슷하게 프로그래밍을 할때에도 작은 기술하나를 몰라서 그 기술을 책에 있는 예제코드를 베껴올 때가 있다. 그나마 조금 성숙된 프로그래머라면 자기 코드 방식으로 바꿔서 넣을 텐데 그나마 초짜들은 그러지 못한다. 그리고 기술에 시선을 뺏겨 원래의 코드에 집중을 못하게 된다. 즉, 무엇에 집중해야 하며 정신이 분산되지 않도록 집중시켜주는 걸 가르쳐준다.

큰 그림을 보지 못해서 자기가 무엇을 하고 있는지 조차 모를 때도 있다. 내가 지금 프로그래밍을 시키는 대로 하고 있지만 이게 프로젝트에서 어떤 부분에 사용되지 못할 때가 있다. 다른 부분과 어떻게 연계가 되기에 이렇게도 인터페이스를 만들어줘야 하고 저렇게도 연결고리를 만들어줘야 할 때가 있는데 그런걸 고려하지 못할때가 있다. 큰 그림을 보고 무엇이 목적인지를 알려준다.

"이것이 무엇인가"라는 질문도 대답을 해준다. IT분야의 프로젝트는 다른분야와 달리 특히 모르는 용어가 많다. 새로 등장하는 용어들도 하루가 다르게 늘어나고 있고. 그것들을 많이 받아들이는 것도 좋지만 크게 어떤 분류의 기술들이 있는지 알려주고 어떤식으로 습득하는지 알려준다. 즉 고수가 되는 길을 알려주는 것이다.

How?
"어떻게 사용하는가"에 대한 질문에 대답을 해준다. UML, Testing, Automation등등은 우리가 가볍게 넘기고 제대로 사용하지 못하는 것들이다. 그런것들이 제대로 구축되는 것이 세계적인 IT수준을 따라잡는데에 밑바침이 되는 것은 자명한 일인데 그렇지 못하고 있다. 아니, 사실 조엘테스트도 모르고 있는 팀들이 많고 알고 있어도 고치려는 노력을 하지 않는 팀이 많다. 책에 나오는 사례를 보고 위기감을 갖고 방법을 익혀서 팀을 꾸려나가자.

"어떻게 효과적으로 사용하는가"에 대한 질문에 대답을 해준다. OOP, Refactoring등등은 효과적으로 사용하지 못하고 있는 것들이다. 또한 sed, DDD, Emacs등의 유틸리티는 이름은 들어봤지만 실제 프로젝트에서는 적용하지 못하는 경우가 많다. 우선 책을 읽어보고 도구를 익힌 후 연습문제를 풀어봐라. 그리고 프로젝트의 어느 부분에 적용할지를 고민해보라. 그것만으로도 한단계 업그레이드 된 자신을 발견할 것이다.

When?
"언제 이것들을 사용하지"라는 질문에 대답을 해준다. 지금부터라도 프로젝트에 적용하도록 노력해야 한다. 남들이 기존의 틀을 깨는 것을 싫어하면 네가 선봉장이 되어서 나서야 한다. 그리고 준비를 철저히 해서 남들을 설득하고 소통하는 능력을 길러야 한다. 어떻게 보면 그것이 가장 어려운 스킬이며 프로그래머에게 필요한 가장 중요한 스킬이다.

"언제 내용들을 습득하지"라는 우매한 질문에도 대답을 해준다. Chapter 5. 지식 포트폴리오를 보고 느껴라. IT기술의 발달로 우리는 넘치는 자료속에 살고 있다. blog를 구독해서 세계 최고수들의 블로그를 실시간으로 모아서 받을 수 있고, 인터넷 서점에는 좋은 책들이 넘치고, 각종 컨퍼런스에 참가하라는 이메일은 매일 같이 쏟아진다. 그런 것들은 어느 한 때에 업그레이드를 하는 것이 아니라 지속적으로 업그레이드 하는 것이라 한다. 매년 새로운 언어를 최소 하나는 배우고, 기술 서적을 분기마다 한 권씩 읽고, 수업을 들으며, 지역 사용자 모임에 참여하라!

Where?
"어디서 이런것들을 사용하지?" 프로젝트의 모든 곳에서 사용하라. 프로젝트의 요구사항을 논의하는 장소에서도, 디자인 단계를 말하는 칠판 앞에서도, 프로그래밍하는 컴퓨터 앞에서도, 마지막 출시전의 테스트에서도, 패키징을 하고 소프트웨어를 진화시키는 곳, 즉 모든 곳에서 이 책이 다루지 않는 곳은 없다.

Who?
"누가 이 책을 읽어야 하지?" 자명하다. CEO는 이 책을 읽어서 프로그래머를 이해하고 격려해 줄 수 있어야 하며, 팀장은 이 책으로 실용적인 팀을 이끌어야 하고, 프로그래머는 책을 숙달하여 실용주의 프로그래머가 되어야 한다!

Why?
To become a pragmatic programmer!

책을 읽으면서 "그래, 프로그래머라면 이 책은 꼭 읽어야 돼"를 몇번이나 반복해서 말한지 모를 정도로 감탄을 많이했다. 다들 꼭 읽어보고 책상에 항상 비치해두길 바란다.

 
코멘트 0   공감 0
코멘트작성
 
이메일주소수집거부