뉴욕의 프로그래머
임백준 지음 / 한빛미디어 / 2007년 9월
평점 :
품절


샛노란 표지부터 웬지 화사하게 느껴지는 느낌을 주는 책이었다.
독자에게 상쾌한 기분을 전달하고자 하는 작가의 배려가 아닌가 싶다.
 
나 역시도 프로그래머란 웬지 마냥 핑크빛 설레이는 직업이 아닌
보라빛의 어둡지만 그렇다고 버릴수는 없는 보라빛의 일이라 생각하니 말이다.
 
소설로 구성되어 있는 이 책은 뉴욕에 있는 한 회사의 프로그래머들이 겪는 일상다반사에 대한 일이다.
 
가끔 전문적인 이야기들이나 소스들이 나오기는 하지만 프로그램 개발을 한번이라도 해봤던 사람이라면
( 학교에서 배운것이라 할 지라도 말이다.
  참고로 난 자바에 대해 아무것도 모르지만 책의 내용을 이해하는데 별다른 문제는 없었다.)
누구든 쉽게 이해할 수 있는 정도의 난이도일뿐더러 최근의 정보들도 언급이 되어 어렵지 않고 쉽고 편안하게 읽혀진다.
 
이야기는 회사에서 진행하고 있는 프로젝트를 수행하면서 일어나는 문제들과 함께 일하는 동료들에 대해서..
그리고 실 사용자들을 만나면서 겪는 에피소드로 구성되어 있다.
 
처음엔 별것 아닌 내용같아 보이나,
사용자와의 만남의 중요성.
동료와의 커뮤니케이션.
XP 존재에 대한 생각등..
저자가 그동안 겪고 느꼈던 것들이 얼마나 다양하고 많은지를 느끼게 하는 부분이었다.
 
그래서인지 초급 프로그래머로써 취해야할 태도나  프로젝트에 참여하는 의의..
이런 내용보다는 프로그래머로써 존재에 대한 고찰이라던지
보다 효율적인 프로그램 작성에 대해,
프로그래머로써 산다는 것에 대해
더 많은 생각을 하게 하였으니 말이다.

안타깝게도 16년간을 주입식 교육에서 벗어나지 못한 세대인지라
누군가가 손에 쥐어주기전까지 내가 그것을 얻기위해 어떻게 해야하는지 다양하게 사고하지 못하는
나의 한계를 느끼며 그것이 특히 프로그래머로 살아갈때 제법 큰 장애가 된다는 사실에 안타까워하고 좌절을 했었는데
그런 점에 대한 저자의 글들이 다시금 도전하게 되고 더 노력하게 하는 힘이 되었다.

그래도 아직은 슬프게도 내가 봐 온 대한민국에서 프로그래머로 살아간다는게 그렇게 녹록치만은 않은 세상인지라
프로그래머로 지내는것에 회의를 느낀 사람이나
과도기적인 사람들에게
처음 이 길에 발을 들였을때를 돌아보고 재정리하여 분발하게 하는 도약이 되지 않을까 싶다.


[좋은 글들]
- 보스의 신뢰를 받는 프로그래머는 점점 어렵고 중요한 일을 맡으면서 아키텍트나 관리자로 성장을 하게 되지만,
  신뢰를 받지 못하는 사람은 사무실 구석에 앉아서 평생 키보드를 두드리는 코더(coder)가 될 가능성이 높다.

 - 버그를 똑같이 재현하는 시나리오를 파악하는 것은 모든 디버깅의 첫 걸음임 가장 결정적인 실마리에 해당한다.
   ( 디버깅의 중요성은 아무리 강조해도 지나치지 않는다.
     내가 만들어내는 시나리오는 이미 프로그램을 알고 있는 상황이기때문에 최대한 사용자의 입장에서 디버깅을 해야한다)

- 프로그래밍 실력은 차이가 나도 페어프로그래밍을 수행하는데 아무 상관이 없다. 
  그렇지만 열정의 수준은 동등해야 한다.
 ( 코드리뷰의 매력에 빠진 요즘에 XP의 필요성을 절감하고 있어서 그런지
   현재 내가 수행하고 있는 프로젝트에도 속히 도입되었으면 하는 바램이다.)

- 프로그래머에게 커피는 스모선수에게 밥과 마찬가지다.
  스모선수가 밥을 먹고 힘을 쓰는 것처럼, 프로그래머는 커피를 마시고 힘을 쓴다.
  가장 많이 사용되는 프로그래밍 언어의 하나인 자바(Java)가 그런 이름을 갖게 된 것은 결코 우연이 아닐 것이다.
  ( 사실 나는 커피를 마시지는 않지만, 창조를 하는 사람들에게는 항상 무언가 마실것이 옆에 있다.
    5분의 Tea- Time이 가져다 주는 차분함과 안정감이란... 그 어떤것에도 비할바가 못 된다.)
 
- 소프트웨어 내부의 버그는 잔디밭에서 자라는 잡초와 같아.
  잡초가 자라면 약을 뿌려야지.
  하지만 아무리 약을 뿌려도 잔디밭에 핀 잡초가 완전히 사라지지 않는 것처럼
  아무리 노력해도 버그가 전혀없는 소프트웨어는  만들 수 없어.
  그렇지만 잡초를 완전히 제거할 수 없다고 해서 약을 뿌리는  노력조차 기울이지 않으면 어떻게 될까.
  얼마 지나지 않아서 잔디밭은 완전히 잡초밭이 되고 말거야.

  그약은 유닛테스트야(Unit Test).
 ( 완전 공감가는 말이었다. 
   세상에 존재하는 그 어떤것도 절대적인 완벽은 없다고 믿기에 최대한 완벽하기 위해 노력을 해야 한다고 생각한다. 
  그렇기에 디버깅과 함께 쉴세없는 테스트를 통해 프로그램속에  내재되어 있는 잠재적인 오류들을 찾아내야만 한다.)

- 사람들이 프로그래머는 어두침침한 방안에 앉아서 콜라캔에 둘러싸인 채 으르렁거리는 사람이라는 식으로
  생각하는  데에는 이유가 있다.
  엄청나게 어지럽혀져 있는 책상과 마루, 
  사방에 붙어있는 노란색 포스트잇,
  아무거나 적어놓은듯한 화이트보드.
  이런 것들을 보고 그렇게 생각하는 것이다.
  하지만 이들은 인간의 사고가 엉망진창으로 진행된다는 사실을  겉으로 드러내는 증거일 뿐이다.
  이렇게 엉망진창인 것들은 프로그램 안으로 들어갈 수 없다.
  그래서 그들은 프로그래머 주변에 쌓이는 것이다.
  ( 이유는 알 수 없지만 정말이지 주변정리가 깨끗한 프로그래머를 본적이 없다. 
    그래도 신기한건 그 어지럽혀진 주변에서도 자기가  원하는 것들은 정확히 잘 찾아내는 신기함!이었다.)
 
- 프로그래머들은 자기도 이해하지못하는 복잡한 알고리즘을  조합해서 소위 프로그램이라는 것을 '창조'한다.
  한달정도의 시간이 지나면 그들은 자기가 직접 타이핑한 코드의  내용조차 이해하지 못한다. 사기를 쳤기 때문이다.
 ( 첫 프로젝트가 오픈 한 후 내가 겪은 상황이었다.
   사용자들의 요구에 즉각적으로 대처하지 못하고 내가 만든 프로그램의 어느부분을 어떻게 고쳐야 하는지
   한참 머리를 싸매고 있을때, 과연 이게 내가 만든 프로그램인건지 싶었다. 
  1년도 되지 않았는데 내가 만든것도 기억하지 못한다는것은 '창조'가 아니라 '복사'가 아니었는지...)
 
- 프로그래머는 자기가 처한 상황의 한계를 날카롭게 의식하고, 새로운 돌파구를 열기 위해서
  언제나 자유분방한 사고를 해야한다.

- 프로그래밍에서는 평균적인 수준의 노동력을 유지하는 것보다 영감이 샘물처럼 솟아나는 소중한 순간을
  놓치지 않는 것이 중요하다.  그래서 프로그래머에게 자유는 생명이다.

- 칼 마르크스는 지성의 첫 걸음이 모든 것을 의심하는 것이라고  말했다. 
  경험이 풍부한 프로그래머는 사용자의 말에 신중하게 귀를 기울이지만 결코 의심을 멈추지 않는다.

 
- 프로그래머로서 일하는데 있어서 중요한 것은  주어진 질문에 대한 정답을 찾는 능력이 아니라,
  질문 자체를 정확하게 구성하는 힘이다.
 ( 개발내내 가장 힘들고 괴로운건 개발 요청사항이 수시로 바뀐다는 것이다. 
   그것은 자기가 원하는 바를 정확히 요구하지 못하는 사용자와 - 사용자의 요구를 자신의 논리와 생각에 맞추어 이해하는
                                                                                       
설계자   (혹은 컨설턴트) - 
   그리고.. 내놓아진 스펙을 객관적으로 파악하지 못하고
   질문도 없이, 의심도 없이 그저 주어진 대로만 만들어내는
   프로그래머 사이의 문제인것이다. )

- 팀에 기여를 하는 사람은 예의를 갖추고 시킨 일만 하는 사람이 아니라
  뻔뻔스러울 정도로 당당하게 자기주장을 내세우는 그들이었다.

 
- 프로그래머에게 있어서 사용자는 존재의 이유다.
  그들이 없으면 소프트웨어는 없고, 따라서 프로그래머도 없다.

- 좋은 프로그래머는 사용자와의 만남을 귀하고 고맙게 여긴다.

- 중요한 것은 문제의 핵심에 얼마나 정확하게  그리고 빨리 도달하는가이다.
  여기에서 더 중요한 것은 '빨리'가 아니라 '정확하게'이다.


댓글(0) 먼댓글(0) 좋아요(2)
좋아요
북마크하기찜하기 thankstoThanksTo