메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

행복한 프로그래밍: 컴퓨터 프로그래밍 미학 오디세이

행복한 프로그래밍: 컴퓨터 프로그래밍 미학 오디세이

한빛미디어

집필서

절판

  • 저자 : 임백준
  • 출간 : 2003-05-16
  • 페이지 : 264 쪽
  • ISBN : 8979142110
  • 물류코드 :1211
  • 초급 초중급 중급 중고급 고급
4.8점 (14명)
좋아요 : 18

프로그래밍의 가치와 행복은 아름다운 공식,
즉 알고리즘을 발견하는 데 있다.

책의 제목에 ‘프로그래밍’이라는 말이 들어가면 사람들은 대개 기술적이거나 전문적인 내용을 다루는 책을 떠올리기 마련이다. 하지만 ‘행복한 프로그래밍’이라는 제목에서 중점을 둔 부분은 ‘프로그래밍’이라는 명사가 아니라 ‘행복한’이라는 형용사이다. 다시 말해서 이 책은 특정한 기술이나 전공 지식을 담고 있는 책이 아니라 컴퓨터 프로그래밍 속에 들어 있는 미학(美學)을 전달하고자 하는 ‘소프트’한 이야기를 담고 있는 책이다.

[ 발췌 내용 ]

프로그램을 짠다는 것은 말하자면 얼굴을 두 손에 파묻고 머리를 벽에 찧어 가면서 깨달은 어떤 아름다운 공식을 컴퓨터에게 다정하게 가르쳐 주는 행위다. ─ 행복과 성취감 (7page)

시대를 앞섰던 라이프니츠의 이진수 체계가 육화될 대상을 찾지 못하고 철학과 신학이라는 천상의 영역에서 배회하고 있었다면, 치밀하게 구성된 부울의 이진수 체계는 적어도 하늘과 땅의 중간에 위치한 수학과 논리학 정도까지는 내려온 셈이었다. 이렇게 중간 정도의 위치에서 머물던 이진수 체계가 전기와 반도체라는 화려한 옷을 입고 (현대 컴퓨터의 모습으로) 마침내 인간이 살고 있는 땅위로 완전히 내려오게 된 것은 부울 이후에도 수십 년의 시간이 흐른 다음이었다. ─ 이진수 시스템의 발견 (17page)

해바라기 씨앗의 배열을 닮은 피보나치 수열은 매우 아름답지만, 그것을 컴퓨터 프로그램으로 옮기는 것이 별로 어려운 일이 아니라는 사실은 나중에야 알게 됐다. 그 때에는 화면에 나타나는 숫자들을 바라보는 것만으로도 황홀감을 느낄 지경이었다. ─ 영혼을 녹여서 만든 아름다운 공식 (25page)

화장실을 관리하는 사람들은 보통 화장실 문을 열어 보아서 화장지가 완전히 다 떨어졌을 때에 한해서 새 것을 갈아넣는다. 따라서 화장지를 한 개만 걸어 놓았을 때에는 맨 마지막에 걸린 사람들은 화장실 안에 화장지가 하나도 남아 있지 않은 ‘황당한’ 상황에 빠지기도 한다. ─ 생활 속에 숨어있는 알고리즘 (41page)

프로그래밍 언어는 비트의 법칙에 대한 깊은 이해와 언어학에 대한 통찰을 바탕으로 만들어지는 인공의 언어다. ─ 프로그래밍 언어와 컴파일러 (45page)

명령어 하나를 처리하는 데 걸리는 시간이 1msec이고 n의 값은 1,000,000이라고 가정해보자. 이론적인 속도가 n인 알고리즘이 실행되는 데는 불과 16분 40초가 걸리지만, 이론적인 속도가 n의 제곱인 알고리즘이 실행되는 데는 무려 30년 이상의 엄청난 ‘세월’이 걸리게 된다. ─ 빠르게 점점 빠르게 (59page)

퍼블릭 키는 누구나 내려받을 수 있는 키지만 정보를 암호화하는 데만 쓸 수 있고 암호화된 문서를 열어 보는 데는 사용될 수 없다. 암호화된 문서를 열 수 있는 키는 오직 프라이비트 키뿐이다. 퍼블릭 키는 은행 웹사이트 (혹은 암호화만 전문적으로 다루는 다른 기관의 웹사이트)에서 누구나 내려받을 수 있지만 프라이비트 키는 은행이 주머니 속에 꼭 감추어 두고 있기 때문에 아무도 손에 넣을 수 없다. ─ 퍼블릭 키와 프라이빗 키 (100page)

[ 대상 독자 ]
  • 컴퓨터 관련 전공 대학생, 대학원생
  • 프로그래밍 입문자
  • 현업 프로그래머
  • 프로그래밍에 관심있는 일반인
임백준 저자

임백준

한빛미디어에서 『팟캐스트 나는 프로그래머다』, 『임백준의 아카 시작하기』, 『폴리글랏 프로그래밍』, 『누워서 읽는 퍼즐북』, 『프로그래밍은 상상이다』, 『뉴욕의 프로그래머』, 『소프트웨어 산책』, 『나는 프로그래머다』, 『누워서 읽는 알고리즘』, 『행복한 프로그래밍』을 출간했고, 로드북에서 『프로그래머 그 다음 이야기』를 출간했다. 삼성SDS, 루슨트 테크놀로지스, 도이치은행, 바클리스, 모건스탠리 등에서 근무했고 현재는 맨해튼에 있는 스타트업 회사에서 분산처리, 빅데이터, 머신러닝과 관계된 업무를 수행하고 있다. 지디넷코리아와 한겨레신문에 정기적으로 칼럼을 기고하고 있고, 〈나는 프로그래머다〉 팟캐스트 방송 호스트로 활약 중이다.

에필로그

1장. 아침 7시 카페오레(Caf"e Au Lait) - 프로그래밍의 세계
     01.행복과 성취감
     02.프로그래머가 느끼는 성취감의 본질
     03.이진수로 이루어진 가상 세계
     04.이진수 시스템의 발견
     05.비트의 법칙
     06.영혼을 녹여서 만드는 아름다운 공식

     알고리즘 1-1 피보나치 수열 알고리즘
     알고리즘 1-2 러시아 농부 알고리즘

2장. 오전 10시 에스프레소 젤라틴(Espresso Gelatin) - 행복한 프로그래밍
     01.알고리즘의 이해
     02.생활 속에 숨어 있는 알고리즘
     03.프로그래밍 언어와 컴파일러
     04.언어의 모호성
     05.북풍표국의 냉혈독마
     06.빠르게 점점 빠르게
     07.소프트웨어 공포 이야기
     08.뫼비우스의 띠

     알고리즘 2-1 알고리즘의 속도 비교하기
     알고리즘 2-2 우주 왕복선 버그 찾기

3장. 오후 1시 카페 에스프레소(Caf"e Espresso) - 알고리즘과 해킹의 세계
     01.세일즈맨의 여행
     02.복잡성 이론
     03.블록버스터 해킹하기
     04.비밀 번호 해킹
     05.인터넷 은행은 안전한가
     06.사이버 머니 알고리즘
     07.콘웨이씨의 인생 게임

     알고리즘 3-1 숫자 바꾸기 알고리즘
     알고리즘 3-2 단어 뒤집기 알고리즘

4장. 오후 4시 카페 그린(Caf"e Green) - 소프트웨어 바깥 이야기
     01.프로그래머의 손끝
     02.소설처럼 읽히는 프로그램
     03.반얀 스트라우스트럽의 삼단 논법
     04.웹 브라우저의 혁명
     05.듀크, 세상을 놀라게 하다
     06.프로그래머의 논쟁
     07.소프트웨어 설계자
     08.인터넷 대란
     09.전설의 해커 케빈 미트닉

오후 7시 커피민트 줄렙(Coffee Mint Julep) - 에필로그

책 내용은 꼭 기술적이라기 보다는 프로그래밍사의 재미있는 에피소드와 자신의 경험 그리고 프로그래밍의 미학에 대해 다룬 책이다. 따라서 프로그래밍에 갓 입문 하였거나 입문하려는 사람이 보면 프로그래밍을 즐기는 방법을 일깨워주며 중수로 업그레이드 하는데 도움을 줄것이다. 이미 어느 정도 프로그래밍을 하는 사람들이 본다면 그리 배울 것은 없긴 하다. 그러나 내용은 재미 있으니 교양서로서 읽는 것도 괜찮을듯 하다. 이 책에서도 프로그래밍의 미학적 접근에 대해 조금 다루긴 했는데, 그에 대해 충분히 다룬 책을 보고 싶다면 programming perl 을 번역한 <생각하는 프로그래밍>이라는 책을 추천한다.

웃기는 이야기일지 모르지만, 사실 나는 게임이 좋아서 프로그래밍을 시작했다.



게임을 만들고 싶은데, 그래픽(간단한 그림도 많이 못그리는 편이다)에는 너무 소질이 없었고, 기획이란 분야는 너무 막막한 상황이었기에, 선택한것이 프로그래밍이었다.



그러나 그 시작과는 달리, 갈수록 프로그래밍의 매력에 빠져들었고, 프로그램을 만든다는 그 자체를 즐기게 되었다.



나에게 주어진 문제를 해결했을때 오는 짜릿함? 내가 만든것이 컴퓨터안의 가상 세계(이 표현은 틀렸을지도 모른다. 왜냐면 컴퓨터안의 세계는 저자의 말대로 bit로 이루어진 현실에 존재하는 세계이기도 하니까)에서 나의 발상을 코드화해서 그것을 구동하였을때의 즐거움? 이런건 무엇과도 바꿀수없는것이었다.



그러나 그 즐거움을 잊을때가 많았다.

어떠한 프로젝트를 위해선 선행작업들이 많고, 관련 분야에 대한 지식이 부족한 경우에는 그와 병행하느라 더 바빠지기 마련이다.

시간이 갈수록 코드를 읽거나 작성하는것은 심리적으로 쫓기는 상황에서 이루어지는 경우가 많았고, 아무리 좋은 설계를 해도 좋은 코드가 나오는 경우는 적었다.

일을 즐기기는 커녕 일에 쫓기는...그런 상황들이 날 힘들게 하고 있었다.



누워서 읽는 알고리즘을 읽을때도 느낀것이지만, 자신에 일에 프라이드를 가지고 있고, 진정 애정을 가진, 그리고 그 기분을 나에게도 가지게 해준 임백준씨에게 경의를 표한다.



일단, 책 제목처럼 구성은 25가지의 원리를 각각의 챕터로 나누어서 설명하고 있습니다.

그리고, 각 챕터는 그 주제와 관련된 인물에 대한 이야기로 시작하는데, 나름대로 흥미롭네요. 뒤를 이어 그 챕터에서 다룰 내용이 어디에 어떻게 쓰이는지 설명하고, 그 챕터에서 다룰 내용을 요약해 설명하고 있습니다. 그리고 각 원리의 정의와 내용 설명이 이어지는 형식입니다.



이 책의 장점과 단점들을 살펴보자면, 다음과 같습니다.



[ 장점 ]

1. 이산수학, 자료구조, 알고리즘, 컴퓨터공학개론, 논리회로 등과 같은 많은 내용을 다루고 있는데, “핵심 원리 25가지”로 부를 수 있을 만큼, 적절한 주제들을 선택해서 한 권의 책으로 담았다.

2. 원리를 설명하는데 있어서, 보는 것만으로도 이해될 수 있을 만한 그림을 많이 사용했으며, 내용 설명도 또한 쉽게 되어 있다. 따라서 전산에 처음 발을 들여놓은 초보자도 쉽게 이해할 수 있다.



[ 단점 ]

1. 예제 프로그램들이 너무 간단하고, 부실하며 가독성이 떨어진다. 「좋은 프로그램」을 만드는 기본 중에 하나가 주석인데, 주석도 제대로 되어있지 않다. 그리고 예제 프로그램이 없는 챕터들도 있다.

2. 수학을 다루는 몇 챕터의 내용이 고등학교 수준에 머무른다.

3. 홈페이지를 운영하고 있으나, 달랑 게시판 하나밖에 없다. 그리고 각 챕터와 관련된 과제를 올리고 있지만 거기에 대한 풀이나 설명이 없다.



책에서는 예상 독자층을 넓게 생각하고 있지만, 전반적인 내용과 수준으로 살펴봤을 때, 이 책의 독자층은 전산에 갓 입문한 사람들이 적당할 것 같네요. 전산에 입문해서 앞으로 심도 있게 공부하게 될 자료구조나 알고리즘과 같은 다양한 주제들에 대해서 「부담 없이」 쉽게 접해볼 수 있을 것입니다.



결론적으로, 역시 이 책의 가장 큰 장점은 자칫 딱딱하고 어렵게 느껴질 수 있는 각각의 주제들을 그림으로 쉽게 설명하고 있다는 것입니다. 끝으로, 책에서 제공하고 있는 예제 프로그램들이 부실하다고 했는데... 이 책을 읽으면서, 예제 프로그램과 책에 나와 있는 원리들을 객체지향언어로 구현해보는 것도 좋을 것 같네요. ^^*

이론과 실제는 너무나 다르다. 학생일 때는 새로운 기술을 적용한 심오한 프로그래밍 또는 어려운 알고리즘을 구현한 프로그래밍 말로 진짜 그럴듯한 뭔가 라고 생각했었는데 막상 회사에서는 실수가 바로 돈과 연결되는 프로그래밍을 하다 보니 학생 시절에 가졌던 많은 생각들이 깨지는 건 나만의 생각만은 아닐 것이리라.



JSP를 사용하여 DB를 사용자가 원하는 대로 화면에 뿌려주고 비즈니스 로직에 따라 조인된 DB정보를 INSERT, UPDATE, DELETE 하는 것이 나의 일 전부라고 생각했고 슬슬 프로그래밍이라는 것에 대해 흥미를 잃어가기 시작했다. SQL문 속에 포함된 JOIN 기능이 코딩으로 구현했을 경우 몇 십배 불어 난다는 사실을 알았을 때 SQL문의 경이로움 보다는 코딩이 말 그대로 노가다 임을 느껴서 일까?



이런 생각을 가지고 있던 중 “행복한 프로그래밍” 이라는 책을 읽게 되었다. 정말 손에서 놓을 수 없었지만 업무시간이라는 이유 때문에 두 번의 출퇴근 시간을 이용하여 읽은 너무나 공감하면서 느낀 부분이 많은 책이었다.



Chapter 1. 아침 7시 카페오레

책 머리에 카페오레란 에스프레소와 같은 진한 커피를 마시는 유럽 사람들이 아침에 위의 부담을 줄이기 위해서 커피에 우유를 타서 먹는다는 뜻이라고 나와있다. 이와 같이 약간은 부드럽게 프로그래밍 세계를 여행하기 전에 몇 가지 수수께끼를 펼쳐 놓으면서 문제를 하나 하나 해결해 나갔던 학생 때의 기분을 맛보며 나도 아직은 머리가 녹슬지 않았다라는 생각을 하며 프로그래머가 느끼는 성취감을 다시 한번 느낄 수가 있었다. Chapter 마지막 부분들은 전산인들이라면 최소한 한번씩은 구현해본 알고리즘이 나와있다. 무척 반가울 것이다! 피보나치, 최단경로 찾기, 단어 뒤집기 이름만 들어도 친근하지 않은가?



Chapter 2. 오전 10시 에스프레스 젤라틴

책 전체에 걸쳐 많은 얘기들이 나온다. 한번쯤을 들어봤을 법한 사람들과 그들의 뒷 이야기들은 이책은 영화, 그림, 삽화를 곁들여 흥미 진진하게 보여준다. 인류 최초의 버그를 보고 싶은가? 그렇다면 이책에서 사진과 인류 최초의 버그라는 글 “Fist actual case of bug being found” 을 볼 수 있다. 이책을 더욱 가볍게 볼 수 있었던 것은 상식 이야기를 접할 수 있었던 것이었다.



Chapter 3. 오후 1시 카페 에스프레스

오후 1시는 직장인들에게 가장 괴로운 시간일 것이다. 점심 식사를 마치고 그 나른함이란… 이제 졸음을 이기기 위해 좀더 진한 향의 느낌 에스프레소로 시작하고 있다. 그래서 인지 약간은 조금 생각해야 할 내용들 즉, 여행자 알고리즘, 해킹에 관한 내용들, 이책에서 처음 보았지만 신기해 했던 콘 웨이의 인생게임, 사이버 머니 알고리즘등이 존재한다. 그리고 친절하게 참고 문헌과 URL까지 제공하고 있다. 궁금하면 방문할 수 있도록 말이다.



Chapter 4. 오후 4시 카페 그린

카페 그린이란 커피는 처음 들어 보았다. 녹차와 커피처럼 왠지 어울리지 않고 별개의 단편 느낌이 든다. 그래서 인지 이장에서는 저자의 약간의 개인적인 이야기와 최근에 벌어진 인터넷 대란(DNS 서버 공격)과 전설의 해커, 케빈 미트닉에 대해 얘기하고 있다.



녹색의 포근한 표지로 시작한 소설책 느낌의 이책은 마지막 장도 연두색 종이로 끝나버렸다. 이책을 통해 다시 한번 프로그래머로서의 행복을 느낄 수 있었다. 비전산인 보다는 전산을 전공한 분들에게 이책을 권하고 싶다. 마지막으로 책을 읽으면 읽을수록 프로그래밍에 담긴 맛을 음미할 수 있는 시간을 갖게 되는 것 같다.

책에 대한 반응들은 주로 긍정적이다. 극찬으로 보이는 것도 몇 개 보인다. 하지만 지금 쓰려고 하는 것은 이와 같은 극찬과는 좀 다른 것이다. 작가의 재담, 이야기를 풀어가는 정감에 대한 칭찬은 여전히 유효하지만, 내용에 대해서는 좀 다른 생각을 가지고 있다. 내용에 대해 공감하지 않는 것은 아니다. 공감한다. 문제는 ‘행복한 프로그래밍’의 반대편, ‘절망’에도 공감하는데 있다. 여기서 절망은 프로그래밍의 절망이 아니라 프로그래머의 절망(35세가 프로그래머의 정년이고, 개발이 노가다에 가깝다는 것)이다.



저자 임백준씨는 학부전공이 수학과이며, 삼성SDS에 다니다가 미국으로 유학을 떠났고, 현재 유명 외국 기업에 다닌다. 왜 그는 유학을 가게 되었을까? 그리고 학업을 마치고, 왜 한국으로 돌아오지 않고 미국에 남았을까? 그가 졸업 후, 바로 한국으로 들어왔다면 이런 책을 쓸 수 있었을까? 나도 수학과를 졸업했으며, 삼성SDS에 다녔고, 다음 달이면 미국으로 유학을 떠난다. 그래서 그의 생각이 더 궁금해지는 것인지도 모른다.



프로그래밍은 분명 창조적인 일임이 분명하다. 그것은 이 책의 맛깔스러운 글들을 읽어보면 금방 알게 된다. 그들의 세계엔 영웅도 있고, 그들만의 언어가 있으며, 보통 사람들에겐 마법처럼 느껴질 성취감도 있다. 얼마 전부터 책을 사지 않으리라 다짐했건만 그가 소개하는 책들을 사고 싶은 충동을 억누르기 힘들다. 이 책은 낙원이 주는 따스함, 동경을 불러 일으키기도 하지만, 그것의 상실이 주는 반항심도 유발한다. 아직도 프로젝트로 여기저기 떠돌아 다니는, 고객들의 이해할 수 없는 요구에 시달리는, 이 땅의 이름 없는 많은 프로그래머가 이런 책을 쓸 수 있는, 옆의 동료와 NP Complete에 대해 논할 수 있는 그런 날을 상상해본다.

참 재미있게 읽었다. 무엇보다 IT서적 중에 이런 책은 지금까지 없었던 것 같다. 웬만해선 책을 오래 읽지 않는 편인데, 첫 페이지를 넘기고 끝까지 읽어버린 자신을 발견하고 놀랐다. 책 중간 중간에 영화나 인물의 이야기 등을 자연스럽게 연결시켜 쉽게 흥미를 잃지 않고 재미있게 읽을 수 있었다. 그리고, 참고자료로 쓰인 책들을 각 챕터 끝에 깔끔하게 정리해놓았는데, 모두 한번씩 읽어 볼만 한 책들인 것 같다.



여러 기본적인 지식과 알고리즘, 자료구조 등을 일상생활 속에서 흔히 일어나는 일들에 비유해서 재미있게 설명하고 있다. 마치 이런 것들이 생활의 일부인 것처럼 말이다. 아니 어쩌면 이런 것들이 생활의 일부라고 말하고 있는 것인지도 모르겠다.



언제인지 정확하게 기억나는 것은 아니지만, 처음으로 "Hello, World!"를 찍어보던 때가 생각난다. 그때는 모니터에 찍힌 글을 보면서 마냥 신기해하고 재미있어 했었는데... 가만히 생각해보니, 저자가 말하는 행복이 그때 그 순간이 아니었나 싶다.



그렇지만 hello world에서 시작하여 앞으로 점점 나아가면서 차차 배워야 할 것들이 많아졌고, 또 어려워져갔다. 그러면서 어느 순간부터는 프로그래밍이 "재미있다" 라기 보다는 "언제 이 많은걸 공부하지"라는 걱정으로 변해갔다. 그렇다고 포기한 건 아니었지만, hello world를 찍어보던 시절처럼 프로그래밍을 즐기기보다는 내 자신이 단순히 코딩만 하는 코더로 변해가는 것 같았다.



이런 매너리즘에 빠져있던 나에게 책 속에 저자는 이렇게 충고해주었다.


“당신은 실력이 부족해서가 아니라 집중력이 부족해서 그렇다고…
능력이 없어서가 아니라 열정이 부족해서 그렇다라고..."

이 책과 만남을 가진 후, 이제는 "Hello, World!"를 찍어보던 그 때의 작은 행복을 다시 찾을 수 있을 것 같은 생각이 든다. 작은 것부터 하나 하나 배워가면서 느끼는 행복을… ‘하루가 멀다하고 쏟아져 나오는 새로운 정보들 속에서 어떻게 하면 이런 것들을 빠르고 쉽게 배울 수 있을까?’하는 걱정은 버리고, 작은 것부터 하나씩 알아 가는 것이 행복인 것 같다. 마치, 클로버 잎들 속에서 행운을 상징하는 네 잎 클로버를 찾으려고 하지만, 주위에 수없이 많은 세 잎 클로버의 꽃말이 행복인 것처럼, 저자는 프로그래밍이 생활의 일부가 되고, 삶의 목적이 될 때, 정말 행복한 것이라고 말해주고 있다. 그 동안 프로그래밍이라는 행복을 잠시 잊어버리고 살아온 모든 프로그래머들에게 이 책은 "커피 한잔의 여유"를 즐기며, 행복한 프로그래밍이 무엇인지를 생각해 볼 수 있는 기회를 주는 책이다.



마지막으로 이런 노래 말이 생각난다.
“진정 즐길 줄 아는 여러분이 이 나라의 챔피언입니다!”
이제 말을 안해도 알겠지만, 진정 즐기 줄 아는 프로그래머만이 프로그래밍의 챔피언이 될 수 있고, 또한 그 속에서 행복을 느낄 수 있을 것이다!

당신은 "행복한" 프로그래머인가...
"행복한" 프로그래머이고 싶은가...
"행복한 프로그래밍"을 집어 들고 읽으면서 든 생각은, 쉽지 않은 얘기를 말랑말랑하게 잘 풀어내고 있다는 것이었다. 수학과 컴퓨터과학을 전공하고 프로그래밍을 업으로 삼고 있는 저자가 여러 알고리즘에 대해서 다루고 있지만, 너무 어렵거나 딱딱하지 않다.



물론 중간 중간에 생각해 볼 문제들을 많이 던져 주고 있기 때문에, 그리 두껍지 않은(260쪽) 책인데도, 후딱 읽어버릴 수는 없을 것이다.



손으로 그린 그림들과 사진들, 그리고 관련된 주변 얘기들, 잘 정리된 참고문헌들도 마음에 든다. 이 책을 읽고 나서 알고리즘에 대해서 좀 더 생각해볼 꺼리가 필요한 분은 Programming Pearls, "생각하는 프로그래밍"(인사이트)이라고 번역되어 나온 책을 권한다.



비슷하게 에세이 형식으로 풀어낸 좋은 알고리즘 책이다.
그리고 개인이 아니라 팀이 개발하는 프로젝트에서, 알고리즘만으로 뭔가 부족하다고 느낀 분은 "프로젝트 데드라인"(한빛미디어)이라는 책을 읽어보시기 바란다. Writing Solid Code나 Code Complete 같은 책은 번역의 질에 문제가 있어서 원서로 읽으시는 것이 좋을 것 같다.



관리 측면에 좀 더 치우친 책으로는 Manager Pool, 피플웨어 같은 책들도 나와 있다.

저는 아직 어려서 프로그래밍을 하고 있지는 않습니다. 하지만 나중에 좀 더 커서 프로그래머를 할까 하는데 이토록 프로그래밍이 행복하고 재미있다면 정말 저의 미래도 행복해지리라 생각합니다.

작가님의 고무공같이 톡톡 튀는 문장을 가만히 읽다보니 언젠가 한빛사이트에 연재하셨던 그 분이 아닌가 싶습니다.

미국에서 프로그래머로 열심히 사시려면 시간도 많지 않으신텐데 재미있는 책까지 쓰시다니..그 힘이 정말 대단하십니다.

나중에 기회가 되면 한국에 와서 초보자 프로그래머를 대상으로 강연회를 열어주시면 참 좋겠습니다. 그때 꼭 한 번 뵙고 싶습니다.

다음에도 좋은 작품 기대해 봅니다..아저씨 파이팅...

처음으로 c언어를 배웠다



무척 어려웠다



나의 한계를 느껴 가면서 무작정 붙잡고 고민하고 또 고민했다



결국 오랜 시간끝에 한 문제를 풀면서



터널속을 빠져 나와 환한 빛을 접한거 같다.

책을 손에 들고 단숨에 읽어버렸다.
그리고... 저자가 과연 어떤 사람인지 너무도 만나고 싶어졌다.



프로그래밍을 해 본 사람이라면 누구나 프로그래밍이 얼마나
재미있고 행복하게 만들어 줄 수 있는 것인지 느껴봤을 것이다.



이 책은 바로 그런 이야기들이 씌여 있다.
여기서 실제로 저자는 대단한 프로그래머라는 느낌이 든다.
그리고 적어도 내가 생각하기엔. 좋은 작가이기도 하다.



프로그램을 "언어"를 다루는 것이기 때문에 좋은 프로그래머는
글을 잘 쓸수도 있다고 했던가?



곳곳에 씌어진 퀴즈들과 프로그래밍과 관련이 있는
- 혹은 전혀 없다고 생각할 수도 있는 - 이야기들의 절묘한 조합.
너무도 재미있다.



그리고. 다시금 프로그래밍이라는 것이
얼마나 자신을 행복하게 만들어 줄 수 있는지 느껴볼 수 있었다.



P.S : 아주 중요한 오타!



P.172 :
1/3 = 0.33333333.......


2/3 = 0.66666666.......


3/3 = 0.99999999.......

프로그래머를 하면서 행복했던 순간들을 되짚어보면서 우연찮게 받아든 이 책을 단 하루만에 읽었다. 그만큼 어렵지 않고도, 다양한 얘기를 한편의 수필처럼 쭉 읽을 수 있는 내용에 흥미진진하게 읽을 수 있었다.



비전공자로 프로그래머에 입문해서 여지껏 그렇게 적지않은 책들을 읽어왔지만, 소스코드가 들어가 있는 프로그램 관련 서적중에 이러한 책은 없으리라 생각된다. 비슷한게 "소설처럼 읽는 ..." 시리즈일까? 그것도 역시 프로그래밍 입문서이기에 사고나 관점보다는 코드에 치중할 수 밖에 없었다.



아무튼...



프로그래머로서 코더(coder)로서 입문해서... 현재는 아키텍쳐와 시스템 구성에 관여하고 있는 내 상황에서.... 점점 프로그래머의 사고방식이 어떠해야하는가... 알고리즘은 무엇이고... 알고리즘을 프로그램에 적용한다는 것은 무엇인가는.... 비전공출신의 나에게 부담이었고, 다가오는 현실의 문제이었다. 물론 이 책을 읽고 난 후에도 역시 유효하다.



하지만, 이 책을 독파하고 나서... 진정한 프로그래머로 거듭나기 위한 또다른 입문서였음을 말하고 싶다. 어차피 프로그래머라는 일도 여타 다른 사람들과 마찬가지로 하나의 업(業,job)이고, 자신의 남은 인생과 같이 할 동반자일 것이다. 하기에 이 일과 연관된 목표가 있어야 할 것이고, 인생 설계의 한 부분이 있어야 할 것이다. 물론 나의 손에 키보드 자판과 마우스가 들려져 있는 한말이다.



여느 프로그래머도 그렇겠지만, 자신이 단지 coder(속칭, "노가다"라고도 하지만...--")임에 불가하다는 생각이 들때만큼 불행할 때가 없다. 단지 프로젝트를 완수하기 위해서 사고하지 않고 copy&paste와 친해질때(물론 c&p도 사고를 필요로한다) 만큼 불행할 수 없다는 것이다. 물론 현실상 이것이 정답일 수도 있다.



하지만 프로젝트는 성공하더라도, 나의 행복은 되지 못할 것이다. 프로그래머로서의 정체성을 갖기에는 힘든 점이 많기에 그렇다(물론 내경우이다 --"). 자기 만족과 그 일에 대한 성취감(조합해서 "행복"이라고 하자)이 없이 프로그래머로 살아간다는 것이 쉬운 일은 아닐것이다.



나는 프로그래머로 살아가는 동안은 행복해지고, 내가 꿈꿔오던 프로그램을 꼭 만들어보고 싶다. 그리고 그것을 익스플로러처럼 세상의 사람들이 아무렇지듯 않게 일상적으로 쓰는 모습을 보면서 행복을 느꼈으면 한다. 물론 이 꿈이 이루어지지 않을 확률이 더 많음을 나는 잘 알고 있다.



하지만 나는 이제 시작이라는 생각을 한다. 이 책은 나에게 또다른 세계로 가는 문이 되어 준 "입문서"라고 생각한다. 진정한 프로그래머로써 살아가는데 간과하고 지나간 것은 있지 않은가를 조용히 되짚어 주었고, 프로그래밍이 가지고 있는 아름다움이 무엇인가를 맛배기로 보여주면서 나의 광활한 호기심을 발동시키기에 충분했다고 본다.



너무 내 이야기만 한것 같아서 좀 그렇지만, 마지막으로 이런 기회를 선사해준 한빛출판사와 저자인 임백준씨께 감사의 말을 빈다. 언제 어디에서가 세상의 모든 프로그래머들이 한자리에 모일날을 기다리며....

행복이란 항상 마음속 한 곳에 간직하고 있으나, 그 존재를 잊고 있다가

어느 순간 깨달는 것과 같다. 누구나 행복을 가지고 있으나, 그것을 깨닫지 못할뿐...

이렇게 말하는 나 또한 행복을 간직하고 있었다. 필자가 가지고 있던 그 행복함, 충만함...알고리즘의 미학에 대한 감상, 밤새 끙끙대며, 풀던 문제가 풀렸을때의 쾌감, 나날이 늘어가는 배움의 즐거움, 수학적인 미감, 컴퓨터와 교감, 단순한 짝사랑이었지 모르겠지만, 프로그래밍에 대한 나만의 사랑으로 행복감. 이 모든 것이 나에게도 있었다. 다만, 꼬여있던 수학 문제처럼 괜히 복잡하게 살다보니 이 모든 것의 가치를 잊고 있었을 뿐이었다.

"행복한 프로그래밍"은 정말 얇은 책이었고, 바이블급 기술 서적은 아니었지만, 많은 것을 내게 고백하고 있었다. 개발자로서의 추억을 떠올리게 하며, 읽으면 읽을수록 내게 행복을 프로그래밍하고 있었다.

그동안 내게 감춰져있었던 행복은 깔끔한 서체와 여러 흥미로운 이야기로 짜여 진 알고리즘으로 최적화된 효율로 (읽은 지 하루란 시간만에) 그 빛을 찾고 있었다. (나는 지금 행복하다.)

나 또한 필자처럼 행복한 프로그래머이다. 내게 지금의 커피는 졸음을 잊기 위해 마시는 카페인이 아니라, 긴 정신활동에 대한 짧은 커피향의 여유이다.

단순히 $$$때문에 개발자의 머리를 지니고 있는 게 아니라, 나 스스로가 원하기에 개발자의 마음을 지니고 있는 것이다. 따뜻한 가슴, 지금도 열심히 나를 위해 뛰고 있는 심장은 행복을 느끼게 한다. 회사가 강요하여, 야근하거나 밤샘을 하는 것이 아니다. 문제가 있기에 그것을 풀길 원하기에 나는 스스로 잠을 미룬 것이다. 힘들게 푼 문제일수록 그 행복감은 배가 되기에...

모두 잊을뻔 했던 개발자 초기에 지녔던 즐거움까지 점차 생각이 났다. 밤새며 세균 게임을 만들어 시작 버튼을 눌렀을때, 점점 자라는 세균들이 내 아이들처럼 귀엽게 보이던 개발자의 행복한 시작...

누군가 조심스럽게 다가와 작은 목소리로 속삭였지만, 그 순간 내 마음은 행복으로 충만한 것 같다.

우선 놀란점이 있다. 저자의 글솜씨는 도저히 한국인의 것이 아니었다. 미국특유의 어구가 배어있어, 나는 이 책의 저자가 외국인이 아닌가 의심할 정도 였다.

그리고 책의 주된 내용도 우리나라에서 찾아볼 수 없던 내용들로 구성되어있어서 참 놀랐다.

이 책은 내가 산 서적중에서 가장 재밌게 읽었던 IT도서엿던거 같다..

사실 많은 프로그래밍 관련 서적들은 딱딱하지 않을 수 없는게 사실이다.



그러한 사람들은 자기도 모르게 그러한 딱딱한 사고방식을 가지게 된다.



하지만 "행복한 프로그래밍" 책은 접근방식이 우선 부드럽다..



알고리즘에 대한 이해를 시켜줄때 보통 여타 서적처럼 정의와 예가 아닌



이야기와 삽화를 이용한다. 딱딱할 수 밖에 없는 것을 부드럽게



이해시켜주는 책 그것이 바로 "행복한 프로그래밍" 이다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
행복한 프로그래밍: 컴퓨터 프로그래밍 미학 오디세이
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
행복한 프로그래밍: 컴퓨터 프로그래밍 미학 오디세이
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
행복한 프로그래밍: 컴퓨터 프로그래밍 미학 오디세이
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 책0