Book

내가 추천하는 프로그래머 필독서 50선

February 11, 2016

author:

내가 추천하는 프로그래머 필독서 50선

누군가 정리해서 공유에 공유를 거듭한 “프로그래머 필독서 64선”을 보고, ‘원서가 너무 과하다’는 생각을 하게 되었습니다. 그래서 내 마음대로 정리한 “프로그래머 필독서 50선”을 정리해보았습니다.

선정된 책은 국내 서적을 기준으로 작성되었고, 읽어본 책을 최대한 반영해서 선정하였습니다. 그렇기 때문에 원서에 대한 평가는 없으며 누군가 원서가 더 좋다고 하더라도 ‘그럴능력 없고/그러고 싶지 않기’ 때문에 원서에 관련된 내용은 ‘/dev/null’로 리다이렉션 하기로 결정했습니다.

요약하면, 내 마음대로 ‘필독선 50선’ 입니다.(2016.02)

  1. CODE 코드 (반양장) – 하드웨어와 소프트웨어에 숨어 있는 언어, 찰스 펫졸드 (지은이), 김현규 (옮긴이), 인사이트

    컴퓨터라는 ‘오브제’에 대한 가장 ‘아름다운’ 스토리, ‘찰스 펫졸드’라는 브랜드, 요약하면 ‘필독서’이다.

  2. 명강의로 완성하는 C 프로그래밍 – 널널한 개발자의 널널하지 않은 C 이야기, 최호성 (지은이), 이한디지털리 (프리렉)

    다른 C 언어 교재에 비해서 하드웨어의 설명이 녹아있다. YouTube를 통한 저자의 강의도 곁들일 수 있다. 국내에선 ‘열혈강의 C (윤성우)’가 절대적인 지지와 호응을 받고 있음에도 불구하고 이 책을 권하는 이유는 ‘저자’ 설명이 ‘하드웨어’적이기 때문이다. 이 책을 다 읽고 다른 C책을 찾는다면 “C 언어 프로그래밍 – 2판, Brian W. Kernighan, Dennis M. Ritchie (지은이), 김석환 (옮긴이), 대영사”를 권한다.

  3. 단계별 프로젝트 중심의 C프로그래밍 파워 업그레이드, 윤성우 (지은이), 오렌지미디어

    C언어로 진행되는 ‘프로젝트’ 중심의 책이다. 간단한 ‘전화번호’나 ‘테트리스’를 만든다. 국내에서 유통되는 C언어 교재의 95%가 문법’만’을 다루고 있는데 반해서 이 책은 문법과 코딩을 같이 다루고 있다. C언어 문법’만’ 배웠다면 굉장한 도움이 될 것이다.

  4. C++로 배우는 프로그래밍의 원리와 실제, Bjarne Stroustrup (지은이), 최광민 (옮긴이), 에이콘
    1. C++ 관련 서적 중에서 두껍기론 몇 손가락 안에 꼽힌다. 이 책이면 C++에 대한 기본은 차고 ‘넘친다’.  그리고 언어적 사유가 아니라 ‘C++ 프로그래밍’을 배워야 한다면 이 책이 훨씬 좋다.
    2. 2015년에 에이콘 출판사에서  TCPL 을 번역해서 출판 하였음.
  5. 윤성우의 열혈 자료구조 – C언어를 이용한 자료구조 학습서, 윤성우 (지은이), 오렌지미디어

    컴파일 되는 ‘소스코드’와 간략하고 핵심적인 설명이 돋보이는 책이다. 알고리즘으로 진입하는 지점에서 꼭 보고 넘어가길 권장한다.

  6. 다양한 예제로 학습하는 데이터 구조와 알고리즘 – 문제 해결법부터 개선법까지 | Programming Insight 나라심하 카루만치 (지은이), 전계도 (옮긴이), 인사이트

    ‘학술적’이지 않은 ‘알고리즘’ 책이다. 학술적인 책으론 ‘TAOCP’도 있다. 하지만 다른 책에 비해서 이 책은 소스코드가 ‘컴파일’된다. 설명도 간략하고 좋다. 그리고 문제와 해답이 같이 있기 때문에 입문용으로 좋고, 알고리즘의 변용에 대해서 다양한 관점을 제공한다.

  7. 해커의 기쁨 (제2판) – 비트와 바이트 그리고 알고리즘, 헨리 워렌 (지은이), 류광 (옮긴이), 제이펍

    이진수로 ‘플레이’ 할 수 있는 가장 원초적인 놀이를 다룬다. 한 권 사놓고 연습하면 좋다. ‘하드웨어’적인 접근을 위한 기초라 할 수 있다. 기승 전 Bit!’를 외치게 될 것이다.

  8. 자바의 신 VOL.1 : 기초 문법편 / 자바의 신 VOL.2 : 주요 API 응용편

    자바를 초급 단계에서 배울 수 있는 책 중에서 가장 훌륭하다. 특히 2권에서 보여준 ‘구성’은 개발 서적의 가장 좋은 예를 보여준다.

  9. 자바 네트워크 프로그래밍 – 개정4판, 앨리엇 러스티 해럴드 (지은이), 강성용 (옮긴이), 제이펍

    자바와 네트워크라는 관점보다 자바와 ‘I/O’라는 측면에서 접근하면 더 많은 것을 배울 수 있다.

  10. Effective Modern C++ (이펙티브 모던 C++), 스콧 마이어스 (지은이), 류광 (옮긴이), 인사이트
    1. 이 책을 읽은 개발자가 C++을 사용하지 않을 순 있지만, C++ 개발자인데 이 책은 안 읽은 사람이 있겠는가?
    2. More Effective C++, 스콧 마이어스 (지은이), 곽용재 (옮긴이), 정보문화사는 ISO 표준이 변경되었기 때문에 Modern C++ 도서로 변경하였음
  11. 이펙티브 자바 – 제2판, 조슈아 블로크 (지은이), 이병준 (옮긴이), 인사이트
    1. 자바를 사용하기 위한 최소한의 매뉴얼이다.
    2. ‘대웅’에서 출판한 도서(http://www.aladin.co.kr/shop/wproduct.aspx?ItemId=3631848)는 절판이 되었음
  12. 인사이드 머신 – 에이콘 임베디드 시스템 프로그래밍 시리즈, 존 스토크스 (지은이), 전동환, 안익진 (옮긴이), 에이콘출판

    컴퓨터 하드웨어어 대한 개괄적인 그림을 보여준다. 책이 출판된 시기가 있기 떄문에 조금 지난 기술을 소개하고 있지만, 현대의 컴퓨터 아키텍처가 어떻게 ‘발전’하는지 정말 쉽게 알 수 있다.

  13. 컴퓨터시스템구조 – 3판, M. Morris Mano (지은이), 김종상 (옮긴이), 사이텍미디어(희중당)

    연습문제만 다 풀면 가볍게 8비트 CPU 하나 설계 할 수 있다. 그런 책이다.

  14. 컴퓨터 구조 및 설계 – 하드웨어, 소프트웨어 인터페이스, 데이비드 패터슨 , 존 헤네시 (지은이), 박명순, 김병기, 하순회 (옮긴이), 한티미디어
    1. 컴퓨터 하드웨어의 이해를 위한 서적이다. 연습문제까지 꼼꼼하게 풀어보길 권한다. 이 한권이면 충분하다.
    2. 4판은 절판이 되었음
  15. 운영체제, Silberschatz (지은이), 고건, 조유근 (옮긴이), 교보문고

    운영체제 개론서이다. 다른 책에 비해서 번역이 잘 되어 있다. 연습문제 꼼꼼하게 풀자. 개발자의 밑천이다.

  16. 프로그래밍 패턴 – 프로그램을 작성하는 33가지 방법, 크리스티나 로페즈 (지은이), 이상주 (옮긴이), 위키북스

    역사와 시간을 거슬러 ‘프로그래밍’이 어떻게 발전했는지 알 수 있다. 매력적이며 쉽고 재미있다. 그리고 파이썬을 접할 수 있는 좋은 책이다. 기승 전 ‘파이썬’

  17. HARD CODE – 나잘난 박사의 IT 정글 서바이벌 가이드, acornLoftl AcornLoft, 에릭 브레히너 (지은이), 이해영, 박재호 (옮긴이), 에이콘출판

    MS에서 PM을 지낸 지은이의 경험을 엿 볼 수 있다. 컬럼 형식으로 되어 있어서 읽기도 쉽고, 분량도 적당하다. 세상의 모든 개발집단은 이런 고민을 한다. 우리도 한다. 그리고 여러분도 하고, 이제부턴 해야 한다.

  18. 프로그래밍 수련법, 브라이언 W. 커니핸, 롭 파이크 (지은이), 김정민, 장혜식, 신성국 (옮긴이), 인사이트

    커닌핸, 롭 파이크 두 사람이 집필 한 책이니 믿고 읽어보자. 두 사람을 모른다고? ‘구글’에 검색 ‘고고’

  19. Head First Design Patterns – 스토리가 있는 패턴학습법, 케이시 시에라, 버트 베이츠, 엘리자베스 프리먼, 에릭 프리먼 (지은이), 서환수 (옮긴이), 한빛미디어

    단언하건데 GoF의 책이 좋다. 그럼에도 불구하고 ‘Head First’를 고른것은 ‘GoF’의 책이 좋은것과는 별개로 읽기 쉽지 않기 때문이다. 읽을 수 없는 책을 들고 고민하는 것 보다 쉽게 읽을 수 있는 책을 읽는게 훨씬 더 훌륭하다.

  20. Head First Object Oriented Analysis & Design – 세상을 설계하는 객체지향 방법론, 브렛 맥래프린, 게리 폴리스, 데이빗 웨스트 (지은이), 신광연, 박종걸 (옮긴이), 한빛미디어

    OOP에 대한 다양한 이론, 설계, 분석에 관한 책이다. 용어를 배운다는 심정으로 읽어두면 다른 여타의 책을 조금 더 쉽게 접근 할 수 있다.

  21. Code Complete – 소프트웨어 구현에 대한 실무서, 제2판, 스티브 맥코넬 (지은이), 서우석 (옮긴이), 정보문화사

    싫어도 읽어야 되는 책이다. 다 읽는데 ‘의의’를 두자. 마치 ‘잃어버린 시간을 찾아서’를 보는 것 처럼…

  22. 엔터프라이즈 애플리케이션 아키텍처 패턴, 마틴 파울러 (지은이), 최민석 (옮긴이), 위키북스

    옆에 두고 계속해서 읽어보고 연습하고 적용해 보고 싶은 책이다. 책의 예제가 Java와 C#으로 되어있지만, 나는 파이썬으로 연습해보고 있다. 내가 생각하지 못했던 부분과 당연하게 받아들였던 많은 부분을 조금씩 깨닫게 되었다.

  23. 코딩 더 매트릭스, 필립 클라인 (지은이), 마이클 (옮긴이

    선형대수학 책이다. 세부적인 내용은 수학이지만 예제와 연습문제는 파이썬으로 풀 수 있도록 유도한다. 그래서 추천한다. 선대책은 이미 널리 알려진 좋은 책(길버트 스트랭!)이 있지만, 컴퓨터 프로그램을 통해서 선대를 설명하는 책은 이 책이 거의 유일하다. 2015년에 읽은 책 중에서 가장 ‘숨겨진 보석’같은 책이다.

  24. 소프트웨어 장인, 산드로 만쿠소 (지은이), 권오인 (옮긴이), 길벗
    1. 현시대에 필요한 소프트웨어 개발 정신과 기술에 대한 전반적인 소개, 개발자가 가져야 할 몇가지 원칙을 제시하고 있다. 이 책은 단순하게 읽고 고민하는게 아니라 동료와 많은 대화를 통해서 책이 완성될 수 있다고 생각한다.
    2. 이 책을 함께 읽고 싶은 개발자를 만나면 이렇게 외치자 “너!! 내 동료가 되라!”
  25. 처음 시작하는 정규표현식 Regular Expressions – 언어와 플랫폼을 뛰어넘는 정규표현식을 만나다, 마이클 피츠제럴드 (지은이), 이성희, 이수진 (옮긴이), 한빛미디어

    개발에서 한 번은 ‘넘어야’ 할 산이다. 이 책은 절판된 책으로 알고 있으나, 다른 좋은 책을 구매한 적이 없기에 이 책을 적어둔다. 더 좋은 정규표현식 책이 있다면 그 책으로 대체하라.

  26. 켄트 벡의 구현 패턴 – 읽기 쉬운 코드를 작성하는 77가지 자바 코딩 비법, 켄트 벡 (지은이), 전동환 (옮긴이), 에이콘출판

    다른 좋은 내용이 많지만 나에게 ‘상태’와 ‘메소드’라는 두 가지 측면에서 굉장한 지적 흥분을 주었던 책이다. 책의 전체적인 내용도 좋고, 꼭 자바가 아니더라도 OOP 관련 언어라면 언제나 통용되는 ‘관점’을 제시한다.

  27. 폴리글랏 프로그래밍 – 새로운 자바 언어를 기다리는 히치하이커를 위한 안내서, 임백준 (지은이), 한빛미디어

    임백준님의 책은 ‘다’ 좋다. 들고 다니면서 찬찬히 읽으면 된다. 그런데 이 책을 선정한 이유는 가장 최신의 책이기도 하지만 ‘Post Java’에 대한 관점 때문이다. 여러분은 동의하는가?

  28. 브루스 테이트의 세븐 랭귀지 – 프로그래머라면 알아야 할 미래를 품은 7가지 언어, 브루스 테이트 (지은이), 임백준 (옮긴이) ,한빛미디어

    7 가지 언어를 소개한다. 이 책의 가장 큰 장점은 7가지를 소개한다는 점이고, 가장 큰 단점은 7개 밖에 소개 안 한다는 점이다. 개발자의 매거진이라 생각하고 읽어보길 권한다.

  29. 컴파일러 구조와 원리 – 컴파일러로 배우는 언어 처리 시스템, 아오키 미네로우 (지은이),이영희 (옮긴이), 한빛미디어

    용북보단 이 책을 권한다. 정신건강을 위해서…

  30. ARM 리눅스 커널 – 코드로 알아보는, 노서영, 윤석훈, 강진성, 송원준, 이윤재, 임윤재 (지은이), 백창우 (감수), 제이펍

    리눅스 커널에 관련된 책임에도 불구하고, 남의 소스 코드로 공부하는 방법에 대해서 알 수 있다. 그리고 하드웨어, 운영체제, C언어가 왜 중요한지 한 방에 느낄 수 있다. 이 형님들을 본 받자. 이렇게 공부해야 하는거다.

  31. 토비의 스프링 3.1 세트 – 전2권, 이일민 (지은이), 에이콘출판

    스프링을 공부한다는 마음으로 읽기 보다는, 패턴의 진화과정을 공부한다는 마음으로 읽으면 된다. 아 물론 포기하고 싶다는 마음은 누구나 가진다. 그러니 3일 읽고, 3일 포기하고, 3일 읽고, 3일 포기하고 반복하다 보면 다 된다. 책 아깝다고 모셔두지 말고 찢어서 들고 다니며 읽자. 어짜피 이 책은 이러지도(?) 저러지도(?) 못한다.

  32. 아는 만큼 보이는 데이터베이스 설계와 구축, 이춘식 (지은이), 한빛미디어

    내가 아는 DB 설계의 모든 것. 쉽고, 자세하고, 재미있다.

  33. 그림으로 공부하는 IT 인프라 구조, 야마자키 야스시, 미나와 요시코, 아제카츠 요헤이, 사토 타카히코 (지은이), 김완섭 (옮긴이), 오다 케이지 (감수), 제이펍

    이 정도만 알면 서버 구성은 어렵지 않게 할 수 있을 것 같은 느낌같은 느낌이 든다. 이상하다고? 인프라는 뭐… 원래 그런거다. 참고로 서점에서 둘러볼 때 느낀건데 제이펍에서 진행되는 ‘그림으로 공부하는 ~’ 씨리즈는 내용이 다 좋다. 돈만 되면 다 지르고 싶다.

  34. 스칼라로 배우는 함수형 프로그래밍, 폴 키우사노, 루나르 비아르드나손 (지은이), 류광 (옮긴이), 제이펍

    다른 어떤 스칼라 책보다 좋다. 연습문제만 풀어도 실력이 상승하는걸 느낄 순 없지만, 스칼라가 어떤 언어인지는 확실하게 느낄 수 있다. 문제는 자바로 돌아가려는 관성을 이겨내야 한다는 점이다.

  35. 리팩토링 – 루비 에디션 – 버그 없이 프로그램을 개선시키는 최고의 방법!, 마틴 파울러, 켄트 벡, 제이 필즈, 셰인 하비 (지은이), 김지원 (옮긴이), 제이펍

    루비 배우는 셈치고 리팩토링을 배울 수 있다고 말한다면 그 말은 사기다. 그렇지만 루비를 가지고 소개하는 리팩토링이 기존의 책에 비해서 월등하게 ‘쉽다’는 점은 진실이다. 뭘봐도 어렵긴 마찬가지 이므로 이왕이면 루비 배운다고 생각하고 이 책을 보기 권한다.

  36. HTTP 완벽 가이드, 데이빗 고울리, 브라이언 토티, 마조리 세이어, 세일루 레디, 안슈 아가왈 (지은이), 정상일, 이응준 (옮긴이), 인사이트

    너무 뒤늦게 번역된 책이 아닌가 싶다. 하지만 필독서라 할 수 있다. HTTP 모르고 무슨 일을 하겠는가?

  37. 해커를 위한 디자인 레슨, 데이비드 카다비 (지은이), 윤지혜 (옮긴이), 인사이트

    UX에 대해서 잘 모르기 때문에 사족을 달 순 없지만, 읽어서 이해된 몇권 안되는 UX 관련 서적이다. 참고로 난 DNA에 ‘디자인’ 관련 세포가 없다고 생각하고 있기 때문에 여러분도 이해 할 수 있는 책이라 단언한다.

  38. 프로젝트가 서쪽으로 간 까닭은 – 프로젝트 군상의 86가지 행동 패턴, 톰 드마르코 (지은이), 이해영, 박재호 (옮긴이), 인사이트

    제목이 뭔가 종교적이지만, ‘톰 드마르코’가 쓴 책이다. 이 형님이 쓴 책은 읽어야 된다. 번역가도 이해영, 박재호 님이다. 한 마디로 ‘필독서’다.

  39. 린 스타트업 – 실리콘밸리를 뒤흔든 IT 창업 가이드, 애시 모리아 (지은이), 위선주 (옮긴이), 최환진 (감수), 한빛미디어

    로켓같은 트럭에 올라탈 개발자를 위한 서적이다. 린 캔버스 잘 배워서 오픈소스 프로젝트에 사용해 보면 참 좋다. 그대가 개발자라면 이거 읽고 창업하기 보다는 이거 읽고 오픈소스 프로젝트를 진행해 보자! 혹시 사람 모자라면 연락하시라! 나도 같이 하게, 진심으로 하는 소리다.

  40. 소트웍스 앤솔러지 – 소프트웨어 기술과 혁신에 관한 에세이, 마틴 파울러, 소트웍스 (지은이), 강규영, 최재훈 , 정지웅, 이창신, 안영회, 이대엽 (옮긴이), 위키북스

    마틴 파울러가 파운더로 있는 소트웍스 개발자 에세이를 묶은 책이다. 그리고 이 책에 나오는 사례는 ‘다’ 외국 이야기란 것도 기억해두자. 그리고 CEO가 ‘마틴 파울러’라 가능한 이야기 일 수 있음도 기억해 두자. 무턱대고 따라할 일은 아니지만, 꼭 새겨들어야 할 이야기다.

  41. 조엘 온 소프트웨어 + 조엘이 엄선한 소프트웨어 블로그 베스트 29선 전2권 세트, 조엘 스폴스키 (지은이), 김기영, 강유, 허영주 (옮긴이), 에이콘출판

    외국의 ‘파워 블로거’인 아저씨가 쓴 글 같지만, ‘조엘 스폴스키’의 글 모음이다. 정말 훌륭한 가이드가 많다. 그리고 외국 이야기란 것도 기억해두자. 혹시 여기서 나오는 가이드를 실천하는 회사를 알고 있다면 ‘나에게’ 연락 좀 주세요! 제발!

  42. 실용주의 프로그래머, 데이비드 토머스, 앤드류 헌트 (지은이), 정지호, 김창준 (옮긴이), 인사이트

    Perl 예찬자가 쓴 책 같다고 느꼈다면 정확하게 읽고 있는거다. 책에 나온 내용 중에서 좋은게 많으니 꼭 새겨듣자. 특히 ‘텍스트로 자료를 남겨라’라는 부분은 신경써서 기억해두자. 외국에 이력서 혹은 레쥐메~ 보낼 때 hwp 보내는 만행을 저지르지 말도록…(애초에 hwp 편집기를 설치하지 말자.)

  43. 생각하는 프로그래밍 – 프로그래밍 본질에 관한 15가지 에세이, 존 벤틀리 (지은이), 윤성준, 조상민 (옮긴이), 인사이트

    생각시키는 책이다. ACM에 연재된 좋은 컬럼을 묶어서 만들었다. 제대로 읽으면 TAOCP 급이다. 대충 읽어도 내용이 좋다. 대충읽기를 권하지만 착실하게 읽으려고 노력하면 더 좋은 성과를 얻을 수 있다. 일단 대충 읽어도 평타친다.

  44. 피플웨어 – 3판, 톰 드마르코, 티모시 리스터 (지은이), 이해영, 박재호 (옮긴이), 인사이트

    맨머스 미신을 읽고 곧바로 읽으면 좋다. 같은 주제에 대한 서로 다른 이야기 같지만 맨머스 미신과 이 책은 하나의 이야기를 하고 있다는 것을 깨닫게 될 것이다. 아니 깨달아야 된다.

  45. 맨먼스 미신 – 소프트웨어 공학에 관한 에세이, 프레더릭 브룩스 (지은이), 강중빈 (옮긴이), 인사이트
    1. 1975년에 나온 책인데 21세기에 읽어도 무슨 내용인지 이해된다. 망할…
    2. 두고 두고 몇번을 읽어도 계속 새롭다. 나의 개발환경은 ‘도대체 어쩌려고’ 이러는 건가?
    3. 기존의 번역본은 절판되었음
  46. 해커와 화가, 폴 그레이엄 (지은이), 임백준 (옮긴이), 정희 (감수), 한빛미디어

    성공한 스타트업 CEO분께서 화가로 전향하시고 느끼신 바를 ‘담담’하게 쓰신 책이다.  Lisp 배우고 싶다는 욕망과 ‘폴 그레이엄’ 이란 이름을 어디서 봤더라 싶을꺼다.

  47. 패턴 랭귀지 – 도시 건축 시공, 크리스토퍼 알렉산더, 사라 이시가와, 머레이 실버스타인 (지은이), 이용근, 양시관, 이수빈 (옮긴이), 인사이트

    건축도서이다. 하지만 읽어보면 뭔가 거대한 것이 다가올 것같지만 기분 탓이다. 하지만 패턴 이란것에 대한 새로운 감각을 배울 수 있다. 공학이 얼마나 무섭고 위대한지 알게 된다.

  48. 소프트웨어 컨플릭트 2.0 – 개정판 위키북스 IT Leaders 시리즈 9, 로버트 L. 글래스 (지은이), 이해영, 박재호 (옮긴이), 위키북스

    소프트웨어 논쟁 모음집. 우리가 서있는 이 곳의 논쟁사를 한 눈에 알 수 있다.

  49. 소프트웨어 크리에이티비티 2.0 – 위키북스 IT Leaders 시리즈 8, 로버트 L. 글래스 (지은이), 이해영, 박재호 (옮긴이), 위키북스

    창의력 대장으로 가기 위한 개론서. 개발 경력 50년 이상인 1갑자 내공의 형님이 들려주는 ‘창의력’ 이야기! 빨간펜은 필요없다.

  50. 코딩 호러의 이펙티브 프로그래밍 – 스택 오버플로우 공동 창립자가 알려주는 소프트웨어 개발의 비밀, 제프 앳우드 (지은이), 임백준 (옮긴이), 위키북스

    개발에 관한 ‘광역’ 조언집. 이대로 할 수만 있다면 더할 나위 없이 좋겠다.

p.s. #1 오타 및 오류는 천천히 수정하겠습니다. (선배포 후검증)
p.s. #2 다른 책 추천 받습니다. 연락주세요!


update : 2015.12.31.

  • 링크 수정

update : 2016.02.11