프로그래밍의 가치와 행복은 아름다운 공식,
즉 알고리즘을 발견하는 데 있다.
책의 제목에 ‘프로그래밍’이라는 말이 들어가면 사람들은 대개 기술적이거나 전문적인 내용을 다루는 책을 떠올리기 마련이다. 하지만 ‘행복한 프로그래밍’이라는 제목에서 중점을 둔 부분은 ‘프로그래밍’이라는 명사가 아니라 ‘행복한’이라는 형용사이다. 다시 말해서 이 책은 특정한 기술이나 전공 지식을 담고 있는 책이 아니라 컴퓨터 프로그래밍 속에 들어 있는 미학(美學)을 전달하고자 하는 ‘소프트’한 이야기를 담고 있는 책이다.
[ 발췌 내용 ]
프로그램을 짠다는 것은 말하자면 얼굴을 두 손에 파묻고 머리를 벽에 찧어 가면서 깨달은 어떤 아름다운 공식을 컴퓨터에게 다정하게 가르쳐 주는 행위다. ─
행복과 성취감 (7page)
시대를 앞섰던 라이프니츠의 이진수 체계가 육화될 대상을 찾지 못하고 철학과 신학이라는 천상의 영역에서 배회하고 있었다면, 치밀하게 구성된 부울의 이진수 체계는 적어도 하늘과 땅의 중간에 위치한 수학과 논리학 정도까지는 내려온 셈이었다. 이렇게 중간 정도의 위치에서 머물던 이진수 체계가 전기와 반도체라는 화려한 옷을 입고 (현대 컴퓨터의 모습으로) 마침내 인간이 살고 있는 땅위로 완전히 내려오게 된 것은 부울 이후에도 수십 년의 시간이 흐른 다음이었다. ─
이진수 시스템의 발견 (17page)
해바라기 씨앗의 배열을 닮은 피보나치 수열은 매우 아름답지만, 그것을 컴퓨터 프로그램으로 옮기는 것이 별로 어려운 일이 아니라는 사실은 나중에야 알게 됐다. 그 때에는 화면에 나타나는 숫자들을 바라보는 것만으로도 황홀감을 느낄 지경이었다. ─
영혼을 녹여서 만든 아름다운 공식 (25page)
화장실을 관리하는 사람들은 보통 화장실 문을 열어 보아서 화장지가 완전히 다 떨어졌을 때에 한해서 새 것을 갈아넣는다. 따라서 화장지를 한 개만 걸어 놓았을 때에는 맨 마지막에 걸린 사람들은 화장실 안에 화장지가 하나도 남아 있지 않은 ‘황당한’ 상황에 빠지기도 한다. ─
생활 속에 숨어있는 알고리즘 (41page)
프로그래밍 언어는 비트의 법칙에 대한 깊은 이해와 언어학에 대한 통찰을 바탕으로 만들어지는 인공의 언어다. ─
프로그래밍 언어와 컴파일러 (45page)
명령어 하나를 처리하는 데 걸리는 시간이 1msec이고 n의 값은 1,000,000이라고 가정해보자. 이론적인 속도가 n인 알고리즘이 실행되는 데는 불과 16분 40초가 걸리지만, 이론적인 속도가 n의 제곱인 알고리즘이 실행되는 데는 무려 30년 이상의 엄청난 ‘세월’이 걸리게 된다. ─
빠르게 점점 빠르게 (59page)
퍼블릭 키는 누구나 내려받을 수 있는 키지만 정보를 암호화하는 데만 쓸 수 있고 암호화된 문서를 열어 보는 데는 사용될 수 없다. 암호화된 문서를 열 수 있는 키는 오직 프라이비트 키뿐이다. 퍼블릭 키는 은행 웹사이트 (혹은 암호화만 전문적으로 다루는 다른 기관의 웹사이트)에서 누구나 내려받을 수 있지만 프라이비트 키는 은행이 주머니 속에 꼭 감추어 두고 있기 때문에 아무도 손에 넣을 수 없다. ─
퍼블릭 키와 프라이빗 키 (100page)
[ 대상 독자 ]
- 컴퓨터 관련 전공 대학생, 대학원생
- 프로그래밍 입문자
- 현업 프로그래머
- 프로그래밍에 관심있는 일반인