김익환, 『글로벌 소프트웨어를 꿈꾸다』, 한빛미디어, 2010
'공부/읽은책'에 해당되는 글 14건
- 2010/11/22 글로벌 소프트웨어를 꿈꾸다
- 2010/10/19 컴파일러 구조와 원리
- 2010/09/15 IT Cookbook, 윈도우 프로그래밍 개정판.
- 2010/08/09 OpenCV 제대로 배우기
- 2010/07/07 프로그래머가 몰랐던 멀티코어 CPU 이야기 (4)
- 2010/02/12 임백준 - 누워서 읽는 퍼즐북 (2)
- 2009/02/25 설득의 심리학
- 2008/10/15 프로그래밍 심리학
- 2008/07/15 알고리즘 트레이닝으로 배우는 코드 단축기법 Short Coding (6)
- 2008/06/03 임베디드 프로그래밍 C 코드 최적화 (4)
아오키 미네로우 저, 이영희 역, 『컴파일러 구조와 원리』, 한빛미디어, 2010
개리 로스트 비라드스키, 에이드리안 캘러 저, 황선규 역, 『OpenCV 제대로 배우기』, 한빛미디어, 2009
뉴욕의 프로그래머 임백준씨의 신간. 한빛 미디어에서 예약 배송을 할 때 구입을 해서 여태까지 읽었다.
이 책에서는 다양한 퀴즈들, 쉽게 인터넷에서 접할 수 있는 류의 문제들 부터 오랜 역사를 가지고 있는 퀴즈 거장들이 만들어낸 다양한 퀴즈들을 담고 있다. 그중 일부는 한빛 미디어 홈페이지 에서 일 부 확인해 볼 수 있도록 공개 되어 있으니 이 책에서 담고 있는 내용이 어떤 형식의 퀴즈 들인지 확인해 보고 싶은 분들은 일 부 라는 글을 하나 하나 클릭해 보시길..
임백준씨의 책은 너무 어렵지도 그렇다고 아주 쉽지도 않은 책으로 공부를 하다가 혹은 일을 하다가 가끔 머리 식힐겸 보기 딱 안성 맞춤인 책들 이기 때문에 나올 때 마다 찾아 보고 있는데, 이 번 책 역시 만족 스럽다. 단, 평소에 퀴즈를 좋아 했던 분들은 이 책이 다루고 있는 대부분의 퀴즈를 본 적이 있거나 심하면 정답을 이미 알고 있는 내용 일수 있으니 구입하기 전에 살짝 떠들어 봐주는 센스도 필요 할 듯 싶다.
이 책을 읽는 동안에 책에 잘못된 점을 발견하여 임백준 씨께 메일을 보냈는데 하루도 안되서 친절한 답변이 날라오는 걸 보고 깜놀. 내가 지적해 드린 내용은 2쇄에 반영한다고 한다. 조그만하게 내 이름이라도 씌였으면 싶지만 이 책을 읽는 다른 독자들도 지적했을꺼 같으니 기대는 하지 않는 편이 낫겠다 =_=..
너무도 쉬운 문제도 있었으며 도저히 생각을 해도 해법이 떠오르지 않은 문제도 많았다. 해법을 읽어도 와닿지 않는 내용도 있었으며 해법을 읽고 그 기막힘에 감탄을 하여 한동안 멍하게 감상에 젖어 있었던 문제도 있었다. 핑계일지 모르지만 이런 덕분에 책의 두께에 비해서 생각보다 진도가 더디게 나가게 되었다.
누워서 읽는 퍼즐 북 밑에 있는 책은 Q.E.D. - BEAUTY IN MATHEMATICAL PROOF 라는 책으로 퍼즐북 내용에서 소개 되어 있길래 찾았는데, 처음 구입을 할 때는 원서 이긴 하지만 수학 증명이 주된 내용일 꺼라 생각을 하여 별 어려움 없이 읽을 꺼라 여겼다. 하지만 받아서 펼처보니, 왠걸, 증명이 거의다 서술형이다. ㅠㅠ. 몇페이지 되지 않은 얇은 책임에도 불구하고 난 읽는데 오래 걸릴듯 하다. 아니, 지금 하고 있는 영어 공부로 영어와 어느 정도 친해져야 읽기 시작할듯.
혹시 이런 경험이 있지 않은가? 내가 인식하지도 못한 사이에 상품에 대한 호감이 생긴다던지 왠지 거절하기 힘든 요청을 받을때가. 당신은 십중팔구 설득의 원칙에 지배당했다.
이 저자도 '내가 왜 설득을 당한거지?' 라는 의문에서 연구를 시작했다. 그래서 각 설득의 법칙을 서술한 장의 마지막엔 "자기 방어 전략" 이 같이 실려있다. 그 설득의 법칙에 당신은 당하지 않기 바라는 마음으로.
무언가 장황하고 길게 이 책에 대해서 글을 남기고 싶어서 1월 22일부터 글을 쓰려 노력했지만 검색엔진에 책 제목만 입력하면 수많은 훌륭한 서평이 있으니 참고하길 바란다. 절대 책 읽은지 오래되어 기억 안나 말하는게 아님.
......... 다시 읽어볼까..
프로그래밍 심리학
올 초에 번역되어 나온 책으로 번역서가 나온지 얼마 안되어서 구입했는데 이제야 다 읽었다. 회사 책장에 두고 시간날때마다 틈틈이 (가끔 일 안하고 책읽는다고 혼나기도 했던 ㅠㅠ)읽느라 이렇게 오래 걸린듯.
프로그래밍을 하는 프로그래머에 초점을 맞추어서, 그들의 행동이나 프로젝트 진행에 있어서 일어나는 여러가지 사건들을 심리학적(관리자나 프로그래머나 머신 운영자등의) 인 측면에서 분석한 내용이 담겨져 있는 책이다. 인간을 다루는 심리학이란 측면에서 다루었다는 점에서 값어치가 있는 책. 이 책 이전에 그런 시도를 했던 책은 물론 없을테고, 이 책 이후에도 이정도로 프로그래밍이라는 행위를 심리학적인 측면으로 다룬 책이 별로 없다(사실 그렇게 알고만 있을뿐이다). 프로그래머로 일하고 있는 사람이라면 읽으면서 공감과 재미와 감동을 동시에 느낄 수 있는 책.
놀라운 점은 이 책이 처음 쓰여진게 1971년도 라는 것. PL/1이라던지 천공카드에 구멍을 뚫어 프로그래밍을 하는 내용이 많은것도 그 때문이다. C언어가 세상에 나오기도 전에 쓰여진 책이므로 지금 많이쓰이는 언어들중 하나이면서 제법 오래된 C언어에 대한 언급조차도 없다.(출간한지 25년 뒤에 25년 기념판을 내면서 각 장마다 보태는 글을 추가 했는데 거기에선 잠깐 C언어를 언급한다) 그렇게 오래된 책인데도 불구하고 내용이 오래되어 쓸모 없거나 현 시대에 너무 맞지 않아 문제가 되는게 없다는 것이다. 이는 바로 프로그래머 라는 사람 자체에 초점을 맞추고 이를 분석한 책이기 때문이다.
비록 초판이 나온지 40년이 다 되어가기 때문에 일부분 지금과 맞지 않는 내용이 있는건 사실이지만 그렇다 치더라도 이 책은 앞으로도 몇십년은 더 읽힐 수 있는 책임에 분명하다.
알고리즘 트레이닝으로 배우는 코드 단축기법
ACM/ICPC류의 문제 풀기에 관심 있는 분들이라면 "알고리즘 트레이닝" 이라는 제목이 붙어 있는 책을 알고 있을거다. 이 책과 같은 출판사에서 번역본을 낸 Programming-Challenges가 그것일텐데, Short Coding은 Programmig Challenges와는 조금 다른 성격을 가지고 있는 책이다.
처음엔 ACM/ICPC대회를 준비하는데 도움이 되지 않을까 하는 생각에서 이 책을 읽기 시작했다. 대회에서 가장 중요한것은 코드를 남들보다 빠른 시간내에 정확히 작성하는 것 이며 Short Conding이라 하면 그만큼 코드의 길이가 적으니 타이핑 수가 적어지고 코드 작성이 빨라서 유리한 위치에 있을 수 있다는 말이기 때문인데, 책을 받아 보고 첫장을 읽는 순간 피싯 웃음이 나올 수 밖에 없었다. 이 책에 담겨져 있는 내용은 코딩을 빨리 하기 위한 짧은 코드 작성방법이 아니기 때문이라는걸 알았기 때문.
처음에 책에 실린 소스코드를 보고 "뭐 이런 변태적인 소스가 다 있어" 라는 생각을 했다. 가장 처음 나온 코드인 34bytes짜리 소스코드를 보고 말이다. 그리고 메신져에 접속해 있는 프로그래머 지인들에게 그 코드를 보여주며 내가 느낌 감정을 공유해 보았다. 그 코드는 내가 알고 있는 C언어 지식으로는 컴파일조차 되지 않았다!
이렇게 처음엔 두뇌 컴파일러 에서 에러를 토해내던 소스코드를 책을 읽으면서 점점 컴파일이 가능해 지기 시작했으며 점점 이 책에 빠져들게 되었다.
책에는 PKU에 있는 문제와 그에 대한 간단한 풀이, 그리고 저자가 Short Code를 위해 생각한 사고를 그대로 적어 두었으며 마침내 가장 짧은 코드에 도달할 수 있도록 독자들을 잘 인도해 준다. 극한의 Short Code까지 도달하는 동안의 저자의 생각을 기술한 책이기 때문에 책의 두께는 두꺼운 편이지만 44문제 밖에 다루지 못했다는것은 아쉬움이 남을 수 밖에 없는데, 일본어를 잘 할 줄 안다면 저자의 홈페이지( http://www.4dm.org )에서 더 많은 내용을 볼 수 있다.
책을 읽던 최초의 목적인 '빠른 코딩으로 ACM/ICPC에서 유리한 위치에 가 있기' 에서는 멀어지긴 했지만 이책, 생각하는 즐거움을 알려줬다. Short Coding은 한번에 되는게 아니다. 문제를 읽고 분석을 하며 그 안에서 규칙성을 찾고 언어의 특성을 이용하며 필요 없는 개행까지 줄여가며 코드를 극한으로 압축시키는 기술이다. 책을 읽으면 C언어의 유연성과 저자의 생각에 감탄을 하게 될 수 밖에 없다. 어느정도 책을 읽은 후 부터는 내가 생각할 수 있는 최대한의 방법으로 Short Code를 작성해 보았지만 저자는 어김없이 더 작은 코드를 마지막에 내 놓는다.
비록 여기에서 알려준 Short Coding기술은 현업에서 사용할수는 없다. 다른 사람과 협업을 하기 때문에 타 프로그래머가 읽기 힘든 프로그램을 작성하는 프로그래머는 환영받기 힘들다. 그렇다고 해서 이 책에 있는 변태적인 코드 압축 기법을 쓸모 없는 짓 이라고 폄하 하는건 옳지 못한 생각이다. 깊은 사고력과 문제를 해결하는 끈기를 알려줄 수 있는 책이기 때문인데, 특히 학생이라면 이 책의 452페이지에 나와 있는 글귀를 소개해 주고 싶다.
『"장래 도움이 되니까, 안되니까."라는 합리성을 추구하는 공부는 실제로 그렇게 중요하지 않습니다. 일생에서 아이 시절, 학생시절만큼 멋지도록 쓸모없는 일을 할 수 있는 시간은 없습니다. 도움이 되는 일밖에 시키지 않는 사회인의 슬픔을 알게 될 때는 이미 늦었습니다.』
Yes24 컴퓨터와 인터넷 리뷰 도서
http://club.yes24.com/computerevent
임베디드라는 단어가 붙어서, 일반 PC에서 돌아가는 소프트웨어를 작성하는 나에게는 그다지 상관없을꺼 같은 책 때문에 읽지 않으려 하다가, C코드 최적화라는 말과 일반 프로그래머도 읽으면 도움이 되는 내용이 있다는 말에 솔깃해서 보게 된 책.
컴퓨터구조나 운영체제, 어셈블리어 그리고 리눅스를 전혀 모르는 개발자는 읽기에 어려움이 있을 수 있다. (더군다나 중소기업의 개발자 평균 실력은 하향화 되고 있는 추세여서 개발 1~2년차에게도 어려울 수도 있지 않을까? 하는 괜한 걱정도 든다)
능력과 머리속에 있는 알고리즘을 소스코드로 구현하는 것을 공부하는게 더 좋으며 이런 테크닉적 기술은 좀더 스킬을 쌓은 후에 익히도록 하자. 괜히 책에서 대리가 임베디드 최적화 작업하느라 쩔쩔매는게 아니다.
이 책을 읽으며 생각해본적도 없는 최적화 팁이 당신을 즐겁게 해줄 지도 모른다. 내가 느꼈던것 처럼 :D
/*
지난 5월에 작성했던 리뷰, 역시 Yes24컴퓨터와인터넷 리뷰 클럽에서 작성한것이다.
서문을 읽다가 지도교수님 성함이 나와서 깜짝 놀랐었는데 알고보니 학과선배가 쓴 책!
*/
